No.4ベストアンサー
- 回答日時:
余計なことかもしれませんが、フォーム上のテキストボックスには、アクセスが勝手にフィールドと同じ名前をつけます。
が、フィールドにつながっている別のものです。ですから、テキストボックスにフィールドAとおなじ名前をつけて、フィールドBをソースにしてもよいのです(やったことありませんが、できるはずです)。
本題に戻して、アクションクエリを呼び出すには DoCmd オブジェクトの OpenQuery メソッドを使用します。
例えばコマンドボタンのクリックイベントに
Private Sub コマンドボタン_Click()
DoCmd.OpenQuery "クエリ名"
End Sub
と書きます。
クエリ(ご質問の場合は更新クエリになりますが)は、普通にクエリビルダで作成します。
クエリが選択クエリなら、その結果が表示されます。
詳しくはヘルプをご参照ください。
ついでに ADO を使ったやり方。
Private Sub コマンドボタン_Click()
Dim Cnxn As ADODB.Connection
Set Cnxn = CurrentProject.Connection
Cnxn.Execute "SQL"
End Sub
SQLとは、言ってみればクエリを逐語的に記述したものです。
ADOは、VBAから直接テーブルを操作するしくみです。
No.3
- 回答日時:
#1です。
フィールドとは「顧客ID」という名のテキストボックスなんですね?
Forms!<フォーム名>.[顧客ID] = 1
をコマンドボタンのClickイベントに記述してください。
<フォーム名>は、現物にあわせ適宜変更してください。
これからテキストボックスを配置するなら、Text1といった名前でしょうから、顧客IDに変更するなどしてください。
#2さんの1)呼び出すとは、オブジェクト「クエリ」で「更新クエリを作成し、呼び出す(=クエリを実行する)」ということです。
No.2
- 回答日時:
申し訳ありませんが、よくわからないのですが、フォーム上にフィールド(テキストボックスのことだと思いますが)がないのに、なぜ、どこに、1を表示、あるいは入力するのでしょうか。
存在しないテキストボックスに、値を入力しようとしてもできないのは、Access2002の仕様というより、至極当たり前のことだと思うのです。
フォームではなくて、テーブルの、当該レコードの「顧客ID」フィールドに1を入力するのですか?
それなら、いくつか方法があると思います。
1) アクションクエリーを作って、それを呼び出す。
2) ADODBを使って、SQLを走らせる。
3) フォーム上の「顧客ID」をソースにする非表示のテキストボックスを作って、そこに書き込む。
はずしてますかね。
ご回答ありがとうございます。
>フォームではなくて、テーブルの、当該レコードの「顧客ID」フィールドに1を入力するのですか?
はい、そうなんです。
顧客IDというフィールドを変数として使用したいと思っており、
変数ならばわざわざフォーム上に表示させる必要も無いと思ったしだいです。
基本的にフォーム上に無ければ入力はされないということなんですね。
教えていただいた3)の方法をとろうと思います。
後学のために教えていただきたいのですが、1)の呼び出すというのはどのような表記をすればいいのでしょうか。
No.1
- 回答日時:
例示の「顧客ID = 1」の「顧客ID」を、どのような利用をなさろうとされているのか、によります。
「変数」という「入れもの」は、フォーム上の「テキストボックス」だったり、Dimで宣言する Integer型やLong型やString型であったりします。
VBAでForm上に定義してあるオブジェクト(例:TextBox1)を参照する場合は
Forms!TextBox1.Text = 1
をコマンドボタンのClickイベントに記述するなどします。
ご回答ありがとうございます。
顧客IDというのは数値型のフィールドです。
フィールドに1という値を入力したいだけなのです。
なにか宣言のようなものが必要なのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで、1つの項目に複数の...
-
Accessのテーブルのフィールド...
-
テキストボックスにクエリ結果...
-
テーブルでメモ型になっている...
-
Accessを開きなおすとテキスト...
-
アクセスで追加した項目に全て...
-
Access:値が求めたい値の2倍...
-
追加クエリで特定フィールドの...
-
途中で改行されたCSVをAccessに...
-
Access で 特定の文字の個数を...
-
フィールド名の変更について(...
-
accessでの文字列の混ざった連...
-
アクセスのクエリ 1文字以上を...
-
更新クエリをリンクデータベー...
-
ACCESSで2つフィールドの日付...
-
ACCESSのテーブル複数行...
-
access フォームを開くと「パ...
-
クエリの計算結果をテーブルに...
-
Accessのクエリでハイパーリン...
-
アクセスのクエリに「PHONETIC...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスで追加した項目に全て...
-
Accessで、1つの項目に複数の...
-
テキストボックスにクエリ結果...
-
Accessを開きなおすとテキスト...
-
Accessのテーブルのフィールド...
-
テーブルでメモ型になっている...
-
Accessで、テーブルに入力した...
-
Access:値が求めたい値の2倍...
-
Accessのクエリでハイパーリン...
-
Access で 特定の文字の個数を...
-
更新クエリをリンクデータベー...
-
アクセスのクエリ 1文字以上を...
-
追加クエリで特定フィールドの...
-
accessでの文字列の混ざった連...
-
アクセス クエリのフィールド...
-
accessvba 複数条件でFilterを...
-
途中で改行されたCSVをAccessに...
-
access フォームを開くと「パ...
-
Access2002の重複クエリで大文...
-
【急】Access 4桁の数字の頭...
おすすめ情報