如何从一个表中复制一个记录集并添加到另一个表中?
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:从一个表中复制新添加的行并自动插入到另一个表中
如何从一个工作表内的多个提取数据记录到另一个工作表中,并在数据后面加一个分隔标记。