Access クエリの条件の参照先

このQ&Aのポイント
  • ローカルのクエリの抽出結果をExcelファイルに出力する際に、「実行時エラー3061 パラメータが少なすぎます。1を指定してください。」と表示される問題について質問です。
  • フォーム上のテキストボックスの文字列を参照する条件をクエリに指定している場合、エラーが発生しますが、固定の文字列を指定している場合はエラーが発生しません。
  • テキストボックスを参照できないのか、OpenRecordsetに何かパラメータが足りないのか、ご教授いただければ幸いです。
回答を見る
  • ベストアンサー

Access クエリの条件の参照先

お世話になります。 ローカルのクエリの抽出結果をExcelファイルに出力しようとしてます。 クエリの条件としてはフォーム上にあるテキストボックスの文字列を参照する ようにしてます。 ※当該クエリを開くと問題なく抽出されてます。 このクエリの抽出結果を出力しようとすると、「実行時エラー3061 パラメータ が少なすぎます。1を指定してください。」と表示されます。 なお、出力は以下のようにしてます。  Set MyRs = CurrentDb.OpenRecordset("クエリ名") ローカルクエリの条件をフォーム上のテキストボックスではなく、固定で 文字列を指定してやると、当該エラーは出なくなります。 なので、フォーム上のテキストボックスを参照できないのか、そもそも 上記のOpenRecordsetで何か(パラメタ)足りないのか。。よくわかりません。 勉強不足で大変恐縮ですが、ご教授の程、宜しくお願い致します。

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

  • ベストアンサー
回答No.2

フォーム参照のパラメータクエリをVBAで扱う方法 http://www.tsware.jp/tips/tips_586.htm かな。

naoto0216
質問者

お礼

NotFound404さま いつもご回答ありがとうございます。 教えて頂いた方法でうまくいきました。 ありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> クエリの条件としてはフォーム上にあるテキストボックスの文字列を参照する ようにしてます。 その[参照]の部分をどう記述したのですか?補足して下さい。 そのフォームを開いていない状態で、クエリ単体で走らせようとすれば パラメータを見つけ出せないのでエラーになると思いますよ。

naoto0216
質問者

お礼

bin-chanさま ご回答ありがとうございます。 テキストボックスのコントロールソースに「="文字列"」と 記述してます。 ※実際にはVBAにてテキストボックスに文字列を代入する  予定です。 フォームを開いた状態で、このローカルクエリを直接開くと 文字列を条件として抽出された状態で開きますので 参照は出来ていると思います。 なので、フォームを閉じた状態でクエリを開くと、パラメータ(フォーム上の テキストボックスの内容)を指定するようメッセージ(テキストボックス)が 表示されます。

関連するQ&A

  • ACCESS クエリの抽出条件

    毎度お世話になります。 クエリをレコードソースとするフォームから、コマンドボタンでアクションクエリを実行するときの抽出条件の書き方を教えて頂けないでしょうか? 二つのテーブル(別のACCESSファイルからリンク)を基にパラメータクエリを作っています。 そのクエリを基にフォームを作っています。 さらに、そのフォームに追加クエリを実行するボタンを置いています。 フォームに表示してあるレコードだけ(パラメータで抽出されたレコードだけ)、他のテーブルに追加しようと思っているのですが、実行ボタンを押すともう一度パラメータが出てきてしまいます。 多分テキストボックスの値を読み取る際にレコードソースがテーブルでないのが問題じゃないかと思うのですが。。。 テーブル:Container / Items クエリ:From_Con(パラメータは[Container]フィールド) フォーム:From_Con(テキストボックス名は[txtContainer]) 追加クエリ:From_Con_App(抽出条件は[Forms]![From_Con]![txtContainer]としてみたがうまく動きません。) デザインビューの抽出条件を使う方法? SQLを使う方法? QueryDefを使う方法? いろいろありそうですが、ネットで検索してもヒットしません。 分かりにくい説明で申し訳ありませんがご教授願います。

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

    宜しくお願いします。 Accessの条件抽出クエリについて二つ質問があります。 1.抽出結果をフォームに出したいときはどうしたら? 正確には、パラメータ入力フォームを使用してパラメータを入力させ、 その結果をまたフォームに出力させたい、というものになります。 パラメータ入力フォームはできたのですが、ここで「OK」ボタンをクリックしたときに何かを指定してやればよいのでしょうか。 2.全てを対象としたい場合はどうしたら? 条件を入れたい項目が「取引先」「期間」と2つあり、どちらも指定したい場合は簡単にできるのですがどちらかだけを指定して、もう片方は全てを対象としたい場合はどうすればよいのでしょうか。 複数の内容で申し訳ございません。 宜しくおねがいします。(><)

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

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

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

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

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Access 2003、2007 なぜクロス集計クエリだけクエリパラメータを設定しないといけないのか?

    Accessで、なぜクロス集計クエリだけクエリパラメータを設定しないといけないのでしょうか? 普通の選択クエリなどでパラメータクエリを作る時は抽出条件に[ ]を記入するだけで作成できますが、クロス集計クエリでパラメータクエリを作ろうとすれば、クエリパラメータでダイアログボックスの文字列とデータ型を指定しなければいけません。 これはなぜなのでしょうか?

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

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

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

    既出でしたら、大変申し訳ありません。 選択クエリーの抽出条件をフォーム上テキストボックスに入力した 値で行いたいと思います。 対象の項目は商品コードであり、テキスト型です。 フォーム上のテキストボックスに、1111 と入力し、 クエリーの実行をしたところ、正常に抽出。 しかし、フォーム上のテキストボックスに、"1111" or "2222"と 複数の商品を抽出したいので入力した場合、結果が出ませんでした。 おそらく、"1111" or "2222"の記述に問題があるのだと思い、 何パタンか挑戦しましたが、結果バツ。 どなたかお分かりになる方いらっしゃいますか? つたない文章で申し訳ありません。

  • ACCESS VBA フォーム複数条件

    ACCESSフォーム内のテキストボックスが空欄かどうかで条件分岐させる方法を教えてください。 フォーム内に複数テキストボックスがあります。 テキスト1 テキスト2 テキスト3 このテキストボックスの入力があるかどうかで、 エクスポートするクエリを変更したいです。 それぞれのテキストボックスの入力値は、 対応するクエリの抽出条件になっています。 少なくとも、テキスト1には入力があるという条件で、 ・テキスト2が空白なら、クエリ2を出力する ・テキスト3が空白なら、クエリ3を出力する という処理を行いたいのです。 マクロビルダーで、IFを使った処理は作ることができたのですが、 VBAを使って、同じ処理ができるようにしたいです。 どうかご教授のほど、よろしくお願いします。

  • Accessのパラメータクエリについて

    Accessのパラメータクエリがうまく動かなくて困ってます。 実はODBC経由でリンクテーブルを作っておりまして、そこからパラメータクエリで抽出を試みたのですが、パラメータは聞いてきますが抽出できません。 選択クエリ状態で直接抽出条件を入れてやれば何の問題もなく通常のテーブルと同様に抽出できるのですが、パラメータクエリにする、または同じ事ですが他のフォームのコントロールを参照させる状態ですと、エラーも出ずにノンデータとなります。 これって何故なんでしょうか?対処方法はありますか? ちなみにリンク元のテーブルはオラクルですがデータ型とかが関係あるのでしょうか?