電子書籍の厳選無料作品が豊富!

抽出用のフォームを作成しているのですが、その中にリストボックスがあり、何も選択しなかった場合は、すべての項目が表示される様にしたいと思っております。自分なりに色々と調べたのですが、どうしても希望の動作になりません。どの様にすれば良いのか教えて頂けないでしょうか?
Access2003を使用しております。

Form-A(メインフォーム名)←テーブルAを元に作成(項目名同じ)
番号(主キー)、氏名、性別、A1、A2・・・
A1、A2は、する・しないのどちらかを入力。

Form-B(サブフォーム名)←テーブルBを元に作成(項目名同じ)
ID(主キー)、番号、担当、訪問日、次回訪問日、期間
担当は、値集合タイプ:テーブル/クエリ、値集合ソース:テーブルあ(フィールドは担当のみ)5名程の名前を登録しし、リストボックスにて選択できる様にしています。

現在、下記の様な抽出用のフォームがあります。
Form-抽出(抽出用フォーム名)
A1(チェックボックス)
A2(チェックボックス)
担当(リストボックス:値集合タイプ:テーブル/クエリ、値集合ソース:テーブルあを設定)
[OK]ボタンを押すと抽出(クエリQにて条件を設定)する様にしています。

クエリQ(テーブルA、テーブルBを元に作成)
番号(主キー)、氏名、性別、A1、A2、ID(主キー)、番号、担当、訪問日、次回訪問日、期間

現在設定しているのは、
A1の抽出条件:IIf([forms]![Form-抽出]![A1]=True,True,False)
A2の抽出条件:IIf([forms]![Form-抽出]![A2]=True,True,False)
担当の抽出条件:[Forms]![Form-抽出]![担当リストボックス]
訪問日の抽出条件(複数情報がある為、最近の訪問日のデータのみ対象となる様にしています。):DMax("訪問日","テーブルB","[テーブルB]![番号] ='" & [テーブルB]![番号] & "' And 訪問日 <Date()")

今の設定ですと、担当を選択しなかった場合、何も抽出されてきません。
これを、すべて表示出来る様にしたいのが希望です。
Access初心者の為、説明がわかりづらかったり情報が足りないかもしれませんが、すぐに補足致しますので、どうぞよろしくお願い致します。

A 回答 (3件)

現クエリをSQLビューで見た時、担当の抽出条件部分は



担当 = [Forms]![Form-抽出]![担当リストボックス]

となっていると思いますが、以下の様に書き換えてどうなりますか。

IIF(IsNull([Forms]![Form-抽出]![担当リストボックス]),TRUE,担当 = [Forms]![Form-抽出]![担当リストボックス])

この回答への補足

30246kiku様、早速の回答ありがとうございます。
クエリで確認をしてみましたが、「実行時エラー'2001' 直前の操作はキャンセルされました。」と表示されました。

IIF(([Forms]![Form-抽出]![担当リストボックス])=NULL,TRUE,担当 = [Forms]![Form-抽出]![担当リストボックス])

として確認してみましたが、何も抽出されてきませんでした。
よろしくお願い致します。

補足日時:2009/11/19 23:30
    • good
    • 0

#2です



> A1の抽出条件:IIf([forms]![Form-抽出]![A1]=True,True,False)

この部分をSQLビューで見ると

A1 = IIf([forms]![Form-抽出]![A1]=True,True,False)

となっていると思いますが、担当 と同様な書き方にしてみます。

IIf([forms]![Form-抽出]![A1]=True,A1=True,True)

チェックボックスが True なら、A1=True の条件とします。
False なら 無条件で True とします。

A2 も同様に書き換えてみます。
    • good
    • 0
この回答へのお礼

30246kiku様
色々とありがとうございました。

IIf([forms]![Form-抽出]![A1]=True,True,A1=True)

上記の設定をA1、A2に行ったところ、無事希望の動作を確認する事が出来ました。
初心者の私にでもわかる様に教えて頂き、大変感謝しております。
本当にありがとうございました。

お礼日時:2009/11/20 15:48

([Forms]![Form-抽出]![担当リストボックス])=NULL



の記述では判定できなかったと思います。

IsNull([Forms]![Form-抽出]![担当リストボックス])
とか
IsNull([Forms]![Form-抽出]![担当リストボックス]) = TRUE
とか
([Forms]![Form-抽出]![担当リストボックス]) Is Null
とか
になったと思います。

担当を選択して出来ていた時のクエリのSQLビューでの 担当記述の前後を含めて
提示してもらえませんか。

また、[担当リストボックス]の初期値は何になっていますか。

この回答への補足

30246kiku様
お世話になっています。詳しい説明ありがとうございました。
教えて頂いた設定を行い、色々とテストしてみた結果、下記の事がわかりました。

Form-抽出で抽出した結果です。
(1)A1のみチェックした場合→正常な結果が出ました。
(2)A2のみチェックした場合→正常な結果が出ました。
(3)A1とA2をチェックした場合→正常な結果が出ました。
(4)A1とA2にチェック、担当も設定した場合→正常な結果が出ました。
(5)A1、A2、担当に何も設定しない場合→何も抽出されません。

そこで、テーブルAを使ってA1、A2のチェックボックスだけの動作確認をしました。
(6)A1のみチェックした場合→正常な結果が出ました。
(7)A2のみチェックした場合→正常な結果が出ました。
(8)A1とA2をチェックした場合→正常な結果が出ました。
(9)A1、A2のチェックをしなかった場合→何も抽出されません。

次に、テーブルBを使って担当リストボックスだけの動作確認をしました。
(10)リストボックスから何か選択した場合→正常な結果が出ました。
(11)何も選択しない場合→すべて表示(希望の結果が出ました。)

リストボックスの方の問題だと思っていたのですが、チェックボックスの方の設定にも問題があった様です。
大変申し訳ありませんでした。

チェックボックスは下記の設定をしております。
A1の抽出条件:IIf([forms]![Form-抽出]![A1]=True,True,False)
A2の抽出条件:IIf([forms]![Form-抽出]![A2]=True,True,False)
A1、A2のチェックをしなかった場合にすべて表示される様にする方法を教えて頂ければ幸いです。
どうぞよろしくお願い致します。

補足日時:2009/11/20 14:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!