• ベストアンサー
  • 困ってます

Access2000 抽出について

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

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数183
  • ありがとう数2

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • ACCESS2000で検索値空白時の抽出

    ACCESS2000で質問です。 顧客データベースがあります。 シリアルと登録名で検索をかけて、どちらかでヒット、又は両方ANDでヒットしたものをクエリで抽出したいです。以下の条件式はクエリの抽出条件の同じ行に入れています。データベースのうち、シリアルと登録名が両方入力されているものは問題なくヒットするのですが、どちらかが空欄のものがヒットしません。どちらかが空欄のものもヒットさせ、フォーム[検索]で何も入力しないでクエリを開いた時は全レコードを表示するようにしたいのですが、どのような式を書けばよいのでしょうか。宜しくお願いいたします。 Like "*" & [Forms]![検索].[登録者] & "*" Like "*" & [Forms]![検索].[シリアル] & "*"

  • ACCESS2000の複数検索条件からのデータ抽出

    こんにちわ。前回質問内容自体どう説明してよいかわからず、途中で終わってしまったので、再度、詳しく質問してみました。 今、Accessで受注管理を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:受注管理 フィールド名:受注ID・日付・商品種別・顧客名・仕入種別・状況種別 ■クエリ クエリ名:受注クエリ(フィルタ) フィールド名:受注ID(表示チェックあり)・日付・商品種別・顧客名・仕入種別・状況種別 と式1[Forms]![検索フォーム名]![日付text]・式2[Forms]![検索フォーム名]![商品種別combo]・式3[Forms]![検索フォーム名]![顧客名text]・式4[Forms]![検索フォーム名]![仕入種別list]・式5 [Forms]![検索フォーム名]![状況種別combo]の計11列です。 抽出条件:検索名フィールド: 受注IDを除く各フィールド名の下に Like "*" & [Forms]![検索フォーム]![日付text] & "*" Like [Forms]![ 検索フォーム名]![商品種別combo] Like "*" & [Forms]![ 検索フォーム名]![顧客名text] & "*" Like [Forms]![ 検索フォーム名]![仕入種別list] Like [Forms]![ 検索フォーム名]![状況種別combo] 各式の下に Like "" Like "(なし)"      Like "" Like "(なし)" Like "(なし)" を検索パターンに応じて入力しました。 マクロにより、フィルタの実行をしていますが、この方法だと4つまでなら、検索可能なのですが、5つ以上になると、「フィルタが長すぎます」というダイアログボックスがでて検索ができません。VBAやSQLはいまいちわからないので、何か簡単に、5つ以上の検索条件で検索できないでしょうか。お願いします。

  • Access2000 null処理

    Accessのデータベースで商品管理のシステムを作っています。 フォーム上で検索条件を入力し、商品管理のテーブルから商品データを検索するというフォーム、クエリを作ります。 商品管理テーブルの中に 「売上日」という項目があります。 検索項目の1つに売上日があるのですが、以下の状況下でレコードを抽出します。 (1)フォーム上には [売上日S]と[売上日F]があり、[売上日S]以上[売上日F]以下でレコードを抽出。 (2)[売上日S]と[売上日F]がともにnullの場合は全件を表示。 (3)テーブルでは、売上日がnullのことがある。nullは最小値とする。 例えば、フォーム上で [売上日S]がnull [売上日F]が07/01/01ならば、 07/01/01、またはそれ以前に売り上げた商品と、売上日がnullのレコードを抽出。(つまり、 <= 07/01/01 or null になる) よく >= iif(IsNull([forms]![form名]![売上日S]),#1950/01/01#,[forms]![form名]![売上日S]) And <= iif(IsNull([forms]![form名]![売上日F]),#2050/12/31#,[forms]![form名]![売上日F]) を抽出条件にしてnull対応するのですが、これでは、売上日Sがnullのときにnullが含まれず、nullが最小値になりません。 なので クエリ上でもう1つ項目を作り iif(IsNull([売上日]),#1950/01/01#,[売上日]) とし、 この項目を上の抽出条件で抽出するようにしました。 これでうまくいくと思ったのですが、だめでした。 [売上日S]と[売上日F]がともにnullのときはすべて項目が表示されます。 しかし、[売上日S]=null,[売上日F]=07/01/01 のような場合、売上日がnullのものが表示されません。 直接、抽出条件に  >= #1950/01/01# And <= #07/01/01# と打てば、ちゃんと動くし、 売上日S = 07/01/01 売上日F = 07/01/10 のようなときは、ちゃんと抽出されます。 売上日S がnull、売上日Fが非ヌルのときにもちゃんと抽出されるようにするにはどうすればよいのでしょうか? ところで、この不具合は私の記述ミスではないと思うのですがコレはAccess2000の不備でしょうか? どなたかアドバイスをお願いします。

その他の回答 (3)

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

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

共感・感謝の気持ちを伝えよう!

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • Access2000で複数の検索項目を作りたいのですが・・・

    こんにちわ。 今、Accessで社員録を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:社員録 フィールド名:ID・検索名・氏名・所属ID・所属 ■クエリ クエリ名:社員録クエリ フィールド名:ID・検索名・氏名・所属ID・所属 検索名抽出条件:検索名フィールド: Like [Forms]![社員録 縦]![けんさく]         所属フィールド: Like [Forms]![社員録 縦]![抽出検索名] ■フォーム フォーム名:社員録フォーム:テキスト1・テキスト2・ボタン1       社員録サブフォーム:データソース:社員録クエリ テキスト1:所属を入力 テキスト2:検索名を入力 ボタン1:マクロの再クエリを実行する ■ここからが質問です■ (1)テキスト1又は、2が空白のとき社員録全体から検索かフィルタ。 (2)テキスト1・2が、入力されてる時、両条件から検索かフィルタ。 をしたいのですが、何かいい方法がありましたら教えて下さい。 説明が、長くなってしまってスミマセン。。。

  • Access2000 でのLikeを使用したフィルタ操作

    こんばんは、答えていただけたらありがたいです。。。 今、Access2000で従業員DBを作成しています。 会社の従業員人数が200人ほどいるので、管理できるソフトを作っています。 検索フォームを作成し、姓などをあいまい検索したいと思い、クエリで作ってみましたが、うまくいきません。 姓の抽出条件に Like ("*" & Nz([Forms]![検索君]![TXT3],"*")) と書きましたが、全員出てしまいます。 また、 式1: IIf(IsNull([Forms]![検索君]![TXT3]),True,[Forms]![検索君]![TXT3]) こういう式も書いてみましたが、-1かエラーが出る結果になりました。。。 以上です。よろしくお願いします。

  • ACCESS2000でクエリで抽出したレコードをフォームに表示するには

    A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

  • アクセスクエリでの空白の値の表示

    フォームで条件フィールドから2つ同時の検索をかけたく クエリに以下の式を記載致しました。 検索はかかるのですが空白のデータがでてきません。 空白のデーターも表示させたいためにはどうしたらいいでしょうか? 式1: IIf(IsNull([Forms]![フォーム]![条件1]) And IsNull([Forms]![フォーム]![条件2]),True,[条件]=[Forms]![フォーム]![条件1]Or [条件]=[Forms]![フォーム]![条件2] 抽出条件  True

  • ACCESSでクエリーを使った検索

    VBAを使えば簡単にできるのですが、事情があり、クエリーのみで行わなければいけません。 フォームに入力された情報を元に検索できるクエリを作成しました。 通常でしたらクエリのフィールド名の下の抽出条件に Forms![F_検索]![検索条件1] とすればいいのですが、これが複数の条件を設定した場合はすべての条件を入力しないと、検索結果が出ないことから 以下のように変更しました。 フィールド名の抽出条件には何も書かず、別に式として IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=[Forms!]![F_検索]![検索条件1])) と入力しそこの抽出条件に「True」と入力しました。 これで何も入力されてない場合は全件が表示されるようになりました。 通常の検索はこれでいいのですが疑問点が2点あります。 1.期間を抽出する場合はどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Between [Forms!]![F_検索]![検索条件1] and [Forms!]![F_検索]![検索条件2])) とかしてみましたがダメでした。 2.あいまい検索をするにはどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Like [Forms!]![F_検索]![検索条件1])) なんてしてみましたがだめでした。 ご回答よろしくお願いします。

  • ACCESS2000のクエリでワイルドカード検索したい

    ACCESS2000のクエリでフォームで入力した内容でワイルドカード検索しようと抽出条件に Like "|Forms![フォーム名]![フィールド名]|*"と指定しましたが、上手くいきません。 ACCESS2.0では、これで上手くいったのですがACCESS2000 では指定の仕方が違うのでしょうか? どなたか教えて下さい。

  • accessで空白の時の抽出

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

  • Microsoft Access2000で抽出?

    Microsoft Access2000でお客様の来店日を記入帳を作っているのですが、お客様のカルテ番号と名前を別クエリ(住所録 来店日記入クエリ)から 名前を抽出?検索?どちらになしたら良いか解らないのですが、来店日記入フォーム(顧客来店日テーブル/レコードソース) の名前のテキストボックスに記入したいのですがどの様にしたら良いでしょうか? 来店日記入フォーム(顧客来店日テーブル/レコードソース)のカルテ番号(テキストボックス)に記入したカルテ番号で 住所録 来店日記入クエリ(カルテ番号・名前)から名前を抽出して 来店日記入フォームの名前(テキストボックス)に記入したいんです 申し訳ございませんがよろしくお願いします