• ベストアンサー

accessで空白の時の抽出

access2000を使っています。まだ初心者なので難しい事はできないのですが、クエリを使って絞り込み検索のフォームを作っています。 テーブル内のデータで空白のデータがあります。その際にクエリの抽出条件にlike iif(is null([forms]![formA]![テキスト100]),"*","*"&[forms]![formA]![テキスト100]&"*")としています。フォームのテキストが空白のときは全て抽出するという条件を満たす予定で設定したのですが、テーブル内のデータが空白の物が抽出できません。データが空白がない様にすればいいのでしょうが、クエリの条件で設定できないものでしょうか?データはテキスト型です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Nii
  • ベストアンサー率48% (79/162)
回答No.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)
回答No.3

単純に条件を2つに分けることをお勧めします。 ●抽出条件のテキストボックスイメージ ※空白がある項目の下にある抽出条件 1段目 is null([forms]![formA]![テキスト100]) AND like [forms]![formA]![テキスト100] & "*" 2段目 is not null [forms]![formA]![テキスト100]

desk34
質問者

お礼

すみません。これはiifを使わずにこの条件を入れるだけでいいのですか? 構文が正しくないとなってしまいます。かっこ付けても同じでした。

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.2

>is null([forms]![formA]![テキスト100]) この部分は IsNull([forms]![formA]![テキスト100]) = True ではないでしょうか。

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.1

空白の全抽出をするだけなら、該当フィールドの抽出条件に、ただの「Is Null」を入力するだけじゃいけないんでしょうか。

desk34
質問者

お礼

すみません、説明が悪かったようです。 テキストが空白の時は、テーブルのデータの空白も含めて全てとしたいのです。

関連するQ&A