带有SQL语句的DAO Recordset,用于为下一个循环添加记录

时间:2016-02-09 22:40:13

标签: sql ms-access for-loop dao recordset

我知道这很愚蠢,但我无法弄清楚这一点。下面的当前代码插入满足TxtBox1条件的记录集,然后通过重写它们来删除表中的数据,以满足符合TxtBox2标准的新记录集。

我需要的是将TxtBox1中的记录集满足条件插入表中,然后在循环时将记录集的下一次迭代添加到表中。 (不写/删除第一个记录集返回)

Dim db As Database
Dim rst As DAO.Recordset
Dim rrow As Integer, strCmboNmbr As Integer
Dim start As Object

Set db = CurrentDb()

strCmboNmbr = (Left(Forms("Match Summary").Controls("CmbNum").Value, 1))

For rrow = 1 To strCmboNmbr 'lets say 2
  Set start = Forms("Match Summary").Controls("TxtBox" & rrow) 'TxtBox1, TxtBox2, etc.
    DoCmd.RunSQL "SELECT [Oracle JE].* INTO Unmatched FROM [Oracle JE] WHERE [Oracle JE].[Account Code]=" & start 'This is a MAKE Table Query
Next rrow

1 个答案:

答案 0 :(得分:2)

如果您不想覆盖该表,则在首次运行后需要追加:

If rrow = 1 then
    DoCmd.RunSQL "SELECT [Oracle JE].* INTO Unmatched FROM [Oracle JE] 
    WHERE [Oracle JE].[Account Code]=" & start 
Else
    DoCmd.RunSQL "INSERT INTO Unmatched SELECT [Oracle JE].* FROM [Oracle JE] 
    WHERE [Oracle JE].[Account Code]=" & start 
End

理想情况下,您预定了一个表格。然后,您可以为其添加主键和索引,先将其清除,然后运行一系列追加。