レポートだと可能ですが、フォームでは出来ません。
どうしても・・・という場合でしたら表示用のワークテーブルを作成します。
元のテーブルに
項目A
項目B
項目C
というフィールドがあるとして
表示用ワークテーブルに
項目A01
項目B01
項目C01
項目A02
項目B02
項目C02
項目A03
項目B03
項目C03
という風に、横に並べたい列分だけフィールドを用意します。
追加クエリーでは恐らく無理だと思いますのでVBAで元のテーブルを読んで、ワークテーブルに書き出した後、そのテーブルを元にフォームを表示させて下さい。下記はDAOを使ったやり方です。
Dim rsSRC As Recordset
Dim rsWRK As Recordset
Dim intCNT As Integer
Dim blnSW As Boolean
SET rsSRC = CurrentDB().OpenRecordset("SELECT * FROM T_元のテーブル",dbOpenSnapShot)
SET rsWRK = CurrentDB().OpenRecordset("SELECT * FROM T_ワークテーブル",dbOpenDynaset)
intCnt=0
blnSW=False
Do Until rsSRC.EOF
intCnt = intCnt + 1
If intCnt Mod 3 = 1 then
If blnSW = True Then
rsWRK.Update
End If
rsWRK.AddNew
End If
rsWRK("項目A" & Format$(intCnt Mod 3,"00")=rsSRC("項目A")
rsWRK("項目B" & Format$(intCnt Mod 3,"00")=rsSRC("項目B")
rsWRK("項目C" & Format$(intCnt Mod 3,"00")=rsSRC("項目C")
blnSW=True
rsSRC.MoveNext
Loop
If blnSW = True Then
rsWRK.Update
End If
お礼
CHOROLYNさん、ありがとうございます。 ワークテーブルからの作成となるんですね。 参考にします。