• ベストアンサー

Accessフォームでレコードを横並び

表形式では通常、次のレコードは下側に表示されていきますよね。これを横(右)に表示されるような設定はできるのでしょうか? 画像が入るため、1画面になるべく多くのレコードが表示され、データ編集もできるようにしたいと思っています。レポートの宛名ラベルのような配置にしたいのです。 表形式にはこだわりません、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • CHOROLYN
  • ベストアンサー率60% (14/23)
回答No.1

レポートだと可能ですが、フォームでは出来ません。 どうしても・・・という場合でしたら表示用のワークテーブルを作成します。 元のテーブルに 項目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

kalmit
質問者

お礼

CHOROLYNさん、ありがとうございます。 ワークテーブルからの作成となるんですね。 参考にします。

すると、全ての回答が全文表示されます。

関連するQ&A