- ベストアンサー
accessで空白の時の抽出
access2000を使っています。まだ初心者なので難しい事はできないのですが、クエリを使って絞り込み検索のフォームを作っています。 テーブル内のデータで空白のデータがあります。その際にクエリの抽出条件にlike iif(is null([forms]![formA]![テキスト100]),"*","*"&[forms]![formA]![テキスト100]&"*")としています。フォームのテキストが空白のときは全て抽出するという条件を満たす予定で設定したのですが、テーブル内のデータが空白の物が抽出できません。データが空白がない様にすればいいのでしょうが、クエリの条件で設定できないものでしょうか?データはテキスト型です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
クエリで、like "*"では、空白のレコードの抽出は出来ないのでは? like "*" Or Is Nullになると思いますが、これをこのまま指定の抽出条件に記述したら、条件が・・・のエラーメッセージが出ると思います。そこで、何もかもを一度にするので無く、多少分解してやります。 抽出条件というフィールドを作成し、InStr関数を使用して、テキストの中に、指定した文字が含まれているかを調べます。この関数は、文字が見つかった時は、最初に見つかった文字位置を返してくるので、抽出条件は、<>0と指定します。 フォームに抽出条件が設定されていない時は、全件抽出したいという事ですので、テキストボックスが空白の時に、0以外をこのフィールドにセットすればOKでは? フィールドに 抽出条件:IIf(IsNull([Forms]![formA]![テキスト100]),1,InStr([FAX番号],[Forms]![formA]![テキスト100])) 抽出条件に <>0 こんな感じでどうでしょ?
その他の回答 (3)
- miya_777
- ベストアンサー率31% (44/140)
単純に条件を2つに分けることをお勧めします。 ●抽出条件のテキストボックスイメージ ※空白がある項目の下にある抽出条件 1段目 is null([forms]![formA]![テキスト100]) AND like [forms]![formA]![テキスト100] & "*" 2段目 is not null [forms]![formA]![テキスト100]
- TMINET
- ベストアンサー率32% (45/140)
>is null([forms]![formA]![テキスト100]) この部分は IsNull([forms]![formA]![テキスト100]) = True ではないでしょうか。
- sydneyh
- ベストアンサー率34% (664/1947)
空白の全抽出をするだけなら、該当フィールドの抽出条件に、ただの「Is Null」を入力するだけじゃいけないんでしょうか。
お礼
すみません、説明が悪かったようです。 テキストが空白の時は、テーブルのデータの空白も含めて全てとしたいのです。
お礼
すみません。これはiifを使わずにこの条件を入れるだけでいいのですか? 構文が正しくないとなってしまいます。かっこ付けても同じでした。