如何从一个表中复制一个记录集并添加到另一个表中?

Posted

技术标签:

【中文标题】如何从一个表中复制一个记录集并添加到另一个表中?【英文标题】:How to copy a recordset from one table and add to another table? 【发布时间】:2013-04-03 09:04:11 【问题描述】:

我有两张表,我有一个链接到其中一张的表格。我想检查一个值,如果为真,则使用 VBA 将记录添加到另一个表中。 谁能帮帮我?

这是我的代码,但它不起作用:

Dim rec1 As DAO.Recordset
Dim rec2 As DAO.Recordset

Set rec1 = CurrentDb.OpenRecordset("TotalTPAq")
Set rec2 = CurrentDb.OpenRecordset("Visi")

rec1.MoveFirst
Do Until rec1.EOF

    If rec1!Date = PlanDate.Value Then ' planDate is a text box
        rec2.AddNew
        rec2![Planing Date History] = PlanDate.Value
        rec2.Update
        rec2.Close
    End If
    rec1.MoveNext
Loop
rec1.Close

Set rec2 = Nothing
Set rec1 = Nothing

DoCmd.Close

【问题讨论】:

我是 access 和 vba 的初学者,它没有收到任何错误消息,只是停在 rec2.addnew 行,我不知道是什么问题!我更改了 rec2.close 的位置,但结果是一样的! 我刚刚在访问中测试了它,我将rec2.close放在rec1.close之后,但结果是一样的。 事实上我有一个链接到查询的表单。我使用复选框来选择表单中的记录,我想将 planDate.value 添加到所选记录的查询表中。事实上,我希望有另一个表来将这些选定的记录添加到其中,以记录发生的事情,因为查询的表的值发生了变化。 【参考方案1】:

这应该为您提供一个开始:

'Run query to fill table
Private Sub btnRnQry_Click()

    'No value entered
    If IsNull(Me.txtEntry) Or Me.txtEntry = "" Then
        MsgBox ("Is null or empty")
    Else
        'Assign value to variable
        Dim entry As String
        entry = Me.txtEntry

        Dim sql As String
        sql = "INSERT INTO tableTwo ([First Name],Surname,[Phone Number] )" & _
              "SELECT * " & _
              "FROM tableOne " & _
              "WHERE [First Name] = '" & entry & "';"

        'Run the SQL
        DoCmd.RunSQL sql

    End If

End Sub

【讨论】:

非常感谢,更好了。

以上是关于如何从一个表中复制一个记录集并添加到另一个表中?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:从一个表中复制新添加的行并自动插入到另一个表中

VF中如何将一个表的内容复制到另一个已经存在的表中

如何从一个工作表内的多个提取数据记录到另一个工作表中,并在数据后面加一个分隔标记。

如何从一个表中检索一百万行并将其插入到另一个表中? [复制]

从表中复制数据并将其加载到另一个表中

ABAP 中内表的复制