Recordset.FindFirst 方法:为什么它适用于我的一些 Table 类型的记录集?
Recordset.FindFirst method: why DOES it work with some of my Table-type recordsets?
我试图在 Access VBA 中对 DAO 记录集使用 Recordset.FindFirst
方法,但遇到错误:
Error 3251: "Operation is not supported for this type of object."
在对 MSDN 进行一些简短调查后,我发现该方法仅适用于 dynaset-type
或 snapshot-type
记录集。我改变了我的代码:
Set rs2 = db.OpenRecordset("table_name")
rs2.FindFirst [search criteria]</pre>
对此:
Set rs2 = db.OpenRecordset("table_name", <b>dbOpenDynaset</b>)
rs2.FindFirst [search criteria]</pre>
一切正常。
然而,我有另一个数据库,我在 table-type
记录集上使用 FindFirst
没有错误。
Set rs = db.OpenRecordset("tblUsers")
rs.FindFirst [search criteria]
我的问题是
- 为什么这适用于一个数据库而不适用于另一个数据库,并且
- 是否建议更改代码以改用
dbOpenDynaset
类型记录集?
当您在查询或附加 table 上使用 OpenRecordset() 时,Access 默认为 Dynaset 类型 (dbOpenDynaset)。
当您在本地 table 上使用 OpenRecordset() 时,它默认为 Table 类型 (dbOpenTable。)
我试图在 Access VBA 中对 DAO 记录集使用 Recordset.FindFirst
方法,但遇到错误:
Error 3251: "Operation is not supported for this type of object."
在对 MSDN 进行一些简短调查后,我发现该方法仅适用于 dynaset-type
或 snapshot-type
记录集。我改变了我的代码:
Set rs2 = db.OpenRecordset("table_name") rs2.FindFirst [search criteria]</pre>
对此:
Set rs2 = db.OpenRecordset("table_name", <b>dbOpenDynaset</b>) rs2.FindFirst [search criteria]</pre>
一切正常。
然而,我有另一个数据库,我在
table-type
记录集上使用FindFirst
没有错误。Set rs = db.OpenRecordset("tblUsers") rs.FindFirst [search criteria]
我的问题是
- 为什么这适用于一个数据库而不适用于另一个数据库,并且
- 是否建议更改代码以改用
dbOpenDynaset
类型记录集?
当您在查询或附加 table 上使用 OpenRecordset() 时,Access 默认为 Dynaset 类型 (dbOpenDynaset)。
当您在本地 table 上使用 OpenRecordset() 时,它默认为 Table 类型 (dbOpenTable。)