たびたびすみません。
1つの担当に対する名前の数も不定なんですよね?
1つ名案が浮かびましたので参考までに…
まず、テーブルを3つに分けます。
T_担当 担当ID(主キー)、担当名
T_名前 名前ID(主キー)、名前
T_統合 統合ID(主キー)、名前ID、担当ID
次に標準モジュール内に以下の関数を作成します。
Function GetName(TantouID As Long, Number As Long) As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim SQL As String
Dim RecCnt As Long
Dim i As Integer
Dim Namelist As Variant
SQL = "SELECT 名前 FROM ((T_統合 INNER JOIN T_名前 ON T_統合.名前ID=T_名前.名前ID) INNER JOIN T_担当 ON T_統合.担当ID=T_担当.担当ID) WHERE T_統合.担当ID=" & TantouID & " ORDER BY T_統合.名前ID"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(SQL)
If rst.BOF And rst.EOF Then
GetName = ""
Else
rst.MoveLast
RecCnt = rst.RecordCount
rst.MoveFirst
ReDim Namelist(RecCnt - 1) As String
For i = 0 To RecCnt - 1
Namelist(i) = rst!名前
rst.MoveNext
Next
If UBound(Namelist) < Number - 1 Then
GetName = ""
Else
GetName = Namelist(Number - 1)
End If
End If
End Function
最後にクエリを作成します。
基になるテーブルはT_担当でフィールドは
担当者名、名前1: GetName([担当ID],1)、名前2: GetName([担当ID],2)、名前3: GetName([担当ID],3)、…
といった形で必要な数だけ名前のフィールドを作成すればご希望のものが出来上がるかと思います。
テーブル名、フィールド名等は適当に変更してください。
説明が下手なので分からないことが多々あるかと思いますが参考にしてみてください。
お礼
お手数掛けして申し訳ありません。レポート&イベントプロシージャでの作成方法についてご教授いただければありがたいのですが。