Microsoft Access 掲示板

フォーム上でチェックが入ったデータはレポートに表示させない

9 コメント
views
4 フォロー

お世話になっております。

帳票フォーム上にチェックボックスを配置し、チェックされるとテキストボックスが編集できなくなるようにしています。
それにプラスしてチェックされたテキストボックスの値をレポートに表示させないようにしたいです。
こういう仕様は実装可能でしょうか?
可能であればどのようにすればよいか教えて頂きたいです。
ちなみにテキストボックスを使用不可にするのは条件付き書式で実装しています。
宜しくお願い致します。

おにこ
作成: 2021/06/25 (金) 15:38:11
通報 ...
1
hatena 2021/06/25 (金) 16:33:20 修正

クエリで、チェックボックスと連結しているフィールドの抽出条件を False と設定して、
そのクエリをレポートのレコードソースとすればいいでしょう。

あるいは、レポートのレコードソースには抽出条件を設定せずに、レポートを開く時にフィルターをかけてもいいでしょう。
VBAなら下記のようになります。

DoCmd.OpenReport "レポート名", acViewPreview, , "フィールド名=False"
2
おにこ 2021/06/28 (月) 08:53:18 3e392@b524f

hatena様
回答ありがとうございます。
提示して頂いたVBAを開くときのイベントに入れてみましたが、チェックするとテキストボックスの値だけでなくちぇチェックされた人のデータそのものがレポートに表示されなくなりました・・・
チェックされたテキストボックスの値を空白のように表示されないようにしたいのですが可能でしょうか?
言葉足らずで申し訳ありませんが宜しくお願い致します。

3

提示のコードは、開く時のイベントではなく、フォーム上に配置したコマンドボタンのクリック時のイベントプロシージャに記述してください。

4
おにこ 2021/06/28 (月) 11:53:36 3e392@b524f

hatena様
失礼いたしました。
クリック時のイベントに記述しました。

クリック時のイベントに記述しましたがやはりチェックされた人のレコード自体消えてしまいます・・・

テーブル情報は以下になります。
☆社員制服マスタ
社員番号:数値型
上着サイズ:テキスト型
ズボンサイズ:テキスト型
シャツサイズ:テキスト型
キャップサイズ:テキスト型
上着チェック:Yes/No型
ズボンチェック:Yes/No型
シャツチェック:Yes/No型
キャップチェック:Yes/No型

このチェックは支給不要と回答した社員にチェックを入れて管理表のレポートにサイズを表示しないようにしたいのです。

提示して頂いたコードをクリック時に入れると、上着のチェックボックスにチェックを入れてるだけでもその人のレコードがレポートに表示されなくなりました。

フィールドと連結しているチェックボックスにチェックを入れると、そのフィールドの値が表示されないという仕様を実装したいです。

説明が凄く下手で本当に申し訳ありませんが宜しくお願い致します。

7

質問を読み違えてました。
チェックの入ったレコードを表示しないというのがご希望だと思っていました。
チェックの入ったレコードのあるフィールドの値を非表示にしたいということですね。
hirotonさんから適切な回答がついていますのでそちらを参考にしてください。

5
hiroton 2021/06/28 (月) 12:30:35 38cf2@f966d

フィールドの値を個別にON/OFFしたいならクエリにチェックの内容で条件分岐させたフィールドを作ったらいいですね
ex)クエリのフィールド

上着サイズ表示:IIf([上着チェック],"",[上着サイズ])

テキストボックスのコントロールソースで同様に指定する形でもいいです
ex)テキストボックスのコントロールソース

=IIf([上着チェック],"",[上着サイズ])

余談ですが、名前が「上着チェック」だとONで要なのか「いらないときはチェックをつける」なのかわからないですね

「チェック」自体はデータ型を見れば「Yes/No型」なのでわかると思います

フィールド名:上着不要
データ型:Yes/No型

のようにするといいと思います

6
おにこ 2021/06/28 (月) 13:49:58 3e392@b524f

hiroton様

上着サイズ表示:IIf([上着チェック],"",[上着サイズ])
こちらで実装できました!
ありがとうございます。
hatena様もアドバイス頂き誠にありがとうございました。

少しお聞きしたいのですが、購入不要のものはレポート上に表示されなくなりました。
今表示されている制服の各種類、各サイズの合計をレポート上に表示することは可能でしょうか?
例えば
上着のSサイズが8 Mサイズが17 Lサイズが20
ズボンの9号が18 11号が28・・・
のようにそれぞれのサイズの合計を出したいです。

追加質問のようになり申し訳ありませんがお分かりであれば教えて頂きたいです。

8
hiroton 2021/06/28 (月) 14:34:26 修正 38cf2@f966d

たとえばレポートフッターにテキストボックスを配置しレコードソースを次のようにします

=Sum(IIf([上着サイズ]="Sサイズ" And [上着チェック]=False,1,0))
9
おにこ 2021/06/28 (月) 15:45:27 3e392@b524f

hiroton様
回答ありがとうございます。
おかげさまで実装できました!!
稚拙な文章にも関わらずご理解いただき大変感謝しております。
またお力を貸して頂けると嬉しいです。