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

解決済みの質問

Access リストボックス複数選択を抽出条件に

Access リストボックスで複数選択した値をクエリの抽出条件にしたいです。

※PC環境:Win7 Access2007 Excel2007

リストボックスで複数選択した値を取得する事はできるのですが、
クエリ実行をすると結果が0件になってしまいます。

他の方のQAなどを参考に以下を作成しましたが、ほしい結果が得られず困っています。
おわかりになる方、ご教示いただけますようお願い致します。

<動作概要>
「画面」の「リストボックス」で複数選択し、
[実行]ボタンを押して、「リストボックス」で選択した値を、「テキストボックス」にセットし、
クエリの抽出条件に、in(テキストボックス)をセットし、テーブルから合致するデータを抽出したい

<リストボックス> ※年区分テーブル参照
区分,区分名
1,1年
2,2~3年
3,4~5年

「2,2~3年」「3,4~5年」を選択
※「区分」は数値型

<VBA>
Private Sub 実行_Click()

 Dim i As Variant

 Me.テキストボックス = Null

 For Each i In Me.リストボックス.ItemsSelected

Me.テキストボックス = Me.テキストボックス & Me.リストボックス.Column(0, i) & ","

Next

If Me.テキストボックス <> "" Then

 Me.テキストボックス = Left(Me.テキストボックス, Len(Me.テキストボックス) - 1)

End If

  'ここで画面を確認すると「テキストボックス」には、「2,3」 がセットされている

DoCmd.OpenQuery "クエリ"

  'テーブルには抽出条件に該当するデータがあるが、クエリ実行結果は0件

End Sub


<クエリ SQL>
SELECT テーブル
FROM テーブル
WHERE (((テーブル.区分) in([Forms]![画面]![テキストボックス])));

※「テーブル.区分」は、数値型


どうぞよろしくお願い致します。

投稿日時 - 2014-04-15 16:27:56

QNo.8555563

すぐに回答ほしいです

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

デザインビューなら下記のようにしてください。

フィールド:"," & [Forms]![画面]![テキストボックス] & ","
テーブル:
表示: チェックしない
抽出条件:Like "*," & [区分] & ",*"

投稿日時 - 2014-04-16 10:18:31

お礼

できました!
とても丁寧に教えて下さりどうもありがとうございました!!

インターネットで色々調べた際、どれも難しく書かれていましたが、
教えていただいたものですと暗記できる位、とてもすっきりしたもので感動です。
どうもありがとうございました!

投稿日時 - 2014-04-16 11:48:38

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

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

回答(2)

ANo.1

「テキストボックス」には、「2,3」 がセット
WHERE (((テーブル.区分) in([Forms]![画面]![テキストボックス])));

だと、区分が 2 または 3 のレコードを抽出とはなりません。
区分が "2,3"のレコードを抽出という意味になります。当然該当するレコードはないです。

WHERE句を下記のようにしてください。

WHERE テーブル "," & [Forms]![画面]![テキストボックス] & "," Like "*," & 区分 & ",*"


ただ、レコード件数が多いと、重くなります。
その場合は、テーブルをレコードソースするフォームを作成して、下記のようにするといいでしょう。

DoCmd.OpenForm "フォーム名", acFormDS, , "区分 In (" & [Forms]![画面]![テキストボックス] & ")"

区分フィールドにインデックスを設定しておくと高速に抽出できます。

投稿日時 - 2014-04-15 22:54:10

補足

ご回答を入れていただきどうもありがとうございました!

早速、WHERE句を、SQLビューにて、置き換えをしてみたのですが、構文エラー、演算子がありません。となってしまいました。
(実行、デザインビュー切り替え時共に)

お手数ですが、
デザインビューで入れる場合を教えていただきたいです。
以下で合っていますでょうか?

フィールド:区分
テーブル:テーブル
抽出条件:"," & [Forms]![画面]![テキストボックス] & "," Like "*," & 区分 & ",*"

よろしくお願い致します。

投稿日時 - 2014-04-16 00:23:36

あなたにオススメの質問