• 締切済み

オプションボタンで検索させたい

お世話になります Like IIf([Forms]![F_検索]![市町村名]=1,"大阪市*",IIf([Forms]![F_検索]![市町村名]=2,"京都市*","奈良市*")) ■問題1 [市町村名]=1 大阪府のオプションボタンチェックで実行させると 市町村名、大阪市はヒットするようになりました。 大阪府の市町村名をふやせれないです。 Like IIf([Forms]![F_検索]![市町村名]=1,"大阪市","岸和田市",IIf([Forms]![F_検索]![市町村名]=2,"京都市","奈良市")) 一つでも増やすとエラーが出ます 指定した式に含まれる関数で、引数の数が一致しません。 ■問題2 [市町村名]=1 京都府をチェックすると今の状態なら京都市と奈良市がヒットするはずですが京都市のみの絞込みとなります。 京都の市町村名を増やせないです Like IIf([Forms]![F_検索]![市町村名]=1,"大阪市",IIf([Forms]![F_検索]![市町村名]=2,"京都市","奈良市","桂市")) 指定した式に含まれる関数で、引数の数が一致しません。 わかる方ご教授願います

みんなの回答

  • mcsp
  • ベストアンサー率46% (6/13)
回答No.2

 こんばんは。 解決できたのかどうかが気になるところですが、No.1様のようなテーブルを分割(正規化ともいいます) する考え方はもっともな方法です。質問者様と同じようなデータを持った(と想像する)検索を構築する場合、 私も将来のデータ増加を考慮して正規化(都道府県テーブルと市町村テーブルに分けて考える)します。 こうするとIIf関数を用いずに素直なクエリが作成できるでしょう。  私自身も勉強中の身であります。お力添えになれなかった事も私の至らぬ限りで残念ですが、この マルチポストのような行動は正直衝撃的でありました。No.1様の回答内にあるように大阪、京都、奈良の 都道府県に存在する市の名前を列記されておりますが、細かいところですけれどもきちんと具体例を あげておられる心遣いは感じて貰えれるようになっていただきたいものと思います。 感じを悪くされたらごめんなさい。

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

放置されるには放置されるだけの理由があるわけで(リンク先の前回の質問もですが)あまりにも漠然としており、また現状与えられている情報がすくなすぎる為回答の付けようが無いのだと思います。 IIF関数の使い方と、クエリの条件式の書き方をまずは調べましょう Likeの後ろにどう書けば、どんなデータがヒットするかを分からなければ式はかけません。 条件式の中に市町村名を羅列するやり方では、現状では良くても今後検索対象の市町村名が増えた際に、その都度条件式を変更していくことになります。 県別市町村一覧表 市町村名|都道府県ID   大阪市 |1 和泉市 |1 京都市 |2 宇治市 |2 奈良市 |3 生駒市 |3 といったテーブルを作って市町村名で結合するなどして ID|市  |配送者| 1 |大阪市|太郎 | を ID|市  |配送者|都道府県ID 1 |大阪市|太郎 |1 などの状態にします。 後はクエリの条件で 都道府県ID = [Forms]![F_検索]![市町村名] でいけるはずです。 回答を小手先で変更するだけでなく、新たに得たLIKEやIIFなどの手がかりを自分で調べてみることもお忘れ無く。

関連するQ&A

  • ACCESSのオプションボタンで検索させたい

    お世話になります 例:下記にオプションボタンがあるとします フォーム ○大阪 ○京都 ○奈良 実行ボタン テーブル ID|市  |配送者| 1 |大阪市|太郎 | eto・・・・・・ 大阪にチェックを入れ実行ボタンを入力すると大阪府にある市町村を検出させたいのですがわかる方よろしくお願いします。 又、あくまで例ですので検索対象値はそんなに多くはないです

  • <access あいまい検索のクエリ作成について>

    <access あいまい検索のクエリ作成について> access初心者です。。 今,住所録から地名を入れて検索するクエリを作成しています。 式を作成しましたが,先頭に該当するものしかヒットしません。  例:大阪府で絞り込みをした場合,大阪市等,大阪が先頭にくる住所しかヒットせず,    泉佐野市等は出てこない。 検索値が前後に含まれるようにするには数式をどのように変えればいいのでしょうか。 お願いします!! ■入れた数式■ (1)フィールド IIf(IsNull([forms]![frm住所検索]![住所]),True,[住所] Like [forms]![frm住所検索]![住所] & "*") (2)テーブル・並び替え・表示=空欄 (3)抽出条件=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 抽出について

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

  • <access クエリのあいまい検索>

    <access クエリのあいまい検索> こんにちわ。以前,クエリについて質問した者です。(前回質問番号:6003331) 引き続き,質問です。 前回はクエリでのあいまい検索の式についての質問でした。 今回は同じクエリで追加として別のフィールドでも同時にあいまい検索を行いたいと思っています。 名前,住所,連絡先等がある住所録があります。 クエリを使って,任意の文字検索をするように設定しています。 前回ここで教えて頂き,「京都」と入れたら,「京都市」も「京都群」もヒットするようになりました。 今回は同時に他のフィールドの検索値が入っていたら,それも一緒に表示させるようにしたいのです。 具体的には下記のとおりです。 1)住所のフィールドに「京都」が含まれている人,かつ,「田中」という文字を含む人を検索 2)単に「田中」という文字を含む人を検索 現在の入力値は下記のとおりです。 ご指導お願いします。 ■今,入力されていること フィールド:IIf(IsNull([forms]![frm条件検索]![住所名]),True,[住所名] Like "*" & [forms]![frm条件検索]![住所名] & "*") テーブル・並び替え=空欄 表示:チェックが入っています。 抽出条件:true

  • クエリの抽出条件でiif関数

    こんにちわ。 いまaccess2000でクエリを作成し, その抽出条件において,iif関数を使って, フォームのあるフィールドに値があるときはその値, ないときはワイルドカードで検索しようと思い, 下記のコーディングを入れました。 iif([Forms]![F_フォーム1].[テキスト1] Is Null, "*", [Forms]![F_フォーム1].[テキスト1]) ところがワイルドカードの"*"がうまく効いてくれないようで 正しく検索されません。 どうすれば正しく検索できるでしょうか? 教えてください。お願いします。

  • Access97のIIf関数について

    Access97のプログラミングで IIf関数について質問です。 sWK=IIf(a=1,IIf(b=1,か,き),い) のようにIIf関数の引数にさらに IIf関数を指定して使うことはできるのでしょうか?

  • オプションボタンの条件分岐で全件表示ができない

    「fo物件登録一覧検索指定」フォーム内に、非対象/対象を区分するオプションフレームを設置、フレーム内に”対象”、”非対象”、”両方”のオプションボタンを設けています。「Qu物件登録一覧検索」クリエー内の非対象/対象フィールドには、以下の抽出条件を記入しました。結果、オプションボタンで”非対象”、”対象”を選択した時には正常に絞込みが行え、”両方”を選択した場合のみ、なにもリストが表示されない状況で、2日間ぐらい試行錯誤を繰り返し、IIF関数等いろいろ試していますが未だ堂々巡りです。 クエリの抽出条件は以下通りです。 フィールド名:対象非対象 抽出条件(1):Switch([Forms]![fo物件検索指定]![オプションフレーム]=1,"対象",[Forms]![fo物件検索指定]![オプションフレーム]=2,"非対象") OR抽出条件(2):Nz([Forms]![fo物件検索指定]![オプションフレーム]=3,True) ”対象”のオプション値=1 ”非対象”のオプション値=2 ”両方”のオプション値=3 どうぞACCESS難民にどうかご教示をお願いします。

  • アクセス2003の検索クエリーについて

    今、アクセス2003で色々勉強しています。 氏名とか住所はクエリーの曖昧検索で式を書いて動いたのですが。 期間・・何年何月何日~何年何月何日で検索する式がわかりません。 どのような式を書けばいいのでしょうか? ちなみに曖昧検索はIIf(IsNull([Forms]![検索画面]![住所]),True,[住所] Like "*" & [Forms]![検索画面]![住所] & "*")と書いて動きました。 うまく表現が出来ないので、わからないかもしれませんがよろしくお願いします。

  • 検索条件について。

    あるフォームで選択・入力された値から抽出を行うようなクエリを作成しました。 空欄でもきちんと抽出されるようにと、下記のようなものを記入しました。 IIf(IsNull([Forms]![検索結果]![rank]),True,[ランク] Like [Forms]![検索結果]![rank]) ですが、実行を行う(空欄で実行)と、「式が複雑すぎです」とエラーがでてしまいます。 実際の値を入力すると、何も抽出されません。 どこが違うのでしょうか? よろしくお願いします。

専門家に質問してみよう