• 締切済み
  • 困ってます

フォームからクエリの抽出条件を入力する方法

既存のデータベースより複数のテーブルを結合し、必要なカラムだけを表示させるようなクエリを作成しました。 他の人でも操作ができるように、フォームを作成し、テキストボックスにて抽出条件を指定し、クエリやレポートを出力するような形にしたいと思っています。 このクエリの抽出条件をフォームより指定する方法で悩んでいます。 現在、作成したクエリの抽出条件の中に [Forms]![フォーム名]![テキストボックス名] と入力し、フォームのテキストボックスで抽出条件を記入してクエリを実行させているのですが、これでは複雑な条件 (Between~ や 条件1 or 条件2 等の指定) を入れると「直前の操作はキャンセルされました」とポップアップが出てしまい、思うとおりにうごきません。 フォーム内でこのような抽出条件範囲の指定ができるようにするにはどうしたらよろしいでしょうか? よろしくおねがいします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数984
  • ありがとう数2

みんなの回答

  • 回答No.2
noname#22222

今、仮に、txtWhere に条件文の一部'1'を入力し参照させるとします。 この場合、クエリーは SELECT 在庫数, 補充水準 FROM テーブル1 WHERE ID>Forms!フォーム1!txtWhere; となります。 [ID > 1] を参照させる場合は、 SELECT 在庫数, 補充水準 FROM テーブル1 WHERE Forms!フォーム1!txtWhere; まあ、どちらのやり方もOKです。 ミスには、数字、文字列、日付等によって'や#で括るというルールが関わっていると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

すみません。自己解決しました。

質問者からの補足

すみません。大事なことを書き忘れておりました。 これらのデータベースはアクセスを用いて作っております。

関連するQ&A

  • Accessクエリの抽出条件にフォームから挿入する方法(2)

    フォームにいくつかの抽出条件を指定するためのテキストボックスをセットし、そこに入力されたデータをクエリの抽出条件に挿入しデータ抽出を行っておりますが、たとえば販売期間でデータを抽出するために、クエリの抽出条件に Between [Forms]![フォーム名]![売上日FROM] And [Forms]![フォーム名]![売上日TO]と入力しているのですが、テキストボックスに指定日付が入っていれば問題なく抽出できるのですが、販売期間の指定なしの場合、売上日from及び売上日TOがNULLとなるためか抽出結果がゼロ件になってしまいます。 期間指定なしの場合でも抽出ができるようにするためにはどのように記述すればよいか教えてください。よろしくお願いいたします。

  • サブフォームを利用したクエリーの抽出条件について

    環境:ACCESS2003&XP Pro メインフォーム&サブフォームのフォームを作成しています。 このサブフォームにテキストボックスをつけ、このテキストボックスの値を抽出条件にしたクエリーを作成しましたが、抽出条件がうまくいかないようで クエリー実行時にパラメータを聞いてきます。 クエリーの抽出条件は forms![メインフォーム名].[サブフォーム名].[テキストボックス名] です。 上記の書き方がおかしいのだと思います。 よろしくお願いします。

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • 回答No.1
  • Nigun
  • ベストアンサー率22% (200/893)

フォーム内で指定というのは分かりませんが、 クエリ内でフォームから受け取った値を元に条件を付けるのは出来ます。もし、haru_ulalaさんが出来ないのであれば、クエリの作り方を間違っていると思います。

共感・感謝の気持ちを伝えよう!

質問者からの補足

クエリの作り方が間違ってるのですか・・・。 ちなみにクエリのビューにて直接抽出条件を入力すると期待した結果が表示されます。 クエリとフォームで同じ条件文を入力してるのに、なんで結果が違うのか・・謎ですが、クエリに原因があるんですかね。

関連するQ&A

  • Accessクエリの抽出条件にフォームから挿入する方法

    Accessフォームのテキストボックスに入力されたデータを、クエリの抽出条件に挿入したいのですが、その際部分一致で検索したいため、抽出条件にLike "*[Forms]![フォーム名]![テキストボックス名]*"と記述したのですがうまく行きません。 どのように記述すれば部分一致で検索できるのかお教えください。

  • フォームのテキストボックスを抽出条件とするクエリー

    Access2003を使って、「フォームのテキストボックスを抽出条件とするクエリー」 を作成していて困っています。 まず Like [Forms]![顧客氏名検索]![テキスト2] とすると、完全一致したものだけが抽出できています。そこで 【値の一部が一致】 Like "文字列*"   ※文字列にある文字列を直接入力するとちゃんと抽出できる。 これを参考に Like "[Forms]![顧客氏名検索]![テキスト2]*" とすると、値の一部が一致するものが抽出されません。(何を入力しても該当0件) 抽出条件が正しく設定されてないように思います。 フォームのテキストボックスの値を利用する場合、""や*の使い方がおかしいのでしょうか?

  • クエリーの抽出条件について

    「作表条件」というフォームにテキストボックスとして「日付1」、「日付2」を設置しています。 元のテーブルには「日付」という項目があり、「日付1」から「日付2」までのデータを抽出するため、 クエリの条件式に Between Nz([Forms]![作表条件]![日付1],#1800/01/01#) And Nz([Forms]![作表条件]![日付2],#9999/12/31#) と記述しています。 ただ、元のテーブルの日付がNULL値の場合があり、その場合「日付1」および「日付2」が空欄だとNULL値のレコードが抽出されません。 「日付」がNULLの場合でも抽出できるようにするには、どのようにすればよいでしょうか? どなたか教えてください。

  • Access クエリ抽出条件の「Between」の記述で

    こんにちは。Access2000を使用しています。 「抽出条件」フォーム上のテキストボックス "txt開始コード"と"txt終了コード"の入力条件を 「抽出」選択クエリの抽出条件として Between [forms]![抽出条件][txt開始コード] And [forms]![抽出条件][txt終了コード] 記述しました。 抽出条件は「業務データ」テーブルの"業務コード" に対応しており、「業務コード」はテキスト型長さ4 で定義してありますが、「0000」~「9999」の数値 が格納されています。また、フォーム上のテキストボックスの書式は「0000」としています。 条件を何も入力しない時はデータを抽出しますが、条件 を指定すると何も抽出されなくなってしまいます。条件 の指定を、 Between '[forms]![抽出条件][txt開始コード]' And '[forms]![抽出条件][txt終了コード]' のようにシングルクォーテーションで囲んでもうまくいき ません。文字列なのに数値が入っているのでアクセス側で 自動認識しうまくいかないのか、検討がつきません。 どなたか解決策をお願いいたします。

  • AccessでBetween条件を含むクエリーで、Between条件を

    AccessでBetween条件を含むクエリーで、Between条件を入力しなくてもデータを抽出するには? Access97でデータの抽出を行いたいと思います。 「顧客名」「商品名」「出荷日」という項目を含むクエリーから、希望のデータを抽出するフォーム(名:検索フォーム)を作成しています。 検索フォームにそれぞれ「顧客名」「商品名」「出荷開始」「出荷終了」という名前の非連結のテキストボックスを作り(規定値を"*"にしています)、それに値を入力すると、これらのテキストボックスの下に配置したサブフォームに抽出されたデータが抽出される様にしたいのです。 現在、クエリーの「顧客名」項目の抽出条件に「[forms]![検索フォーム]![顧客名]」という様に入力し、同じ様な記述を「商品名」項目にも行い(条件は[商品名]としています)、出荷日に「Between[forms]![検索フォーム]![出荷開始]And[forms]![検索フォーム]![出荷終了]」と記述しています。(これらは全てAnd条件にしています) さて、この検索フォームの値入力項目で、全てのテキストボックスに入力しなくても(1つ以上値が入力されていれば)データをサブフォームに抽出できるようにしたいのです。 現在、「出荷開始」&「出荷終了」に値を入力すれば、その他の値(「顧客名」と「商品名」)を入力してもしなくてもデータが抽出できますが、「出荷開始」&「出荷終了」を入力しない限りデータが抽出されません。 この「出荷開始」&「出荷終了」を入力しないケースでもデータが抽出できる様なフォームを作成したいのですが、 どの様に記述を変えたらよいでしょうか?

  • クエリの抽出条件

    クエリの抽出条件を手入力では無く、コンボボックス方式で プルダウンでリストを選びたいと思い下記の抽出条件を入力 [Forms]![フォーム名]![コンボ名] しかし、パラメータ入力時の名前が、Forms!フォーム名!コンボ名と変わるのみで プルダウンになりません クエリを過去のデータ検索のみで使用したいと思ってます。 ネットをくぐると、メインフォームを開いてとありますが、それでも駄目です。 また、クエリー検索だけで、メインフォームを開かないでプルダウン方式には 出来ないものでしょうか よろしくお願い致します

  • クエリの抽出条件

    クエリの抽出条件に [担当者を選んでください] クエリを開いた際に、担当者をドロップダウン一覧から選べるようにしたいのですが [Forms]![フォーム名]![コンボ名]は分かるのですが・・・ フォーム名とは、何を入力すれば良いのでしょうか? コンボ名はコンボボックスを作成した担当者名だと思いますが・・・? 基本的に1つのテーブルに全部の項目を入力し、クエリーを作成しています フォームは作成していました。 しかし、フォーム名を入力しても、コンボボックス名を入力しても[担当者を選んでください] の場所の名前が変わるだけなんです?? ご回答の程、よろしくお願い致します。

  • クエリーの抽出について

    今回初めて質問させていただきます。 所持しているゲームソフトが増えてきたので、ACCESSで管理したいと思いました。 テーブル、追加クエリー等は作成したのですが、フォーム上でメーカー名と頭文字という二つのテキストボックスを作成し、クエリーにて FORM!検索フォーム!テキストボックスという感じで作成し、抽出をしようとしたところ、両方のテキストボックスに検索条件を入力しないと抽出されないことに気づきました。 これを、一つの検索条件を入力した時にも抽出できるようにできませんか?説明がわかりにくいかもしれませんが、よろしくお願いします。

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

  • クエリの抽出条件をフォームで入力したものにしたい

    こんにちは。すみませんうまくいかないのでどなたか助言していただきたくお願いいたします。 クエリの抽出条件をフォームで入力した値にしたいと思っており、クエリの抽出条件欄に >=[集計フォーム]![開始日入力] と入力しました。「フォームの名前」!「テキスト名」です。 そしてフォームに値を入力してクエリ実行ボタンをクリックするとパラメータクエリのようになってしまいます。 フォーム内で何か設定をしないといけないのでしょうか? すみませんがよろしくお願いいたします。