プロが教える店舗&オフィスのセキュリティ対策術

クエリを作成するクエリを作成しています。フォーム「F_form」から抽出条件を指定してクエリを作成したいのですが、どうすればいいでしょうか?よろしくお願い致します。

※access 2010を使用

Private Sub Sample_Click()

Dim db As DAO.Database
Dim vSQL As String

Set db = CurrentDb


vSQL = "SELECT フィールド名 FROM テーブル名 WHERE (((テーブル名.フィールド名)=抽出条件)));"


db.CreateQueryDef "Q_test", vSQL

db.Close


End Sub

質問者からの補足コメント

  • 上記のコードだと抽出条件をフォームで指定していないため、同じ抽出条件のクエリしか作成できません。フォーム上のテキストボックスに記号を入力して、それを抽出条件としたクエリを作成したいと考えています。

      補足日時:2018/07/13 20:33
  • また、下記のようなコードを『vSQL』箇所に追加しても[Forms]![F_フォーム名]![テキストボックス名]が抽出条件のクエリが出来るだけで、フォーム上のテキストボックスに入力した記号が抽出条件のクエリはできません。

    FROM T_テーブル名 WHERE ((T_テーブル名.フィールド名)=[Forms]![F_フォーム名]![テキストボックス名])

    具体的にコードを書いて回答して頂ける方がいらっしゃいましたら、お願い致します。

      補足日時:2018/07/17 16:21
  • ご質問ありがとうございます。

    >T_テーブル名.フィールド名のフィールド型は何でしょうか?
    テキスト型になります。

    >[Forms]![F_フォーム名]![テキストボックス名]の部分をフォーム上の値でクエリを作成したいのでしょうか?
    仰るとおりです。フォーム上の値を抽出条件にしたクエリを作成したいです。説明がわかりづらく申し訳ございません。

    No.5の回答に寄せられた補足コメントです。 補足日時:2018/07/18 12:07

A 回答 (6件)

[Forms]![F_フォーム名]![テキストボックス名]の部分を変数にしシングルクォーテーションで囲みます。



vSQL = "SELECT フィールド名 FROM テーブル名 WHERE テーブル名.フィールド名='" & [Forms]![F_フォーム名]![テキストボックス名] & "'"
    • good
    • 1
この回答へのお礼

無事解決しました!!的確なアドバイスをありがとうございます。大変助かりました。

お礼日時:2018/07/19 11:09

>また、下記のようなコードを『vSQL』箇所に追加しても[Forms]![F_フォーム名]![テキストボックス名]が抽出条件のクエリが出来るだけで、フォーム上のテキストボックスに入力した記号が抽出条件のクエリはできません。


>FROM T_テーブル名 WHERE ((T_テーブル名.フィールド名)=[Forms]![F_フォーム名]![テキストボックス名])

T_テーブル名.フィールド名のフィールド型は何でしょうか?
数値型?テキスト型?日付型?

フォームが開いていれば今のままでも抽出できそうですが
[Forms]![F_フォーム名]![テキストボックス名]の部分をフォーム上の値でクエリを作成したいのでしょうか?
この回答への補足あり
    • good
    • 0

そうだね

    • good
    • 0

formsコレクションとテキストボックスコントロールで検索して出てこない?

    • good
    • 0

あー、なるほど。


そのコードの中で、フォームのコントロールを指定したらいいよ。
formsコレクションから参照できるはず。
(スマホなんで、この程度の回答しかできない)
    • good
    • 1
この回答へのお礼

すいません。フォームのコントロールの指定とは具体的にはどのようにするのでしょうか?大変お手数ですが、お手隙の時に書いて頂けないでしょうか?

お礼日時:2018/07/14 13:48

それで?


そのコードで出来ない?
    • good
    • 0

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