计算查询访问中的多值字段

时间:2013-09-11 15:42:23

标签: sql select ms-access-2010

我有一个表'Contacts',它有一个多值字段'Department'。我有另一张桌子'Outreach',它有一个字段'伙伴组织'。我有一个查询,它将'Contacts.Department'和'outreach。[partner org]'结合到一个字段中,使用fullname字段的外部联接连接两个表,这在两个表中都很常见。 我必须将两个字段组合在一起的SQL语句是

Contacts.Department & ";" & Outreach.[Partner Org] AS [Dept/Partner Org]

如果我运行此查询,则会收到错误

The multivalued field 'Contacts.Department' is not valid in the expression 'Contacts.Department & " " & Outreach.[Partner Org] AS [Dept/Partner Org]'

如果我将'.Value'添加到多值字段,我会得到多行。

Contacts.Department.Value & " " & Outreach.[Partner Org] AS [Dept/Partner Org]

我希望输出具有多值的字段内容,后跟';'和伙伴组织名称都在同一个单元格中。

请有人告诉我如何获得这个。

谢谢。

1 个答案:

答案 0 :(得分:0)

我遇到了这些有用的问题(从最终用户的角度来看),但是从这些分析的角度来看是令人恼火的。

我想出了一个使用表单的解决方法,我认为这可以解决您的问题。我在表格中添加了一个伪部门文本字段,将稍微修改过的代码从the fourth post应用到相关字段“AfterUpdate”事件为&当他们改变时(我传递当前记录& SQL字符串只汇总该记录)。

Dim db As Database, _
rst As Recordset, _
strSQL As String

Me.Refresh

Set db = CurrentDb
strSQL = "Select PseudoDepartment from YOURTABLE where UNIQUEIDNO = " & Me.UNIQUEIDNO & ";"
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)

With rst
    If .RecordCount > 0 Then
        .MoveFirst
        .Edit
        !PseudoDepartment = MakeList(Me.UNIQUEIDNO)
        .Update
    End If
End With

要初始化伪部门字段,可以逐个遍历所有记录以生成内容。然后,可以正常查询数据并以您指定的形式获得结果。

HTH。