2013-04-03 98 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

相關問題