使用DAO记录集的MS Access错误

问题描述:

我试图创建一个空的DAO记录集rs2,其结构与现有记录集rs1(它有200多个字段)类似。但是当我使用ADO记录集时,我遇到了一个不会发生的错误:使用DAO记录集的MS Access错误

dim rs2 as recordset 

With rs2.Fields 
    For Each fld In rs.Fields 
     .Append fld, adVariant 
    Next 
End With 

错误是错误的参数数量。

+1

是否缺少一些代码?它看起来不像'rs2'被实例化。 – Mike

ADO允许您在某些情况下将字段添加到Recordset.Fields集合中。这就是为什么ADO版本的代码无误地运行。

但是,DAO​​方法不能与Recordset一起使用。相反,您必须在表中添加一个字段,或者将字段表达式添加到用作记录集数据源的查询中。

+0

你好,谢谢你的回复。在那种情况下,有没有办法在记录集之间进行转换?我是指DAO到ADO? –

+0

我不确定我是否理解这个问题。不可能创建DAO记录集对象,然后将其转换为ADO记录集。 – HansUp

我知道这个解决方案对性能不好,但是无论如何你都可以尝试一下。 首先,克隆记录:

Set rs2 = rs.clone 

然后,如果你只需要结构,倒空:

Do until rs2.EOF 
    rs2.Delete 
Loop 
+0

我想当你做rs2.delete时,rs中的记录实际上也被删除了,因为两者都只包含指向记录实际位置的指针 –

+0

我不知道,但它可能如你所说。在这一点上,为什么不用SQL命令DoCmd.RunSQL(“SELECT * INTO RS2TABLE FROM RSTABLE WHERE FALSE”)创建一个新表,然后在新表上打开dao记录集? – kiks73

+0

嗨,很好。但我正在寻找更简单的东西::))..感谢你回复... –