- ベストアンサー
空白を選択した場合に一行飛ばせませんか?
- 空白を選択した場合に一行飛ばせませんか?1月程考えましたがわかりませんでした。どなたか知恵をお貸しください。
- 以下のような名簿があります。正職名簿、アルバイト名簿、パート名簿の形式です。プルダウンメニューで名簿の種類、地区、通勤方法を選択すると、該当する名簿が表示されます。
- しかし、正職名簿の地区を選択しただけでは条件に合う名簿が表示されず、通勤方法も選択する必要があります。この問題を解決する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
何の言語かわかりませんがVBっぽいのでそれで説明します。 ~1つめ~ 通勤方法を空欄でいいならLIKEを使用しているので単純に"%"をつける。 ⇒ "AND 正職名簿.通勤方法 LIKE '" & form_tukin & "%' "&_ ~2つめ~ If文を使ってform_tukinが空欄の時に文字列に連結しないようにする。 strSQL= "SELECT * "& _ "FROM 正職名簿 "& _ "WHERE 正職名簿.ふりがな "& _ "LIKE '" & form_filteradd & form_filter & "%' "&_ "AND 正職名簿.地区 = '" & form_chiku & "' " If form_tukin <> vbnullstring then ⇒ strSQL = strSQL & "AND 正職名簿.通勤方法 LIKE " & form_tukin & " " end if strSQL = strSQL & "ORDER BY 正職名簿.ふりがな; " ~3つめ~ ⇒の行にOR条件でform_tukinが空欄の場合を追加する。 "AND (正職名簿.通勤方法 LIKE " & form_tukin & " OR " & form_tukin & " is null ')"&_ とりあえず簡単に3つの方法です。 なお、テストは行っていないので動作保障はしかねます。
その他の回答 (1)
- eraeara
- ベストアンサー率0% (0/1)
もう少し詳しく説明していただけませんか?
補足
入力文字数をオーバーしてしまったため、分けようと思ったら、自分の質問には回答できないのですね。しかも、削除もできませんでした。 読みにくくて申し訳ありません。私が書いたものは以下のとおりです。 Select Case form_mebo Case "正職名簿" strSQL= "SELECT * "& _ "FROM 正職名簿 "& _ "WHERE 正職名簿.ふりがな "& _ "LIKE '" & form_filteradd & form_filter & "%' "&_ "AND 正職名簿.地区 = '" & form_chiku & "' "& _ ⇒ "AND 正職名簿.通勤方法 LIKE " & form_tukin & " "&_ "ORDER BY 正職名簿.ふりがな; " Case "アルバイト名簿" strSQL= "SELECT * "&_ "FROM アルバイト名簿 "&_ "WHERE アルバイト名簿.ふりがな "&_ "LIKE '" & form_filteradd & form_filter & "%' "&_ "AND アルバイト名簿.所在 = '" & form_chiku & "' "& _ ⇒ "AND アルバイト名簿.通勤方法 LIKE " & form_tukin & " "&_ "ORDER BY アルバイト名簿.ふりがな; " Case "パート名簿" strSQL= "SELECT * "& _ "FROM パート名簿 "& _ "WHERE パート名簿.ふりがな "&_ "LIKE '" & form_filteradd & form_filter & "%' "&_ "AND パート名簿.所在 = '" & form_chiku & "' "& _ ⇒ "AND パート名簿.通勤方法 LIKE " & form_tukin & " "&_ "ORDER BY パート名簿.ふりがな; " Case Else strSQL= "SELECT * "&_ "FROM 正職名簿 "&_ "WHERE 正職名簿.ふりがな "&_ "LIKE '" & form_filteradd & form_filter & "%' "&_ "ORDER BY 正職名簿.ふりがな; " End Select <名簿種類><地区><通勤方法>の3つとも選ぶと検索はできるのですが、<名簿種類><地区>だけでは上手くいきません。 <通勤方法>の<OPTION VALUE>に空欄を設け、空欄の場合は⇒の列を飛ばすような方法はありませんでしょうか? どなたかご教授くださいませ。
お礼
アドバイスありがとうございました。 2つ目のような感じでなんとか求めていた結果が得られるようにできました。 早くにご回答いただきながら、お礼が遅くなりまして申し訳ありませんでした。