ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:P3mania オプションボタンで検索させたい
困り度:
  • すぐに回答を!
お世話になります

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,"京都市","奈良市","桂市"))
指定した式に含まれる関数で、引数の数が一致しません。

わかる方ご教授願います
質問投稿日時:08/07/02 18:52
質問番号:4146321
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

 

回答者:mcsp  こんばんは。
解決できたのかどうかが気になるところですが、No.1様のようなテーブルを分割(正規化ともいいます)
する考え方はもっともな方法です。質問者様と同じようなデータを持った(と想像する)検索を構築する場合、
私も将来のデータ増加を考慮して正規化(都道府県テーブルと市町村テーブルに分けて考える)します。
こうするとIIf関数を用いずに素直なクエリが作成できるでしょう。

 私自身も勉強中の身であります。お力添えになれなかった事も私の至らぬ限りで残念ですが、この
マルチポストのような行動は正直衝撃的でありました。No.1様の回答内にあるように大阪、京都、奈良の
都道府県に存在する市の名前を列記されておりますが、細かいところですけれどもきちんと具体例を
あげておられる心遣いは感じて貰えれるようになっていただきたいものと思います。

感じを悪くされたらごめんなさい。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/04 23:26
回答番号:No.2
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:Masa2072 放置されるには放置されるだけの理由があるわけで(リンク先の前回の質問もですが)あまりにも漠然としており、また現状与えられている情報がすくなすぎる為回答の付けようが無いのだと思います。

IIF関数の使い方と、クエリの条件式の書き方をまずは調べましょう
Likeの後ろにどう書けば、どんなデータがヒットするかを分からなければ式はかけません。

条件式の中に市町村名を羅列するやり方では、現状では良くても今後検索対象の市町村名が増えた際に、その都度条件式を変更していくことになります。

県別市町村一覧表
市町村名|都道府県ID  
大阪市 |1
和泉市 |1
京都市 |2
宇治市 |2
奈良市 |3
生駒市 |3
といったテーブルを作って市町村名で結合するなどして
ID|市  |配送者|
1 |大阪市|太郎 |

ID|市  |配送者|都道府県ID
1 |大阪市|太郎 |1
などの状態にします。
後はクエリの条件で
都道府県ID = [Forms]![F_検索]![市町村名]
でいけるはずです。

回答を小手先で変更するだけでなく、新たに得たLIKEやIIFなどの手がかりを自分で調べてみることもお忘れ無く。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/02 23:29
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示