• ベストアンサー

ACCESSでクロス表で印刷

クロス表の印刷(レポート)は、都度、列項目がかわりますが、どのように印刷すればよいのでしょうか。 クエリーのままでなく、レポート上でも加工する必要があるのですが、項目名(フィールド)が可変であるため、難しいのでは? みなさんは、どのように活用していますか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

> VBAが使えないので それであれば、質問問題を解決するのは荷が重いのではと思います。解説書でも上級編クラスの問題ではと思います。すべて一般に、「可変」に対応するのは、プログラムでないと難しいです。  しかしモデル的に印刷項目を可変にする例を書いて見ます。あくまで原理的なものを示すのが狙いです。 ------ 「レポート」オブジェクトをクリック 新規作成 私の例では、「社員」テーブル指定。 この中の私の例では、フィールドに「氏名」「所属部」などがあります。 テキストボックスを1つツールボックからD&D (私の例では「テキスト2」という名前になりました) 「テキスト2」のラベルをDELETEで抹消 レポートの左上の□を右クリックしレポートのプロパティを出す。 下の方のイベントの「開く時」をクリック 右のビルダボタン「・・・」をクリック 「コードビルダ」をクリック すると Private Sub Report_Open(Cancel As Integer) End Sub が出ます Private Sub Report_Open(Cancel As Integer) MsgBox "印刷します" fn = InputBox("どの項目を指定しますか") Me.[テキスト2].ControlSource = fn End Sub にします。 Moduleやこのレポートのデザインモードを閉じます。 レポートオブジェクトに戻り、このレポートをオープンしてください フィールド名を聞いてきますから、「氏名」と打ち込みます。 Previewで登録全社員の氏名(だけの)一覧が出ます。 「所属部」を答えると所属部が出ます。 普通は1フィールドでなく、出したい項目は沢山フィールドがありますが、それはプログラム内容で、左右 します。 臭いだけ嗅いでください。

eastboy
質問者

お礼

こちらの、意図をご理解いただいてありがとうございます。 臭いだけで十分感覚的につたわります。 VBAを勉強しようと思っていたので、なんとなくわかりました。 Basicはわかるので、地道にやってみようと思います。 親切なお答えありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

レポートの詳細セクションのテキストボックスを非連結にしておき、ReportのOpen時に、VBAで、それらのテキストボックスのControlSourceに、表示する項目のクエリでのフィールド名をセットすればよいと思います。

eastboy
質問者

お礼

早速ありがとうございます。 なんとなく、イメージがわかるのですが、なんせ、VBAが使えないので、詳しく教えていただくと助かります。

関連するQ&A