我试图之间比较所有的字段值的表和返回两个表中的全部记录时,发现不符合项目上第二个环
正常工作的第一值集合中找不到现在运行通过,但只要它进入第二圈我得到ITEN不是这个集合中找到在
If rs1.Fields(fld) <> rs2.Fields(fld) Then
这是代码,我有一节:
Private Sub Execute_Click()
DoCmd.RunSQL "Delete * FROM Issues2"
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim fld As DAO.Field
'.... set those recordsets via SQL statements
Set rs1 = CurrentDb.OpenRecordset("Full")
Set rs2 = CurrentDb.OpenRecordset("Transaction1")
For Each fld In rs1.Fields
If rs1.Fields(fld) <> rs2.Fields(fld) Then
DoCmd.RunSQL "INSERT INTO Issues2 SELECT Full.* FROM Full LEFT JOIN Transaction1 ON Full.[Member ID] = Transaction1.[Member ID] WHERE (((Transaction1.[Member ID]) Is Null));"
DoCmd.RunSQL "INSERT INTO Issues2 SELECT Transaction1.* FROM Transaction1 LEFT JOIN Full ON Transaction1.[Member ID] = Full.[Member ID] WHERE (((Full.[Member ID]) Is Null));"
End If
Next fld
有没有人知道为什么它会在第一次运行时正常工作,但在第二次循环中出错?
它可能会帮助您发布调用此例程的代码(两次)。还有这个建议:在第一次和第二次调用之间,插入'DoEvents'并查看行为是否改变。 – Smandoli
代码只是附加到一个点击事件,只要我点击按钮这是什么运行。至于DoEvents,我会在那里放置?我全新的VBA,所以我不知道可能90%的条款的一切,或他们做什么 – user1787114
“微软访问比较表”搜索网;请查看http://www.access-programmers.co.uk/forums/showpost.php?p=642465&postcount=12等结果。 – Smandoli