Ms access 在单个字段中组合多个列

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

!![焊缝跟踪数据库][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/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