質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

4541閲覧

Accessのレポートをまとめて印刷したい

smaeda

総合スコア17

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2019/08/20 08:00

現在、Accessを使用して下記コードのような帳票の印刷を行っています。

Access

1Public Sub seikyusyo() 2 3 4 Dim cn As New ADODB.Connection 5 Dim rs As New ADODB.Recordset 6 Dim crtk1 As String '抽出条件 7 8 '接続 9 Set cn = CurrentProject.Connection 10 11 '参照 12 rs.Open "Query_test", cn, adOpenKeyset, adLockOptimistic 13 14 '印刷 15 Do Until rs.EOF 16 flg_1 = rs!フラグ1 17 flg_2 = rs!フラグ2 18 crtk1 = "会員コード ='" & rs!会員コード & "'" 19 20 Select Case flg_1 21 Case 1 22 Select Case flg_2 23 Case 1 24 DoCmd.OpenReport "R_report_1", acViewNormal, , crtk1 25 Case 2 26 DoCmd.OpenReport "R_report_2", acViewNormal, , crtk1 27 Case 3 28 DoCmd.OpenReport "R_report_3", acViewNormal, , crtk1 29 End Select 30 Case 2 31 Select Case flg_2 32 Case 1 33 DoCmd.OpenReport "R_report_4", acViewNormal, , crtk1 34 Case 2 35 DoCmd.OpenReport "R_report_5", acViewNormal, , crtk1 36 Case 3 37 DoCmd.OpenReport "R_report_6", acViewNormal, , crtk1 38 End Select 39 End Select 40 41 rs.MoveNext 42 43 Loop 44 45 '終了 46 rs.Close: Set rs = Nothing 47 cn.Close: Set cn = Nothing 48 49 50End Sub

会員データを一括で取得し、ループしながら一枚ずつ印刷を行っています。
各レポートには、それぞれレコードソースが設定されています。
上記の場合ですと、PDF印刷をした場合に1レポートごとに保存を行わなければいけません。

今回、PDF印刷した場合に、全てまとめて1つのレポートにしたいです。
何かいい方法がありましたら、ご教示下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2019/08/20 11:25

"R_report_1", "R_report_2", "R_report_3" ・・・はレコードソースおよびレイアウトが異なるのでしょうか。 それともレコードソースが異なるだけで、レイアウトは同じでしょうか。 それによって対処法が異なってきますので、質問に追記してください。
smaeda

2019/08/21 00:39

"R_report_1", "R_report_2", "R_report_3"は、すべてレコードソースもレイアウトも異なります。 よろしくお願いいたします。
guest

回答2

0

ベストアンサー

"R_report_1", "R_report_2", "R_report_3"は、すべてレコードソースもレイアウトも異なります。

かなり難易度の高い要件になりますね。

まずクエリ"Query_test"に下記のフィールドを追加してください。

フラグ: ([フラグ1]-1)*3+[フラグ2]

これで下記のような演算結果になります。

フラグ1フラグ2フラグ
111
122
133
214
225
236

次にサブレポート各レコードソースに下記のフィールドを追加します。

"R_report_1" には
フラグ: 1
"R_report_2" には
フラグ: 2
以下同様にすべてのレポートに追加してください。

"Query_test"をレコードソースとするレポートを作成します。
その詳細セクションに"R_report_1", "R_report_2", "R_report_3"・・・をサブレポートして縦に並ぶように配置します。
配置した各サブレポートコントロールのプロパティを下記のように設定します。

プロパティ設定値
リンク親フィールド会員コード;フラグ
リンク子フィールド会員コード;フラグ
印刷時縮小はい
印刷時拡張はい

メインレポートの詳細セクションの「改ページ」プロパティを「カレントセクションの後」に設定します。

これでご希望の結果になると思います。


動作原理を少し解説しておきます。

メインレポートとサブレポートを「会員コード」と「フラグ」でリンクさせることで、
会員コードとフラグが一致しないサブレポートのレコード件数は0となります。
印刷時縮小が「はい」になってますので件数0のサブレポートの高さは0になり表示されません。

投稿2019/08/21 02:03

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smaeda

2019/08/21 09:10

そのようにフラグを使うとは大変勉強になりました。 「印刷時縮小」というプロパティも今まで知らなかったので、とても参考になりました。 ご教示頂いた方法で試してみようと思います。ありがとうございました。
guest

0

ごめんなさい今手元にAccessの環境がないので
ひとまず記憶だけを頼りに書きます。

そういうときはサブレポートを使うといいです。
レポートをまとめる用の親になるレポートみたいなやつです。
サブレポートを作成して使用する

投稿2019/08/20 08:21

sumire_cl

総合スコア228

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smaeda

2019/08/20 08:53

ご回答頂きありがとうございます。 サブレポートを使用してみようと思ったのですが、複数の会員コードをどのように渡せば良いのか分からず行き詰まっております。 メインレポートにレコードソースを設定し、そこに対象のIDが複数セットされるようにすればよろしいでしょうか・・・?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問