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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

Q&A

2回答

3368閲覧

Accessにてレコード検索結果の値を適宜レポートに埋め込み印刷するボタンを設置したい

kozica

総合スコア58

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

0グッド

0クリップ

投稿2019/08/30 06:09

Accessは触り始めてまだ1週間弱です。

各情報は下記のようにしています。
ーーーーーーーーーーーーーーーーーーーーーーー
個人情報テーブル
フィールド:ID、名前、年齢、性別、住まい、生年月日、家族構成、趣味、やりたい事、苦手な事

帳票フォーム
ヘッダー:テキストボックス(名前、年齢、性別、住まい)、検索ボタン、印刷ボタン
詳細:検索結果のレコード表示(名前、年齢、性別、住まいのみ表示)
帳票フォームイメージ図
イメージ図
ーーーーーーーーーーーーーーーーーーーーーーー
ここで「印刷」とは、レコード1つに対して1枚の印刷をするものとする。

○やりたいこと
・詳細に表示されている各レコードの左側にチェックボックスを設置し、印刷ボタンを押すとチェックしたレコードを印刷する
(これは帳票フォームではできないかも??)
・印刷はレポートにレコードの値を適宜入れた物を印刷する。(下記のイメージ図)
印刷イメージ

どうかお力を貸していただきたいです。

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

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

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

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

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

guest

回答2

0

リストボックスを複数選択可にして選んだデータを取得して印刷されてはいかがでしょうか?

質問の回答になっていないといわれればそうですが、検索画面で直接データ修正しないのであれば
リストボックスで十分だと思います。サブフォームのレコードソースをリストボックスの値集合ソースにすれば
運用できますし、リストボックスで複数選択したものを印刷できるようになれば
サブフォームに非連結チェックを置いたときの理解に多少役に立つと思います。

投稿2019/08/30 08:12

sousuke

総合スコア3828

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

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

kozica

2019/09/02 02:39

回答ありがとうございます。 リストボックスですとレコード数が増えた際にその分画面レイアウトが崩れる懸念があります。 かと言ってコンボボックスを使用するにしても選択数が多くてユーザ負担になることを考慮してチェックボックスが良いかな思った次第です。 私の知識不足故に間違った解釈をしていましたら申し訳ありません。
sousuke

2019/09/02 02:43

リストボックスがレコード量によってレイアウトが崩れることはないと思うのですが、、、
kozica

2019/09/02 02:52

リストボックスは値を常に一覧表示しているのではないでしょうか? そのため値の数が増えれば縦に長くなりレイアウトが崩れると思った次第です。 その点コンボボックスは一覧表示ボタンがついてるのでまだそちらの方が良いかなと思いました。
kozica

2019/09/02 02:58

例えば、検索結果のレコードが100件あった場合、リストボックスは一覧表示状態なので100行表示することになるのではないでしょうか?
sousuke

2019/09/02 03:04

サブフォームと同じでコントロールの高さに収まらない場合リストボックス内でスクロールすることになります。基本的にデザインで配置したコントロールが勝手に大きくなったりはしません。
kozica

2019/09/02 03:12

な、なるほど! 言われて見れば確かにその通りですね、、、 初歩中の初歩ですね反省します そうすると、確かにsousukeさんの案はいいかもしれないですね ただそれなら検索結果を帳票フォームにするのではなくリストボックスにそのまま入れる方がいいですかね? そうしないと「検索する→検索結果フォームを見る→印刷したいレコードをリストボックスで探し選択する→印刷ボタンをおす」という印刷したいレコードを2度探すことになるからです。
sousuke

2019/09/02 03:30

帳票フォームのヘッダーで検索系を配置しているんですね。私がサブフォームだと勘違いしていました。 その場合の手法をとるなら仰るとおり帳票フォームはただの単票フォームにして、 帳票フォームのレコードソースをリストボックスの値集合ソースにしたほうがいいかとは思います。 ただsazi氏やhatena19氏の仰る内容は基本中の基本でリストボックスの方が応用に近いと 思います。「非連結のチェックを置いて選択する」ならリストボックスの方がやりやすいというだけで テーブルに項目が追加できるならば、一度「印刷CH」などの項目を追加してチェックしたデータを 印刷するという流れで組むほうがAccessの勉強的な観点でいえばベターだと思います。 kozicaさんのやりたい実装は現段階の理解から一足飛びしていると感じます。
guest

0

投稿2019/08/30 06:29

sazi

総合スコア25138

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

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

kozica

2019/08/30 07:41

2時間ほどみましたがよくわかりませんでした。 これはテーブルにチェックボックスのフィールドを追加して印刷ボタンを連結させることを推奨しているようですが、書かれているのはそれができない時のことなようで結局どうすれば良いかわかりませんでした。
sazi

2019/08/30 08:07

個人情報テーブルに印刷用のフラグを追加できるなら、画面表示時や印刷完了後にフラグをリセットするようにしておいて、レポートではそのフラグを抽出条件にすれば良いかと思います。
kozica

2019/08/30 09:55

私の力不足でそのやり方がわからない状況です、、、
hatena19

2019/08/31 02:21

Accessの基本的なことなのでその辺はまずはご自身で調べてできるとこまでやってみてはどうですか。ヒントを出しておくと、 ・印刷用フィールドがTrueのレコードのみ抽出⇒選択クエリ その選択クエリをレポートのレコードソースにする ・画面表示時や印刷完了後にフラグをリセットする⇒印刷用フィールドをFalseにする更新クエリを実行する。 上記をヒントにできるとこまでやってみて躓いたらその部分をピンポイントで質問されるといいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問