0

所以我试图从表中选择一些数据,然后遍历结果并将带有修改/附加数据的新记录插入到表中。我遇到的问题是,当我遍历我的记录集时,它似乎遍历了整个记录集,然后在退出之前返回到第一个集。

一个例子是我在表中有两条记录,当我进行选择时,它应该只插入两条记录,但由于某种原因它插入了 3 个,第一个重复两次

这是我的代码。

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

我是使用记录集的新手,这一直困扰着我,我感谢任何帮助。

谢谢

4

1 回答 1

1

我认为您的代码也应该可以正常工作。

尝试将记录集设置为仅转发,也许这会有所帮助

设置 rs1 = CurrentDb.OpenRecordset(query1, dbOpenForwardOnly)

除此之外,进行插入选择会更有效。

插入 YourTable (col1, col2) (Select col1, col2 From otherTable)

于 2013-09-17T13:04:12.903 回答