最近、いつ泣きましたか?

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

A 回答 (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です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/20 00:12

SQLは関係ないのでは、どう設計するかの問題です


肝心のテーブルの情報がありませんが
どちらも1個しか選ばないのならチェックボックスはオプショングループにすればいいでしょう

得意分野オプショングループの戻り値を得意分野ID
営業地域オプショングループの戻り値を営業地域ID
となるようににしておけば、そのまま抽出条件に使えます

この回答への補足

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

補足日時:2007/01/19 00:45
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/20 00:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!