ここから本文です

ACCESS2010のクエリにて、フォームに作ったテキストボックスの値(数字3桁)を抽出...

kou********さん

2012/9/1810:30:09

ACCESS2010のクエリにて、フォームに作ったテキストボックスの値(数字3桁)を抽出条件にしたいと考えています。

ただ、そのテキストボックスの数が30個と多い為、当然ながらクエリの抽出条件欄にorで条件式を入力してもエラーがでてしまいました。VBAで抽出条件の設定を行いたいと思っているのですが、初心者の為まったく勝手が分かりません。

お手数ですが、VBAでの対応方法もしくはVBA以外の別の方法があればどうか教えていただけないでしょうか。

尚、テキストボックスには商品コード(3桁)を入力し、それを条件として日々の売上データから任意の商品コードをクエリから
抽出したいと考えています。


以上

補足元々はチェックボックスで任意の商品を選択してそれをクエリの抽出条件としたかったのです。

ただ、VBAでなければ対応出来そうになく、そこでまた別にテキストボックスを作成し、チェックボックスの『更新後処理』イベントにてチェックをつけた商品に対応するテキストボックスに商品コードが入力されるイベントプロシージャを設定しました。

ここまではよかったのですが、結局このテキストボックスの値をクエリで抽出するにはVBAが必要とわかり(対象のテキストボックスが30個のため)、皆様のお知恵をお借りしたいと考えた次第です。

閲覧数:
1,459
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hat********さん

編集あり2012/9/1900:13:34

抽出条件を格納するテーブルを作成するのが、効率がいいと思います。


テーブル T_商品抽出
フィールド 商品コード

このテーブルに抽出したい商品コードを必要な件数入力します。

クエリを作成して、売り上げデータテーブル と T_商品抽出 を追加します。
売り上げデータテーブルの商品コードを、T_商品抽出の商品コードにドラッグ&ドロップします。
2つのテーブルが結合線で結ばれます。

このクエリを保存して開けば希望の結果になります。

補足-------------------------------------------------
> 元々はチェックボックスで任意の商品を選択してそれをクエリの抽出条件としたかったのです。

チェックボックスで対象商品を選択したいのなら、
商品マスターテーブルにYes/No型のフィールドを追加して、

商品マスタ
商品コード 商品名 選択
----------------------
111 商品A レ
222 商品B
333 商品C レ

クエリで、売り上げデータテーブル と 商品マスターテーブルと商品コードで結合して、「選択」フィールドの抽出条件をTrueにすればチェックを入れた商品のみ抽出されます。

VBAを使わなくてもこのように簡単に実現できます。
一応VBAを使う場合の例も出しておきます。

条件入力用のフォームを「F_条件」とします。
そこにテキストボックスが「条件1」「条件2」・・・「条件30」という名前で配置してあるとします。
抽出結果表示用のフォームを売り上げデータテーブルをレコードソースにして作成します。名前は「F_抽出結果」

「F_条件」上のコマンドボタンのクリック時のイベントプロシージャに下記のコードを記述します。

Dim strFilter As String, i As Integer
For i = 1 to 30
If Me("条件" & i) <> "" Then
strFilter = strFilter & "," & Me("条件" & i)
End If
Next
strFilter = "商品コード In (" & Mid(strFilter,2) & ")"
DoCmd.OpenForm "F_抽出結果", , , strFilter

このコードは商品コードが数値型の場合です。テキスト型の場合は、コードの4行目を下記のように書き換えてください。

strFilter = strFilter & ",'" & Me("条件" & i) & "'"

この質問は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる