Microsoft Access 掲示板

レポートの印刷方法を教えてください(初心者です)

16 コメント
views
4 フォロー

"レポート"で封筒のひな形を作りました。そのひな形にテーブルにある何百のレコードから
任意のレコードを選んで、封筒に印刷するのはどのようにすればいいのですか。
最近まで「桐」を使用していたので、「ACCESS」は難しいです。

マイマイ
作成: 2022/06/21 (火) 16:29:59
通報 ...
1

現状の雛型では、テーブルの全レコードが出力される状態でしょうか。

「任意のレコードを選んで」は、どのようなユーザーインターフェイスで選ぶ予定でしょうか。
帳票フォームで選択しているレコードを印刷するとか、リストボックスに表示させてそれで選択するとか、
いろいろ考えられますが。

VBAを使うことは可能ですか。

2
マイマイ 2022/06/22 (水) 15:49:25

hatena 様

ありがとうごいます。
  現状の雛型では、テーブルの全レコードが出力される状態でしょうか。
   ⇒そのようになります
 「任意のレコードを選んで」は、どのようなユーザーインターフェイスで選ぶ予定でしょうか。
 帳票フォームで選択しているレコードを印刷するとか、リストボックスに表示させてそれで選択するとか、
 いろいろ考えられますが。
   ⇒複数の選択肢があることすらわかりませんでした。一番簡単な方法でお願いします。
 VBAを使うことは可能ですか。
   ⇒不可能です。まだまだそこまで追いついていません。
よろしくお願いいたします。

3

では、テーブルを選択しておいて、[作成]→[フォームウィザード]をクリックします。
表示したいフィールドを選択して[次へ] [表形式]を選択して[次へ]
フォーム名をお好みで設定して、[完了]
以上で帳票フォームが作成できます。これを開くとテーブルのデータが表形式で表示できます。

このフォームをデザインビューにして、フォームヘッダーにコマンドボタンを配置します。
ウィザードが開くので、そこで[レポートの操作]→[レポートのプレビュー]を選択して[次へ]
レポートを選択して[次へ]
文字列を選択して、「封筒プレビュー」と入力して[次へ]
名前を「封筒プレビュー」とてし[完了]

これでフォームを開いて、「封筒プレビュー」をクリックするとレポートがプレビューされるのを確認してください。
このままでは、全レコードが出力されますので、選択していくレコードのみにする必要がありますが、
とりあえりず、ここまで作業してみてください。
うまくいったら、次の作業を回答します。

4
hiroton 2022/06/23 (木) 11:29:02 8c478@f966d

作成したテーブルの名前(テーブル名)とレポートの名前(レポート名)はそれぞれなんですか?
回答者と齟齬が起きないように必要な情報として記載するようにしてください


テーブルに「印刷する」フィールドを「Yes/No型」で作成します
画像1
レポートをデザインビューで開き、プロパティシートのデータタブで

フィルター印刷する=True
読み込み時にフィルターを適用はい

と変更します
画像2

テーブルで「印刷する」フィールドにチェックを入れてからレポートを開けば、チェックを入れたレコードのみが印刷できるようになります(特殊な状況による例外あり)


提示した方法は、ACCESSの基本機能すら使いこなす前の、原理や理論に近い部分の手法です。実際の運用にあたっては、オリジナルのユーザーインターフェースが必要になることでしょう。たとえばhatenaさん提示のような方法で、フォームの作成をしていくことになります

5
マイマイ 2022/06/24 (金) 11:27:13

hatena 様

お世話になります。
お教えいただいた作業までは上手く順調に進みました。
その後をお教えください。よろしくお願いいたします。

6
hatena 2022/06/24 (金) 16:24:06 修正

それでは、続きです。

まず、テーブルの主キーフィールド名を、「顧客ID」と仮定します。
フォーム名は、「F_封筒印刷」と仮定します。

フォームをデザインビューで開いて、「封筒プレビュー」コマンドボタンを選択して、プロパティシートで[イベント]タブの[クリック時]に[埋め込みマクロ]となっていると思いますので、その右端のビルドボタン(...)をクリックします。
マクロ画面が開きますので、
「レポートを開く」を選択して、Where条件式の欄に下記の式を入力します。

[顧客ID]=Forms!F_封筒印刷![顧客ID] 

画像1

マクロ画面を閉ます。

これで完成です。
フォームを開いて、印刷したいレコードを選択してコマンドボタンをクリックすると、そのレコードがプレビューされます。

7

この方法だと1クリックにつき1レコードですが、
もし、複数のレコードを選択して、まとめて印刷したいというときは、hirotonさんが提案されたテーブルに「Yes/No型」フィールドを追加する方法を使うといいでしょう。

フォームの方にも「Yes/No型」フィールドを追加するとチェックボックスになりますので、印刷したいレコードにチェックをいれて、1クリックでまとめて印刷することも可能です。

その場合は、埋め込みマクロのWhere条件式の欄に下記の式を設定しておきます。

[印刷する]=True
8
マイマイ 2022/06/27 (月) 09:55:24

hatena 様

ありがとうごいます。
 'レポートを開く'マクロアクションの'Where条件式'引数に無効な値が入力されています。
と表示されます。
どのように対応すればいいでしょうか。

9

マクロのWhere条件式欄は下記の式になってますか。

[顧客ID]=Forms!F_封筒印刷![顧客ID] 

顧客ID は実際の主キーフィールド名
F_封筒印刷 は実際のフォーム名

また、フォームでは、新規レコードではなく、印刷したいレコードを選択した状態ですか。

10
マイマイ 2022/06/27 (月) 15:15:56

hatena 様

お世話になります。
確認しつつ行いましたが、うまくいきません。
諦めます。ありがとうございました。

11

あら、もう、諦めてしまうのですか。
あと一歩なのにもったいない。

どうしてもうまく行かないなら、右カラムにファイル送信フォームから現状のファイルを送付してもらえれば、原因を特定して修正法を提示できると思いますよ。

よろしければ、活用ください。

12
マイマイ 2022/06/28 (火) 11:45:32

hatena 様

お世話になります。
下記の情報で、いいでしょうか。
 テーブル名:住所録1
       項目:ID、〒、住所、氏名
 フォーム名:F 住所録1
       項目:〒、住所、氏名
度々申し訳ございません。
よろしくお願いいたします。

13

マクロのWhere条件式欄に下記でどうでしょうか。

[ID]=[Forms]![F 住所録1]![ID] 
14
マイマイ 2022/06/28 (火) 14:13:23

hatena 様

お世話になります。
 パラメーターの入力 ID という画面が現れます。
また、以前にお教えいただいたマクロと今回のマクロでは[]の使い方が微妙に違いますが
何か違うのですか。

15

 パラメーターの入力 ID という画面が現れます。

ということは、レポートのレコードソースに ID フィールドがないということです。
レポートのレコードソースは、住所録1 で間違いないですか。
住所録1 の主キーフィールドは ID で間違いないですか。

また、以前にお教えいただいたマクロと今回のマクロでは[]の使い方が微妙に違いますが
何か違うのですか。

[ ] があるかどうかの違いですね。通常は[ ]で囲まなくてもいいのですが、オブジェクト名に空白や記号が含まれている場合は囲む必要があります。今回は、フォーム名に空白が含まれていたので[ ]が必要でした。

16
マイマイ 2022/06/28 (火) 15:59:33

hatena 様

お世話になります。
「テーブル」と「フォーム」だけでなく、「レポート」も絡んでくるのですか。
もう、無理です。
もっと簡単な "桐"に戻ります。
ありがとうございました。