gpt4 book ai didi

vba - DAO.Recordset 中的参数无效

转载 作者:行者123 更新时间:2023-12-02 09:37:07 28 4
gpt4 key购买 nike

我面临着一个小问题,我似乎无法解决这个问题。我不想使用 SQL,而是想使用 vba 检查两个表之间的重复项。所以,我所做的就是创建两个记录集。每个表一个,只需检查是否可以在一个记录集中找到文档编号,同时循环另一个记录集。

我每次遇到的错误都在 .FindFirst 行中。它告诉我我正在使用无效的参数。 (错误 3001)。 rscurrent![文档编号] 始终返回一个数字。我尝试通过调暗字符串和双倍来实现此目的,但似乎都不起作用。

我在这里使用了完全错误的思维方式,还是我只是缺少一些语法?再说一遍,我知道如何在 SQL 中执行此操作,这更多是为了满足我自己对 vba 的好奇心并检查可能的性能改进。

无论如何,提前致谢!

Sub comparemails()
Dim rscurrent As DAO.Recordset
Dim rscheck As DAO.Recordset

Set rscurrent = CurrentDb.OpenRecordset("Tbl_DNFAILURE", dbOpenDynaset)
Set rscheck = CurrentDb.OpenRecordset("Tbl_Archive", dbOpenDynaset)

With rscurrent
Do Until .EOF
With rscheck
.MoveFirst
.FindFirst rscurrent![Document Number]
If .NoMatch = False Then
rscurrent.Delete
End If
End With
.MoveNext
Loop
End With

rscurrent.Close
rscheck.Close
Set rscurrent = Nothing
Set rscheck = Nothing
End Sub

最佳答案

FindFirst 需要一个字符串来定位记录。它类似于 SQL 语句中的 WHERE 子句,但没有 WHERE 一词。

例如:

rstEmployees.FindFirst "Age > 30"

您的代码没有说明它应该与 rscurrent![Document Number] 匹配的字段。你必须有类似的东西

.FindFirst "DocumentNumber = " & rscurrent![Document Number]

关于vba - DAO.Recordset 中的参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24506467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com