• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Microsoft Access2003での印刷)

Microsoft Access2003での印刷

このQ&Aのポイント
  • Microsoft Access 2003を使用して、CSVデータを印刷する方法について質問があります。
  • 質問の内容は、特定のフィールドが埋まったCSVデータをAccessで読み込み、特定の形式で印刷する方法です。
  • Accessにはセクションという機能があり、それを活用して希望の印刷フォームを作成することが可能です。

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

  • ベストアンサー
回答No.1

強いて、Accessのレポート機能等を利用する必要はないと感じました。 01:先頭行の列1を出力する。 02:先頭行の列2を出力する。 03:次の行を読み込む。 04:列3が存在すれば列3を出力する。 05:列3が存在しない時は列4を出力する。 06:改頁する手前まで04、05を繰り返す。 07:締めの文言を出力する。 08:04~07を繰り返す。 以上のようなプログラムを書けませんか?仮に書けないとしたら、作表ソフトの出番かと思いますよ。要は、単なる作表作業ですから・・・。 1、Sheet1に呼び込む。 2、Sheet2の先頭で[締めの文言]を定義する。 3、先頭行の列1を出力する。 4、先頭行の列2を出力する。 5、03~07に相当する関数を定義する。 6、以下、ツツーッ。 こういうアプローチもあろうかと思いますよ。

onefuu
質問者

お礼

ご回答、並びに実際の例まで挙げていただきありがとうございます。 プログラミングはできないのですが、挙げて頂いたのを見ながら、Accessを作成していこうと思います。 本当にありがとうございました。

その他の回答 (8)

回答No.9

<補足>「締めの文言」の出力 Option Compare Database Option Explicit Dim isWriteFooter As Boolean Private Sub グループフッター0_Format(Cancel As Integer, FormatCount As Integer)   isWriteFooter = True End Sub Private Sub ページフッターセクション_Format(Cancel As Integer, FormatCount As Integer)   Cancel = iisWriteFooter   isWriteFooter = False End Sub 添付図のように「締めの文言」を最後のページの行末に表示する場合は、少し工夫される必要があります。

回答No.8

※グループ化しなければレコード順に出力されます。 ※一度切りの出力であれば、それでもOKかと思います。

回答No.7

【補足】列[ID]の付加が必要か? 添付図は、Col2 ではなく列[ID](非表示)で並び替えています。

回答No.6

補足:レポート画像

回答No.5

【訂正】実際にテストしたら・・・ 先のやり方は出力順の制御に問題があって、結局は、つぎのようなクエリを作るのが一番でした。この場合、トップ行の複数化は無用です。 SELECT  T1.Field1 AS Col1,  T1.Field2 & T1.Field3 & T1.Field4 AS Col2 FROM T1; これですと、リスト順に出力されるようです。

回答No.4

「締めの文言」は各ページの下部に表示するのですね。 見落としてました。 前回の回答でレポートフッターに「締めの文言」を配置としましたが、 ページフッターに「締めの文言」を配置する、に訂正します。

回答No.3

> 改頁したらAは必ず出力して続きから という仕様があるので、Accessのレポートだと比較的に簡単にできます。 CSVファイルを、インポートまたはリンクします。 これをレポートのレコードソースとします。 ページヘッダーに、Field_A を配置します。 これですべてのページのヘッダー部に「A」が表示されます。 詳細セクションに、Field_B ,Field_C ,Field_D を重ねて配置します。 背景スタイルを「透明」にしておくか、印刷時縮小を「はい」にしておきます。 レポートフッターに「締めの文言」を配置します。 以上です。

onefuu
質問者

お礼

ご回答ありがとうございます。 重ねて配置という技?などは私では到底思いつきもしません。回答頂いたのを見ながらチャレンジしてみようと思います。ありがとうございました。

回答No.2

補足:仮に Access を利用する場合は・・・。 1レコード目: A    ,B    ,     , 1レコード目: A    ,B    ,     , 2レコード目: A    ,     ,C    , 3レコード目: A    ,     ,C    , 4レコード目: A    ,     ,     ,D 5レコード目: A    ,     ,     ,D 6レコード目: A    ,     ,     ,D 7レコード目: A    ,     ,     ,D 上のように1レコード目を2行にすると、ほぼ何もしなくても目的を達成できるかと思います。 1、1レコード目を2行に。 2、テーブル[XXXX]に呼び込む。 3、ウィザードでレポート[XXXX]を生成する。 4、4つのフィールドを重ねる。 5、詳細部で1行目のAのみ Visibled=True にする。 6、詳細部で1行目以外のAを Visibled=False にする。 7、レポートの下部に[締めの文言]を付加する。 このような感じかと思います。

関連するQ&A