• ベストアンサー

Accessで、yes/no型

 業者抽出クエリの中に、得意分野をチェックボックスで6個、営業地域をチェックボックスで10個作っています。  それに対応する業者抽出フォームのフォームヘッダーに、得意分野をチェックボックスで6個、営業地域をチェックボックスで10個、抽出用コマンドボタン1個を配置しています。  得意分野を1個&営業地域を1個選択して、そのふたつの条件を満たす抽出用コマンドボタンのSQL文はどのように書けばよいのでしょうか?

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

チェックボックス名が ck分野1 ~ 6、ck地域1 ~ 10 とすると。 Private Sub コマンド0_Click()  Dim flt As String  flt = ""  If Nz(Me.ck分野1, False) Then   If flt <> "" Then flt = flt & " and "   flt = flt & "[分野1] = True"  End If  If Nz(Me.ck分野2, False) Then   If flt <> "" Then flt = flt & " and "   flt = flt & "[分野2] = True"  End If '同様に分野6まで  If Nz(Me.ck地域1, False) Then   If flt <> "" Then flt = flt & " and "   flt = flt & "[地域1] = True"  End If  If Nz(Me.ck地域2, False) Then   If flt <> "" Then flt = flt & " and "   flt = flt & "[地域2] = True"  End If '同様に地域10まで  If flt <> "" Then   Me.Filter = flt   Me.FilterOn = True   'SQL = SQL & "WHERE " & flt  Else   Me.FilterOn = False  End If   End Sub ベタに書くならこうなると思います。 form のfilter を使って選択しています。 SQL文にしたいのなら、 SQL = SQL & "WHERE " & flt こんな感じで、SQL文にWHERE句を追加してください。 得意分野&営業地域を2個以上選択してもOKです。

NYAN-ta
質問者

お礼

これですこれです!!! ありがとうございました!!! 思い描いていたイメージ通りのものが出来上がりました。 大変勉強になりました。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

SQLは関係ないのでは、どう設計するかの問題です 肝心のテーブルの情報がありませんが どちらも1個しか選ばないのならチェックボックスはオプショングループにすればいいでしょう 得意分野オプショングループの戻り値を得意分野ID 営業地域オプショングループの戻り値を営業地域ID となるようににしておけば、そのまま抽出条件に使えます

NYAN-ta
質問者

お礼

質問の仕方を間違えました。 すみませんでした。 ありがとうございました。

NYAN-ta
質問者

補足

 回答ありがとうございます。  質問の仕方がまずかったようです。  業者一覧テーブルの一部のデータを表示するために、業者抽出クエリを作りました。得意分野6個はYes/No型、営業地域10個もYes/No型でテーブルを作っています。  業者抽出フォームで得意分野を1個&営業地域を1個選択して、そのふたつの条件を満たすデータを帳票形式で表示させたいと思っています。 得意分野及び営業地域1個選択と書きましたが、二つ以上の選択もありえますので、オプショングループは使わず作りたいと思います。  業者抽出クエリ全体を表示させる業者抽出フォームは、あいうえお検索ができるコマンドボタンをフォームヘッダーにつけています。 同じように抽出用コマンドボタンを押すことによって、得意分野&営業地域を選択して、それらの条件を満たす抽出用コマンドボタンのSQL文---これが間違っていたのでしょうか?---イベントプロシージャはどのように書けばよいのでしょうか?

関連するQ&A