a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 108|回复: 0

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

[复制链接]
发表于 2012-7-31 22:26:35 | 显示全部楼层 |阅读模式
如何使用ADO及DAO设置Me.RecordSet
* G' @% G1 w6 H您可以使用 Recordset 属性来指定或获得 ADO Recordset 或 DAO Recordset 对象,这些对象代表窗体的记录源。
. c, D# P* [8 Z4 H+ q# `  在 Microsoft Access 数据库 (.mdb) 中要求使用记录集时, 将返回 DAO 记录集,在 Microsoft access 项目 (.adp) 中要求使用记录集时,将返回 ADO 记录集。/ D8 n* c8 K2 A/ v" a
  对于 Recordset 属性已经设置的使用 Visual Basic 的窗体,它进行的读/写行为取决于记录集 (ADO 或 DAO) 类型和包含在带有属性标识的记录集内的数据 (Jet 或 SQL) 类型。0 h; o( R6 R1 F
  在MDB中,默认情况下,Me.Recordset 是 DAO.Recordset 类型7 @8 i8 d- Q* G# b3 a! C
  如
- D  S: r9 s7 J0 N/ w. }% N8 E  dim rs as Dao.Recordset3 H* P' g+ F; H( v- T# m9 H' |: p* Y
  set rs=Currentdb.openrecordset("tblUserOfficeCn")# g  e3 @; C7 @* I# Q, o. g- O6 Q
  set me.Recordset=rs
5 {' ]- d5 U" r  ]' ]  如果你希望使用ADODB.Recordset ,可使用下面方法。
1 u" |" B  U  j+ N" w9 S  在 Form_Open 里面加入一下代码
9 d4 t& @: q( s, q7 Y  DGlobal rstSuppliers As ADODB.Recordset
- d; K8 H+ Z9 G7 d* `* @  Sub MakeRW()9 A6 ^4 i% u% M% W3 b
  DoCmd.OpenForm "Suppliers"9 M% j* w- @" H+ o2 e5 S, {7 z
  Set rstSuppliers = New ADODB.Recordset
! N) n+ t6 X3 K* O( N! `  rstSuppliers.CursorLocation = adUseClient- |- `: O& i) h! T2 ~
  rstSuppliers.Open "Select * From Suppliers", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
6 M: g! I9 [) }. L  A  Set Forms("Suppliers").Recordset = rstSuppliers
  E, `: m* j! y* m; s, u, d& ]4 L  Forms("Suppliers").UniqueTable = "Suppliers"; G- W1 U# X& ?! }( Z0 ]
  End Sub
0 u# n8 n. ]( b' }  注意 ADO Recordset.CursorLocation 属性必须设置为 adUseClient。
# m- b, U1 e5 l" m3 z  在属性表上 UniqueTable(唯一表)属性可在客户/服务器模式中使用,但不能用于 access 数据库 (.mdb)。此属性只能在 Visual Basic 代码中设置。, f" O" c% _* f' A/ U
  您可使用 Recordset 属性作如下操作:
1 R( l) ?8 H2 I$ g* J  1)将多个窗体连接为公用数据集。这种情况允许多窗体的同步处理。
& W6 O% I0 m2 h: t4 ]9 B: T; A  例如:
; o$ v7 }8 }/ M  Set Me.Recordset = Forms!Form1.Recordset
7 q: y; i9 ^; |  2)使用窗体不直接支持的 Recordset 对象上的方法。
) B7 O: D  m! _! A  例如:当您想要通过 ADO 的 Find 方法或 DAO 的 Find 方法来使用自定义对话框查找记录时,您可以使用 Recordset 属性。- A9 A$ Y1 U6 y
  3)回绕一系列影响多窗体的编辑的事务处理(可以重作)。
, B) G: v9 U( K1 C8 j1 ]: O  当打开一个新的 Recordset 对象时,它的第一个记录就是当前记录。
( G+ s" h# Y3 ]' a  另注意:如果您更改窗体的 RecordSource 属性,您必须使用 Set 语句。更改窗体的 Recordset 属性可能也将更改 RecordSource、RecordsetType 和 RecordLocks 属性。同时,一些相关数据属性可能被覆盖;例如:Filter、FilterOn、OrderBy 和 OrderByOn 属性。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-9 09:14 , Processed in 0.285338 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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