Ms access 在单个字段中组合多个列
!![焊缝跟踪数据库][1] 嗨,伙计们 我希望你能帮我解决我的问题。 我有6列(Col1,Col2,Col3,Col4,Col5,Col6),每一行都有一个唯一的ID。 现在,我试图在一个字段中合并/组合6列,但我一直使用+和&操作。我希望查询结果如下 行1(Col1=10 Col2=10,Col3=10,Col4=10,Col5=10,Col6=10;Query=10)Ms access 在单个字段中组合多个列,ms-access,Ms Access,!![焊缝跟踪数据库][1] 嗨,伙计们 我希望你能帮我解决我的问题。 我有6列(Col1,Col2,Col3,Col4,Col5,Col6),每一行都有一个唯一的ID。 现在,我试图在一个字段中合并/组合6列,但我一直使用+和&操作。我希望查询结果如下 行1(Col1=10 Col2=10,Col3=10,Col4=10,Col5=10,Col6=10;Query=10) 行2(Col1=10 Col2=10,Col3=20,Col4=20,Col5=30,Col6=30;Query=10/2
行2(Col1=10 Col2=10,Col3=20,Col4=20,Col5=30,Col6=30;Query=10/20/30)
行3(Col1=10 Col2=20,Col3=30,Col4=40,Col5=50,Col6=60;Query=10/20/30/40/50/60)
提前谢谢你们 首先,我想说,我认为您应该重新审视存储数据的方式。如果您觉得有必要以这种方式按列分组,那么很可能设置不“正确”。通常情况下,这是存储数据的方式问题。我可能弄错了,但根据给定的信息,我感觉是这样的 为了解决您的实际问题,我将使用自定义函数。我想不出一种只使用SQL查询和分组列的方法 在模块中抛出函数并在查询中调用它(例如,
组合列:GroupByColumns([a]、[b]、[c]、[d]、[e]、[f])
),其中a、b、c、d、e、f是字段名
Function GroupByColumns(ParamArray flds())
Dim dict As Dictionary
Dim key
Dim i As Long
Set dict = New Dictionary
For i = LBound(flds) To UBound(flds)
If dict.Exists(flds(i)) = False Then
dict.Add flds(i), flds(i)
End If
Next
For Each key In dict.Keys
If GroupByColumns = "" Then
GroupByColumns = key
Else
GroupByColumns = GroupByColumns & "/" & key
End If
Next
End Function