• ベストアンサー

Access2000 抽出について

どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

Accの場合、"*"って、何でしょう? A.すべての入力を検索する。 上の答えから想像して、「空白=入力あり」ではないのです。 だから、IsNull関数を使ったりしてる訳ですね。 ここまで、書けば「*」を何かに変えれば済む質問ではない事までは、理解できたでしょうか? さて、回答と行きたいのですが、「出来ません。どうすればいい?」では、どういう結果が欲しかったのか判らないのですが、予測で・・・。 [Forms]![F_顧客検索]![カナ検索]が空白の時、すべてを抽出する事とすると、 フィールド: フリガナ 抽出条件 : [Forms]![F_顧客検索]![カナ検索] & "*" と フィールド: [Forms]![F_顧客検索]![カナ検索] 抽出条件 : 上記の抽出条件のところと違う行に        True と、2つの列に変えてみましょう。 あくまでも、参考例ですけどね。

cooltake2
質問者

お礼

とても参考になりました。 空白でも抽出できるようにできました。 親切にありがとうございます。

その他の回答 (3)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.4

#3さん? 選択クエリの抽出条件に >IIf(IsNull([Forms]![F_顧客検索]![カナ検索]), _ > "Is Null", _ > "Like " & [Forms]![F_顧客検索]![カナ検索] _ > & "*") では、"Is Null"とか "Like "と言う文字を「フリガナ」の中に探しに行きませんか? 一列で固執するなら フィールドに IIf(IsNull([Forms]![F_顧客検索]![カナ検索]), True, [フリガナ] Like [Forms]![F_顧客検索]![カナ検索] & "*") 抽出条件に True の方がいいかな? これも例ね^^;他にも手段はあるでしょうけど・・・

  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.3

空白というのは長さ0の文字列でしょうか? 文字列が入っていない通常の文字列はnullです。そのレコードはlikeの前方検索では引っかかりません。 null文字のレコードを抽出する場合はis nullですので IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"Is Null","Like " & [Forms]![F_顧客検索]![カナ検索] & "*") で画面入力項目がNullの場合は"Is Null"でそうでない場合はLike検索でと分ければいいと思います。

cooltake2
質問者

お礼

回答ありがとうございます。 空白というのはnullということです。 教えていただいた理屈は理解できました。 しかし、抽出できなかったのでいろいろと考えてみます。 ありがとうございました。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

#1です。 記載ミスです>< >フィールド: [Forms]![F_顧客検索]![カナ検索] >抽出条件 : 上記の抽出条件のところと違う行に >        True の部分ですが フィールド: [Forms]![F_顧客検索]![カナ検索] 抽出条件 : 上記の抽出条件のところと違う行に        Is Null ですね。