• ベストアンサー

ACCESSでクロス表で印刷

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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/17068)
回答No.1

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

eastboy
質問者

お礼

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

関連するQ&A

  • ACCESSのレポートの印刷について

    ワードで作成したものをレポートに貼り付けて、クエリからフィールドを追加し印刷しました。 しかし、これまで印刷できてたものが、突然、クエリからのフィールドは印刷されましたが、ワードで作成したものは印刷されないようになりました。 知らない間にどこか設定を変えたのだろうと思いますが、分かりません。 どの設定を変えれば両方印刷ができるようになるでしょうか。

  • ACCESS テーブルの正規化

    EXCELデータで以下のような正規化されていない項目のデータをACCESSに取り込んで顧客毎に商品の数量を計算するクエリを使用しています。 顧客ID|顧客名|商品名1|商品名2| ・・・・・・・ XXXXX ○○○       2      3  ・・・・・・・ XXXXX ○○○       2      3  ・・・・・・・・ XXXXX ○○○       2      3  ・・・・・・・・ 商品名が可変で追加されたり、削除されたりするのですが、今までは集計の都度クエリを作成していたため問題はありませんでしたが、今回クエリからレポートとフォームを作成するように指示がありました。自分が集計の都度クエリを作成出来ない環境になったため、事前にクエリを組んでフォーム、レポートを作っておきたいのですが、可変な項目名の集計クエリを作成する方法はあるでしょうか? 私のイメージでは 顧客ID|顧客名|商品名 数量 XXXXX ○○○  商品1  2 XXXXX ○○○  商品2  1 XXXXX ○○○  商品3  3 このように正規化出来ればよいと思います。 ACCESSにはテーブルの正規化機能がありますが、操作方法を読んでみるとやはり事前に項目を指定して作成するように読み取れました(間違っているかもしれませんが) 何か良い方法があれば教えてください。 EXCELのVBAは多少書けるのですが、ACCESS VBAはあまり得意ではありません。 自分でメンテナンス出来るように、出来ればクエリで作成したいのですが無理でしょうか? よろしくお願いします。

  • アクセスで2つの表を1つにしたいのですが。

    よろしくお願いします。 表A 表B   かなりフィールド数がたくさん を共通フィールド(1)を介して一つの表にしたいのです。 1、内部結合しか方法はないのでしょうか? 2、この場合クエリで必要なフィールドを選んでいく時のチェックするフィールド数は増やせるのですか? ご存知の方、教えてください。

  • ACCESSの基本的な使い方質問

    初歩的な活用方法だとおもうのですが、 微妙にフィールドの項目、順番が違う2つのテーブル(A、B)を、同じフィールドだけ表示させてA、B両方のレコードを1つの表で表示させたいですが、クエリでてきるのでしょうか?一番簡単なやり方はどうするのでしょうか?

  • Accessのクエリーのデザインを印刷したい

    Accessでクエリーをデザインビューで開くと、 四角い枠で囲まれて ・フィールド名 ・元のテーブル名 ・並べ替え ・表示/非表示 ・抽出条件 等が表示されますがこのままを印刷できないですか? SQLという形だとデータベース解析とかいうメニューで印刷できるのですが……枠に囲まれたクエリーのデザインビューのまま印刷したい。

  • Access DBの作成について

    初歩的な質問になってしまって申し訳ないのですが、テーブルを作成するさい正規化をするかと思います。 通常のDBの作成を考えた場合、商品名のテーブルを別に作りそれを利用する形になるかと思うのですが、 商品はすでに決まっており増えることが今後無く、数品目に固定されております。 こういった場合、フィールド項目を商品名にするのは不味いのでしょうか? 利点としては、項目がフィールドとして固定されていると、 原稿どおりに入力フォームを作成することが可能になるので入力が楽になりますし、入力ミスが減るかと思います。 しかし、欠点として、ユニオンクエリを作成しておかなければクエリを作成する際にクエリ数が多くなると考えられます。 (同じ抽出条件を指定する場合など) 最終的には円グラフ、棒グラフを各商品ごとに作成したり、データごとの一つの表(売上伝票のようなもの)を作成するのですが、 最終結果を考えると、エクセル、ワードを使用しなければなりません。 本のような印刷物にすることを考えているので、操作面から考えてエクセルで最終的なものを作成しようと考えています。 仮にエクセルのグラフ機能、ワードの差込印刷をしようするとして、 そうした場合、商品項目事にフィールドを並び替えなくてはいけなくなります。 クロス集計クエリをすれば可能かと思いますが、処理に若干時間がかかることが考えられます。 これらのことから考えて、商品項目をフィールドごとに作成しようかと考えているのですが、 何か問題になるようなことはあるでしょうか?

  • access2000のレポートはがき印刷について

    アクセス2000の<レポート>はがき印刷で、送り先の住所のところに、フィールド名:住所1とフィールド名:住所2を組み込んでいます。このフィールド名:住所2を無くして、住所1だけをはがき印刷で使うように変更したいのですが、変更の仕方がわかりません。詳しいかた変更の仕方を教えていただけませんか?もしくは、一度完成したレポートはがき印刷は、変更できないのでしょうか? よろしくお願いします。

  • Access Dlookupでエラー

    選択クエリAのレポートを作成し、 レポート内のテキストボックスに値を表示させたいです。 ●表示させたい値 クエリA フィールド名[集計]が"昨年"の値を持つ、フィールド名[1月]の値を表示させる。 フィールド[集計]の書式は文字列、[1月]は数値です。 テキストボックスのコントロールボックス?に、 =dlookup("[1月]",[クエリA],"[集計]='昨年'' ) と入れたところ、エラー表示もなにも表示されませんでした。 どこが間違っているか、自分ではわからず困っています。 どうか教えていただきますようお願いいたします。

  • Accessでレポートを作成したい

    Access2000を使っています。 ウィザードを使ってレポートを作成しようとしています。 レポート作成用に新規クエリを作り、レポート作成ウィザードの「フィールドの選択」で新しく作ったクエリを指定し、そこからすべてのフィールドを選択しましたが、印刷形式を選択したところで、「アプリケーション定義またはオブジェクト定義のエラーです」というメッセージが出ます。 クエリの作り方が間違っているのでしょうか。それともクエリの中のテーブル間の結合がうまくいっていないとか…。 「フィールドの選択」では、レポートで表示させたいフィールドだけを選択すればいいんですよね? そのためのクエリも、同じくレポートで表示するフィールドだけを入れればいいんですよね。 そもそも「アプリケーション定義またはオブジェクト定義のエラー」って何なんでしょう…。 初心者ですがよろしくお願いします。

  • ACCESS2000のレポート

    Windows2000&ACCESS2000のレポートで変な現象が出ています。 テーブル:日付と住所とシメイと氏名。日付は日付型、それ以外はすべてテキスト型。 クエリー:上記のフィールドをそのままクエリーに。 表形式のレポートを作成を作成。日付によって抽出条件を変えて例えば、 何月何日の人の一覧表、のように出力しています。 →シメイ のテキストボックスだけ、 プレビューではすべて表示されているのですが、実際に印刷してみると 表示されていないことがあります。 この現象は、レポート単位です。 PCを変えて(ドライバーを変えて)みても同じ現象が起こります。 ご存知の方、おられましたら、よろしくお願いします。

専門家に質問してみよう