2013-04-03 93 views
1

我有两个表,我有一个表单链接到其中之一。我想检查一个值,如果它是真的,使用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 
+0

我是初学者在访问和VBA,它剂量不会得到任何错误消息只是停在行rec2.addnew,我不知道是什么问题!我改变了rec2.close的地方,但结果是一样的! – arm

+0

我刚刚在访问中测试它,我在rec1.close后放置了rec2.close,但结果相同。 – arm

+0

事实上,我有一个链接到查询的表单。我使用复选框来选择表单中的记录,我想将planDate.value添加到所选记录的查询表中。事实上,我想要另一个表添加这些选定的记录到它有发生什么事情的历史,因为查询表的值改变。 – arm

回答

3

这将提供给你一个开始:

'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 
+0

非常感谢,这是更好。 – arm

相关问题