我面临着一个小问题,我似乎无法解决这个问题。而不是使用SQL,我想使用vba检查两个表之间的重复项。因此,我要做的是创建两个记录集。每个表一个,只需检查我是否可以在一个记录集中找到文档编号,同时遍历另一个。
我每次遇到的错误都在.FindFirst行中。它告诉我我使用的参数无效。(错误3001)。rscurrent![Document Number]始终返回一个数字。我试图通过将字符串变暗并加倍来实现它,但是似乎都没有用。
我在这里使用一种完全错误的思维方式,还是只是缺少一些语法?同样,我知道如何在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
Run Code Online (Sandbox Code Playgroud)
FindFirst需要一个字符串来找到记录。它就像SQL语句中的WHERE子句,但没有单词WHERE。
例如:
rstEmployees.FindFirst "Age > 30"
Run Code Online (Sandbox Code Playgroud)
您的代码没有说出它应该与rscurrent![Document Number]匹配的字段。您将必须有类似
.FindFirst "DocumentNumber = " & rscurrent![Document Number]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |