我有一个select查询,它给出了部分重复的行,我希望将重复的行合并到一行,非重复值以逗号分隔。 查询的当前输出是:
**Contacts Department Type**
Elena Stone Biology Impact
Elena Stone Biochemistry Impact
Elena Stone Biotechnology Other
我想要的输出应该是:
**Contacts Department Type**
Elena Stone Biology,Biochemistry,Biotechnology Impact,other
有人可以帮我解决这个问题。 谢谢
答案 0 :(得分:0)
要进入VBA,请按ALT + F11,这将打开编辑器。由于您没有开发表单,因此您只需创建一个模块即可。转到“插入”,然后选择“模块”,您会在顶部看到一个空白窗口,其中显示Option Compare Database
。
要启动模块,您需要创建一个子功能并在那里输入代码:
Public Sub CleverNameHere()
'Code
End Sub
保存时,请不要将模块命名为CleverNameHere
,因为如果您必须调用它,那么它将显示为ModuleNameHere.CleverNameHere
,括号用于参数。< / p>
从那里你将只写一些调用你的表,创建一个记录集,并逐行记录并操纵它直到文件结束(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