-PR-
締切済み

Accessで、コード実行中に、フォームのテキストボックスの値をデータソースとしたクエリーフィールドの値を取得したい

  • 困ってます
  • 質問No.26077
  • 閲覧数1031
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 33% (1/3)

Accessにおいて、frmMENUというフォームを作成し、txtYearというテキストボックスを配置しました。"式1: [Forms]![frmMENU]![txtYear]"というフィールドを含むクエリーを作成しました。
フォームを起動し、txtYearに値を入れた後、そのクエリーを開くと、"式1"には正しく値が入っているのですが、コードの実行中(例えばボタンクリック処理の間など)にクエリを開くと何も入っていません。このとき、クエリーに対するSQL(select 式1 from クエリ1)を実行しようとすると「パラメータが少なすぎます。1を指定してください。」というエラーが発生してしまいます。コード実行中にクエリーから"式1"の値を取得することはできないのでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル12

ベストアンサー率 41% (324/772)

単純にコードの実行中(ステップ実行)には、フォーム「frmMENU」が開いていないからなのでは、、、 クエリ1のSQL文ってどうなってます? ...続きを読む
単純にコードの実行中(ステップ実行)には、フォーム「frmMENU」が開いていないからなのでは、、、

クエリ1のSQL文ってどうなってます?
補足コメント
butasan

お礼率 33% (1/3)

ご回答本当にありがとうございます。

クエリ1のSQL文は、
SELECT [Forms]![frmMENU]![txtYear] AS 式1, テーブル1.aa FROM テーブル1;
("テーブル1"は適当に作ったテーブルです。)

コードの実行中もフォーム「frmMENU」は開いているのですが、式1には値が入っていなく、クエリ1に対するSQLを実行することができません。また、ステップ実行でなくてもSQLを実行することができませんでした・・・・。
投稿日時 - 2001-01-10 11:31:43
関連するQ&A


  • 回答No.2
レベル8

ベストアンサー率 51% (14/27)

まず、"式1"の値を取得してどの様な処理をしたいのでしょうか。 frmMENUの中のコードで使用するなら、ME.txtYear.Text で取得できると思うのですが(式1の参照先が "txtYear" なので)。 補足して下さい。 ...続きを読む
まず、"式1"の値を取得してどの様な処理をしたいのでしょうか。
frmMENUの中のコードで使用するなら、ME.txtYear.Text で取得できると思うのですが(式1の参照先が "txtYear" なので)。
補足して下さい。
補足コメント
butasan

お礼率 33% (1/3)

皆様からのご回答本当に感謝しております。

クエリ1とは、この質問の為に簡略化して作ったsampleでして、実際には、式1の値をクエリー上で編集を行い、他のデータも付加し、もう少し込み入ったクエリーを作成し、そのクエリーに対し、様々なSQLを発行できるようにしたかったのです。その為、あえてテキストボックスの値をクエリーから参照するように作ろうと思ったのです。

しかし、実行中は、テキストボックスの値を直にクエリーで参照することは出来ないものなのかもしれませんね。この方法は諦めて、テキストボックスの値を一旦テーブルに書き込む処理を入れ、そのテーブルを参照するクエリーを作成して対処しようかと思い始めています。
投稿日時 - 2001-01-10 11:41:09
  • 回答No.3
レベル8

ベストアンサー率 51% (14/27)

補足に対してアドバイスします。 >テキストボックスの値を一旦テーブルに書き込む処理を入れ、そのテーブルを参照するクエリーを作成して対処しようかと思い始めています。 テーブルに書きこまなくてもクエリの定義を直接変更することが出来ます。 CurrentDb.QueryDefs("クエリ名称").SQL プロパティーに直接SQLを設定してみてください。 ...続きを読む
補足に対してアドバイスします。

>テキストボックスの値を一旦テーブルに書き込む処理を入れ、そのテーブルを参照するクエリーを作成して対処しようかと思い始めています。

テーブルに書きこまなくてもクエリの定義を直接変更することが出来ます。
CurrentDb.QueryDefs("クエリ名称").SQL プロパティーに直接SQLを設定してみてください。
お礼コメント
butasan

お礼率 33% (1/3)

やはり予め、デザイン時にクエリ1のSQLを

SELECT [Forms]![frmMENU]![txtYear] AS 式1, テーブル1.aa FROM テーブル1

と定義しておくと、実行中は式1の値を取得することができないようですね。

以下のようにコード中でテキストボックスの値を取得し、その値を直接入れるようなSQLでクエリーを定義する必要があるということですね。

CurrentDb.QueryDefs("クエリ1").SQL = "SELECT '" & [Forms]![frmMENU]![txtYear] & "' AS 式1, テーブル1.aa FROM テーブル1"

大変参考になりました。ありがとうございます。
投稿日時 - 2001-01-10 16:24:39
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ