Recordset 属性

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

适用于

组合框对象

窗体对象

列表框对象

报表对象

返回或设置 ADO记录集或 DAO记录集对象表示记录源指定的窗体、 报表、 列表框控件,或组合框控件。读取/写入。

表达式记录集

表达式必填。返回一个对象应用于列表中的表达式。

备注

Recordset属性返回记录集对象提供正在浏览窗体、 报表、 列表框控件或组合框控件中的数据。如果表单基于查询,例如,引用Recordset属性等同于克隆记录集对象使用相同的查询。但是,与使用不同的RecordsetClone属性,更改哪些记录当前记录集中返回的窗体的记录集属性也设置当前记录的窗体。

只能通过使用 Visual Basic for Applications (VBA) 代码,此属性才可用。

Recordset属性的读/写行为取决于记录集 (ADO 或 DAO) 的类型和包含属性标识记录集中的数据 (Access 或 SQL) 的类型。

记录集 类型

基于 SQL 的数据

根据访问数据

ADO

读取/写入

读取/写入

DAO

N/A

读取/写入

下面的示例打开窗体,打开记录集,然后将窗体的窗体的记录集属性设置为新创建的记录集对象绑定到记录集。

Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub

使用Recordset属性:

  • 若要将多个窗体绑定到公用数据集。这样多个窗体的同步。例如,

    Set Me.Recordset = Forms!Form1.Recordset

  • 若要直接不支持在窗体记录集对象使用方法。例如,您可以使用Recordset属性与 ADO查找或 DAO查找方法,在自定义对话框中用于查找记录。

  • 换行 (可以回滚) 围绕事务一系列的影响多个窗体的编辑。

更改窗体Recordset属性也可能会更改记录源RecordsetType,和RecordLocks属性。此外,某些数据相关的属性可能会覆盖,例如,筛选器FilterOnOrderBy,以及OrderByOn属性。

调用窗体的记录集 (例如, Forms(0).Recordset.Requery) 的重新查询方法可能导致将变为未绑定窗体。若要刷新的数据绑定到记录的窗体中,设置为本身 (Forms(0).RecordSource = Forms(0).RecordSource) 的窗体的记录源属性。

当窗体绑定到记录集时,如果您使用筛选按窗体命令发生错误。

示例

下面的示例使用Recordset属性当前表单中创建新记录集对象的副本,,然后打印调试窗口中的字段的名称。

Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub

下一个示例使用Recordset属性和记录集对象同步与窗体的当前记录的记录。当从组合框中选择公司名称时,将使用FindFirst方法用于查找该公司,导致显示找到的记录的窗体的记录。

Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
End If
rst.Close
End Sub

下面的代码帮助确定哪些类型的记录集返回不同的情况下Recordset属性。

Sub CheckRSType()
Dim rs as Object
Set rs=Forms(0).Recordset
If TypeOf rs Is DAO.Recordset Then
MsgBox "DAO Recordset"
ElseIf TypeOf rs is ADODB.Recordset Then
MsgBox "ADO Recordset"
End If
End Sub

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×