Vba Recordset.FindFirst方法:为什么它适用于我的某些表类型记录集?

Vba Recordset.FindFirst方法:为什么它适用于我的某些表类型记录集?,vba,ms-access,dao,recordset,Vba,Ms Access,Dao,Recordset,我试图在Access VBA中对DAO记录集使用Recordset.FindFirst方法,但遇到以下错误: 错误3251:“此类型的对象不支持操作。” 在对进行了一些简短的调查之后,我发现该方法仅适用于动态集类型或快照类型记录集。我更改了以下代码: 我的问题是 为什么这在一个数据库中有效而在另一个数据库中无效,以及 是否建议将代码改为使用dbOpenDynaset类型记录集 在查询或附加表上打开Recordset()时,Access默认为动态集类型(dbOpenDynaset) 在本地表上打

我试图在Access VBA中对DAO记录集使用
Recordset.FindFirst
方法,但遇到以下错误:

错误3251:“此类型的对象不支持操作。”

在对进行了一些简短的调查之后,我发现该方法仅适用于
动态集类型
快照类型
记录集。我更改了以下代码:

我的问题是

  • 为什么这在一个数据库中有效而在另一个数据库中无效,以及
  • 是否建议将代码改为使用
    dbOpenDynaset
    类型记录集
  • 在查询或附加表上打开Recordset()时,Access默认为动态集类型(dbOpenDynaset)


    在本地表上打开Recordset()时,它默认为表类型(dbOpenTable)。

    如何声明rs和rs2?ADODB?对不起,应该更清楚。刀,马克,看看这个。他有一些好消息。啊,非常感谢。关键行是“当您在查询或附加表上打开Recordset()时,Access默认为动态集类型(dbOpenDynaset)。当您在本地表上打开Recordset()时,它默认为表类型(dbOpenTable.)”。我的
    rs
    表格已链接,而我的
    rs2
    表格是本地的。如果您将此作为答案发布,我会接受吗?
    Set rs2 = db.OpenRecordset("table_name")
    rs2.FindFirst [search criteria]
    
    Set rs2 = db.OpenRecordset("table_name", dbOpenDynaset)
    rs2.FindFirst [search criteria]
    
    Set rs = db.OpenRecordset("tblUsers")
    rs.FindFirst [search criteria]