こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessで、yes/no型

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

投稿日時 - 2007-01-18 21:16:06

QNo.2676866

すぐに回答ほしいです

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

チェックボックス名が 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です。

投稿日時 - 2007-01-19 12:31:45

お礼

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

投稿日時 - 2007-01-20 00:12:11

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

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

投稿日時 - 2007-01-19 00:30:30

補足

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

投稿日時 - 2007-01-19 00:45:43

お礼

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

投稿日時 - 2007-01-20 00:13:46

あなたにオススメの質問