a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0

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

[复制链接]
发表于 2012-7-31 22:26:35 | 显示全部楼层 |阅读模式
如何使用ADO及DAO设置Me.RecordSet
7 X0 B$ ]  O& i5 a/ w" @" O" F9 x  h您可以使用 Recordset 属性来指定或获得 ADO Recordset 或 DAO Recordset 对象,这些对象代表窗体的记录源。. }7 |: f& x* d# l
  在 Microsoft Access 数据库 (.mdb) 中要求使用记录集时, 将返回 DAO 记录集,在 Microsoft access 项目 (.adp) 中要求使用记录集时,将返回 ADO 记录集。
3 q) z6 C9 J6 n3 U  对于 Recordset 属性已经设置的使用 Visual Basic 的窗体,它进行的读/写行为取决于记录集 (ADO 或 DAO) 类型和包含在带有属性标识的记录集内的数据 (Jet 或 SQL) 类型。: e1 e& ^/ K& G: L; B, |3 D5 n
  在MDB中,默认情况下,Me.Recordset 是 DAO.Recordset 类型3 W6 W: j' _4 |
  如
- v$ L3 f" {5 U- h9 J# u  dim rs as Dao.Recordset
# r$ A' K2 X) @+ Q# j" Y# l  set rs=Currentdb.openrecordset("tblUserOfficeCn")* Z; e" b+ r4 P: |# y
  set me.Recordset=rs* ^) s# d( ?) E0 r; B: x
  如果你希望使用ADODB.Recordset ,可使用下面方法。
9 f8 G/ Y* ?1 ]+ _+ O! j  在 Form_Open 里面加入一下代码
- b5 T; h9 y3 S  DGlobal rstSuppliers As ADODB.Recordset% S" h9 S' N+ L+ {) J! y
  Sub MakeRW()
3 ?. x9 R$ Q# j  DoCmd.OpenForm "Suppliers", u# f( M- [. {+ v# K
  Set rstSuppliers = New ADODB.Recordset
, u7 ~1 M* T: _2 B! F7 Y. A  rstSuppliers.CursorLocation = adUseClient
: d. K  y- ]% h: E: a# Z  rstSuppliers.Open "Select * From Suppliers", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
9 _# l7 y& X! M  Set Forms("Suppliers").Recordset = rstSuppliers
% o; {; D. X& L- g  Forms("Suppliers").UniqueTable = "Suppliers"
) k) j) |  E4 A( U2 B  End Sub
- R% o% o; e0 \9 V9 `0 @  f  m; {% _  注意 ADO Recordset.CursorLocation 属性必须设置为 adUseClient。' L( G2 j8 \4 n( }7 s! [
  在属性表上 UniqueTable(唯一表)属性可在客户/服务器模式中使用,但不能用于 access 数据库 (.mdb)。此属性只能在 Visual Basic 代码中设置。( i, C, Z8 I- L
  您可使用 Recordset 属性作如下操作:0 u  s) R; u! s7 b# j) ~4 O
  1)将多个窗体连接为公用数据集。这种情况允许多窗体的同步处理。
, D: O2 v, k% R+ V9 j  例如:! |7 v6 {' ?0 S; ?7 G4 t
  Set Me.Recordset = Forms!Form1.Recordset5 k4 a. q6 R4 A' h7 ~4 G3 |9 ?
  2)使用窗体不直接支持的 Recordset 对象上的方法。% a; w) f1 T! i3 u8 h# `7 E. v
  例如:当您想要通过 ADO 的 Find 方法或 DAO 的 Find 方法来使用自定义对话框查找记录时,您可以使用 Recordset 属性。" K" Q% z. y# B1 e, w1 E
  3)回绕一系列影响多窗体的编辑的事务处理(可以重作)。1 t9 q" j2 |9 @4 A
  当打开一个新的 Recordset 对象时,它的第一个记录就是当前记录。
3 T8 s/ {, g! j, d  ]) S  另注意:如果您更改窗体的 RecordSource 属性,您必须使用 Set 语句。更改窗体的 Recordset 属性可能也将更改 RecordSource、RecordsetType 和 RecordLocks 属性。同时,一些相关数据属性可能被覆盖;例如:Filter、FilterOn、OrderBy 和 OrderByOn 属性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-29 07:47 , Processed in 0.285472 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表