如何使用ADO及DAO设置Me.RecordSet

如何使用ADO及DAO设置Me.RecordSet

您可以使用 Recordset 属性来指定或获得 ADO Recordset 或 DAO Recordset 对象,这些对象代表窗体的记录源。

在 Microsoft Access 数据库 (.mdb) 中要求使用记录集时, 将返回 DAO 记录集,在 Microsoft Access 项目 (.adp) 中要求使用记录集时,将返回 ADO 记录集。
对于 Recordset 属性已经设置的使用 Visual Basic 的窗体,它进行的读/写行为取决于记录集 (ADO 或 DAO) 类型和包含在带有属性标识的记录集内的数据 (Jet 或 SQL) 类型。

在MDB中,默认情况下,Me.Recordset 是 DAO.Recordset 类型

dim rs as Dao.Recordset
set rs=Currentdb.openrecordset("tblUserOfficeCn")
set me.Recordset=rs


如果你希望使用ADODB.Recordset ,可使用下面方法。
在 Form_Open 里面加入一下代码
DGlobal rstSuppliers As ADODB.Recordset
Sub MakeRW()
DoCmd.OpenForm "Suppliers"
Set rstSuppliers = New ADODB.Recordset
rstSuppliers.CursorLocation = adUseClient
rstSuppliers.Open "Select * From Suppliers", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Set Forms("Suppliers").Recordset = rstSuppliers
Forms("Suppliers").UniqueTable = "Suppliers"
End Sub


注意 ADO Recordset.CursorLocation 属性必须设置为 adUseClient
在属性表上 UniqueTable(唯一表)属性可在客户/服务器模式中使用,但不能用于 Access 数据库 (.mdb)。此属性只能在 Visual Basic 代码中设置。


您可使用 Recordset 属性作如下操作:

1)将多个窗体连接为公用数据集。这种情况允许多窗体的同步处理。

例如:
Set Me.Recordset = Forms!Form1.Recordset
2)使用窗体不直接支持的 Recordset 对象上的方法。
例如:当您想要通过 ADO 的 Find 方法或 DAO 的 Find 方法来使用自定义对话框查找记录时,您可以使用 Recordset 属性。

3)回绕一系列影响多窗体的编辑的事务处理(可以重作)。

当打开一个新的 Recordset 对象时,它的第一个记录就是当前记录。

另注意:如果您更改窗体的 RecordSource 属性,您必须使用 Set 语句。更改窗体的 Recordset 属性可能也将更改 RecordSource、RecordsetType 和 RecordLocks 属性。同时,一些相关数据属性可能被覆盖;例如:Filter、FilterOn、OrderBy 和 OrderByOn 属性。

---参考微软帮助

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值