• ベストアンサー

リストボックスで複数選択した値でDBから抽出したい

よろしくお願いします。 開発環境はVisualBasic2005、SQL Server2005Expressです。 既に同様の質問があるかもしれませんが見つけ出せなかったので質問させていただきます。 リストボックスに表示されたデータを複数選択し、その値をWHERE条件としてデータベースから該当データを抽出したいのですが、複数選択となると条件の数が可変となるため、どのような方法で抽出するのが一番良いのかわかりません。 情報をお持ちの方、何卒お願いします。

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

  • ベストアンサー
  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

in (A,B,C,D) を抽出した個数で書き込めばよいのではないでしょうか?

tkymark
質問者

お礼

ありがとうございます。 出来そうな気がしてきました。

関連するQ&A

  • 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]![画面]![テキストボックス]))); ※「テーブル.区分」は、数値型 どうぞよろしくお願い致します。

  • アクセスのクエリ、リストボックスで複数選択をしたい

    フォームのリストボックスから選択してクエリで検索しています。 ▼フォーム 例) 北海道 東北 関東 ▼クエリ [Forms]![フォーム]![地域] ← 抽出条件 リストで1つしか選べないのですが、これを複数選択出来るようにするにはどのようにしたら 良いのでしょうか? 今だと北海道しか選べないので、これを北海道、東北などと複数を選べるように変更したいと思っています ?ご存知の方教えてください。

  • ASPで情報の複数(個別)選択、抽出、リスト出力の処理手順を教えて!

    ASP&Access(ADO)&IISの環境で下記の様なprgを組んでいる素人です。 分かりやすい?例えで 1.商品TABLEの一覧より欲しい物を複数(個別)選択 2.選択した商品のみを抽出したリスト表示 3.リストの印字 4.リスト印字後、選択した情報は、クリア(未選択)に戻すか、選択情報の破棄。 この1~4を処理したいと思っていますが、この商品TABLEは、複数の人が閲覧し、且つそれぞれ違う商品を選択し、リスト出力するのが前提条件です。 とりあえず、大雑把な処理手順(シンプルで簡単な処理)を教えていただければと思っております。 今、悩んでいるのは、「データの選択方法」と「選択したデータの抽出方法と情報のクリア処理」です。 なかなか質問を文章で表現するのが難しくて、わかりづらいかも知れませんが、よろしくお願いいたします。

  • VLOOKUPで抽出したデータのプルダウンリスト

    初めて質問いたします。 VLOOKUP関数の複数データの抽出方法をいくつか調べたのですが、 自分の条件に合うものが見当らなかったのでよろしくお願いします。 現在、来客対応をスムーズにするために今エクセルの表を使っています。 担当の名字を入れると、名前、内線番号、部署、役職などが表示されるように VLOOKUP関数を使っているのですが、名字に重複データがあると、 一番上のデータのみが表示されます。 複数データがある場合、そのデータをすべて表示したいのですが、 いくつか条件があります。 ・抽出元のデータはいじれない。    (役職や新人の入社などでデータが日々変わるので、他部署の作成した表を同期させてデータを抽出しています。) ・抽出したデータが複数の場合、プルダウンリストにして選択したい。    (現在時間ごとに分けた形で表を作っているので、重複データが縦に並ぶと下の表が壊れてしまう。担当が複数の場合もあるので、横にも並べられない。) ・出来ることなら、プルダウンリストで、名前、内線番号、部署、役職のどれかを選択した時点で、該当するデータをすべて表示したい。 ・少し面倒ですが、最悪重複データがあることだけでも分かれば、抽出元のデータで確認できます。

  • Excel マクロ リストボックス複数選択

    いろいろ拝見させていただいているのですが 理解が低いのが原因で困っています。 データのシートがあります。 ・B列には、起点となる人の名前が記載(300名ほど) ・データの入っている列は、A:CE データシートでB列にてオートフィルタをかけ 抽出シートに転記したい。 抽出シートでは、ユーザーフォームを組みました。 オプションボタン1 単一選択 オプションボタン2 複数選択 オプションボタン3 拡張選択 リストボックス(2・3に対して) コマンドボタン   終了 とした場合、単一選択はできたのですが 複数選択の場合 該当数が「0」の表記となってしまい、うまくいきません。 同じような質問が…というお返事があることを承知でお伺いしています。 いただいた回答を基に、勉強をしていきたいと思っていますので なにとぞよろしくお願い申し上げます。 Private Sub UserForm_Initialize() ListBox1.ColumnCount = 1 'リストボックスの列は1 ListBox1.BoundColumn = 0 'ListIndexの値(行数)を使用する ListBox1.MultiSelect = 0 '最初は単一選択状態にする ListBox1.RowSource = 'リストのソース ListBox1.ColumnHeads = True '列見出し表示 OptionButton1.Value = -1 'オプションボタン1を選択状態にする End Sub Private Sub OptionButton1_Click() ListBox1.MultiSelect = fmMultiSelectSingle '単一選択状態にする End Sub Private Sub OptionButton2_Click() ListBox1.MultiSelect = fmMultiSelectMulti '複数選択状態にする End Sub Private Sub OptionButton3_Click() ListBox1.MultiSelect = fmMultiSelectExtended '拡張(連続)選択状態にする End Sub Private Sub ListBox1_Click() 'リストボックスがクリックされたとき(単一選択) Dim 条件 As String 条件 = UserForm1.ListBox1.Text '氏名 With Worksheets("データ") .Range("A1").AutoFilter _ field:=2, Criteria1:=条件 .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("抽出").Range("A1") .Range("A1").AutoFilter End With End Sub Private Sub CommandButton1_Click() '選択終了ボタンがクリックされたとき(複数・拡張選択) Dim 条件 As String Dim lastRow As Long With ListBox1 If .ListIndex = -1 Then Exit Sub '何も選択されていない For 条件 = 0 To .ListCount - 1 If .Selected(条件) Then '行選択あり With Worksheets("データ") .Range("A1").AutoFilter _ field:=2, Criteria1:=条件 .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("抽出").Range("A1") .Range("A1").AutoFilter End With End If Next End With End Sub Private Sub UserForm_Deactivate() Unload UserForm1 '×ボタンを押したら、ユーザーフォームのunloadをする End Sub

  • 日付データの抽出方法を教えてください

    ACCESS97のVBAで開発しています。ACCESSデータベースから該当する日付データを抽出したいのですが、YYYYのみの条件でYYYY/1/1からYYYY/12/31までのデータを抽出したいのです。SQLでできるのでしょうか?もしできるのならそのやり方を教えてください。

  • ACCESSのリストボックス抽出について

    ACCESSにおいて、住所録テーブルを用意します。 フォーム上で県、市のリストボックスを作ります。 住所録テーブルには県と市のフィールドを作り、県名と市名を入力しておきます。クエリを用意し、リストボックスの県で例えば東京を指定するとそれに該当する市が抽出されて市のリストボックスから選択できるようにしたいのですがクエリ上では表示されるのですがリストボックスに反映されません。 どのようにすれば出来るのでしょうか。 (ちょうど教えて!gooで質問する際にカテゴリーの大分類から小分類を選択する時のようにです。)

  • エクセルのリストボックスから複数選択する方法

    エクセルのリストボックスを作成し、一つの項目を選択することはできるのですが、複数項目を選択することができず困っています。いくつかサイトを見て作成しましたが、うまくいきません。 エクセル2010で、「開発」→「挿入」→「Activexコントロールのリストボックス」を選び、マクロを入れたつもりですが、そのマクロが合っていないのか、何も反映されません。エクセルに慣れていないのでいろいろなサイトを見ながら真似したのですが駄目でした・・・。ご存じの方おりましたらお助けください。よろしくお願いいたします。 もし可能であれば、複数項目を選択した上で自由記述が同じセルにできるとなお助かります。

  • Accessのリストボックスを使って抽出

    抽出用のフォームを作成しているのですが、その中にリストボックスがあり、何も選択しなかった場合は、すべての項目が表示される様にしたいと思っております。自分なりに色々と調べたのですが、どうしても希望の動作になりません。どの様にすれば良いのか教えて頂けないでしょうか? Access2003を使用しております。 Form-A(メインフォーム名)←テーブルAを元に作成(項目名同じ) 番号(主キー)、氏名、性別、A1、A2・・・ A1、A2は、する・しないのどちらかを入力。 Form-B(サブフォーム名)←テーブルBを元に作成(項目名同じ) ID(主キー)、番号、担当、訪問日、次回訪問日、期間 担当は、値集合タイプ:テーブル/クエリ、値集合ソース:テーブルあ(フィールドは担当のみ)5名程の名前を登録しし、リストボックスにて選択できる様にしています。 現在、下記の様な抽出用のフォームがあります。 Form-抽出(抽出用フォーム名) A1(チェックボックス) A2(チェックボックス) 担当(リストボックス:値集合タイプ:テーブル/クエリ、値集合ソース:テーブルあを設定) [OK]ボタンを押すと抽出(クエリQにて条件を設定)する様にしています。 クエリQ(テーブルA、テーブルBを元に作成) 番号(主キー)、氏名、性別、A1、A2、ID(主キー)、番号、担当、訪問日、次回訪問日、期間 現在設定しているのは、 A1の抽出条件:IIf([forms]![Form-抽出]![A1]=True,True,False) A2の抽出条件:IIf([forms]![Form-抽出]![A2]=True,True,False) 担当の抽出条件:[Forms]![Form-抽出]![担当リストボックス] 訪問日の抽出条件(複数情報がある為、最近の訪問日のデータのみ対象となる様にしています。):DMax("訪問日","テーブルB","[テーブルB]![番号] ='" & [テーブルB]![番号] & "' And 訪問日 <Date()") 今の設定ですと、担当を選択しなかった場合、何も抽出されてきません。 これを、すべて表示出来る様にしたいのが希望です。 Access初心者の為、説明がわかりづらかったり情報が足りないかもしれませんが、すぐに補足致しますので、どうぞよろしくお願い致します。

  • リストボックスから選択された値を取得する方法

    Excel2000を使っています。フォームのリストボックスに複数のリストの値を登録し、その中の一つの値を選択すると、割り当てられたデータがセルに表示されるようにする事はできるのでしょうか。たとえば、リストの中に「東京、神奈川、埼玉」とあり、「東京」を選択すると「文京区、江戸川区」と出てくるような感じです。説明が悪くて申し訳ございませんが、よろしくお願いいたします。