要進入VBA您按ALT + F11,這將調出編輯器。由於你沒有開發一個表單,你可以創建一個模塊。去插入,然後選擇模塊,你會看到一個空白窗口頂部Option Compare Database
。
要開始你的模塊創建一個子功能,並把你的代碼有:
Public Sub CleverNameHere()
'Code
End Sub
當您保存這一點,不要將該模塊命名爲相同的名稱CleverNameHere
,因爲如果你曾經有調用它然後它將看起來像這樣ModuleNameHere.CleverNameHere
和括號是爲參數。
從那裏,你一定會寫的東西調用你的表,創建記錄,並通過線需要記錄行和操作它,直到文件(EOF)結束。也許是這樣的:
Public Sub CompareDuplicates()
Dim myR As Recordset
Dim myR2 As Recordset
Set myR = CurrentDb.OpenRecordset("Original_Table", dbOpenDynaset)
Set myR2 = CurrentDb.OpenRecordset("Duplicate_Table", dbOpenDynaset)
Do Until myR.EOF = True
myR2.FindFirst ("Contacts = '" & myR![Contacts] & "'")
If myR2.NoMatch = True Then
myR2.AddNew
myR2![Contacts] = myR![Contacts]
myR2![Department] = myR![Department]
myR2![Type] = myR![Type]
myR2.Update
Else
myR2.Edit
myR2![Department] = myR2![Department] & ", " & myR![Department]
myR2![Type] = myR2![Type] & ", " & myR![Type]
myR2.Update
End If
myR.MoveNext
Loop
Set myR = Nothing
End Sub
你嘗試過什麼了嗎?如果'Contacts'已經存在,你應該可以使用一些VBA創建一個新表並連接'Department'和'Type',否則可以添加一條新記錄。我確信也有SQL來做到這一點,但我並不擅長使用SQL。 – Grant
有沒有辦法在select查詢本身中添加這個條件,如果不是,我該如何去編寫VBA?實際上,我正在使用此查詢從兩個表中收集數據以生成報告。 – Ksagar
對不起,但我對查詢或SQL不太好......但我在下面添加了一個適用於我的答案。它只是不檢查重複。的[合併行/串接行] – Grant