Sql access 2007 vba recordset.EOF循环返回集合的第一条记录
因此,我尝试从表中选择一些数据,然后循环遍历结果,并在表中插入带有修改/附加数据的新记录。我遇到的问题是,当我循环我的记录集时,它似乎会遍历整个记录集,然后在退出之前返回到第一个记录集 例如,我在表中有两条记录,当我做出选择时,它应该只插入两条记录,但出于某种原因,它会插入3条,第一条重复两次 这是我的密码Sql access 2007 vba recordset.EOF循环返回集合的第一条记录,sql,vba,ms-access,eof,recordset,Sql,Vba,Ms Access,Eof,Recordset,因此,我尝试从表中选择一些数据,然后循环遍历结果,并在表中插入带有修改/附加数据的新记录。我遇到的问题是,当我循环我的记录集时,它似乎会遍历整个记录集,然后在退出之前返回到第一个记录集 例如,我在表中有两条记录,当我做出选择时,它应该只插入两条记录,但出于某种原因,它会插入3条,第一条重复两次 这是我的密码 Dim rs1 As DAO.Recordset Dim query1 As String query1 = "select [Test Script] from TEST_SCRIPTS
Dim rs1 As DAO.Recordset
Dim query1 As String
query1 = "select [Test Script] from TEST_SCRIPTS where TEST_ID= " & Me.TEST_ID & " "
Set rs1 = CurrentDb.OpenRecordset(query1)
If Not (rs1.EOF And rs1.BOF) Then
rs1.MoveFirst
Do Until rs1.EOF = True
INSERT_INTO_TEST_SCRIPTS = "insert into TEST_SCRIPTS ([Test Script], TEST_ID) values (""" & rs1![Test Script] & """, " & Me.TEST_ID & ") "
DoCmd.SetWarnings False
DoCmd.RunSQL INSERT_INTO_TEST_SCRIPTS
DoCmd.SetWarnings True
rs1.MoveNext
Loop
End If
rs1.Close
Set rs1 = Nothing
我刚开始使用记录集,这个一直困扰着我,我感谢任何帮助
谢谢我认为您的代码也应该可以正常工作 尝试将记录集设置为仅向前,可能会有所帮助 设置rs1=CurrentDb.OpenRecordsetquery1,仅dbOpenForwardOnly 除此之外,执行insert-select更有效 在表col1、col2中插入,从其他表中选择col1、col2
你100%确定数据没有在你的选择中出现两次吗?是的,我甚至删除了所有记录并压缩了数据库..我觉得我疯了,因为这应该可以工作我想我必须先删除rs1.MoveFirst,因为运行时错误,但在那之后一切都正常了。我感谢您关于如何使查询更有效的建议,谢谢Elias!我忘了你不能用那个!没问题。以下是“指定游标类型”下的不同记录集定义,以供将来参考