フォームのコンボボックスに表示させたい値を
値集合ソースにてSQLを直接書いています。
例を挙げますと、
テーブル:CstmTBL
項目:Cstm_ID,Cstm_Name,FLG
値集合ソース:SELECT Cstm_ID FROM CstmTBL Where FLG = '1'
ここまでであればうまくいきます。
私がやりたいのは、
このFROM句のテーブルを上位(例えば上位のコンボボックスで指定したテーブル名)で設定し、
そこで設定されたテーブルを毎回そのSQLに埋め込んで抽出されるようにしたいのですが、うまくいきません。VBAを書かないとだめでしょうか?
書くとすれば、書き方も教えていただけますか?
よろしくお願いいたします。
No.1
- 回答日時:
このへんのサポートは参考になりませんか?
コンボ ボックスの内容を制限する方法
http://support.microsoft.com/default.aspx?scid=k …
コンボボックスに表示される値集合ソースを変更する方法
http://support.microsoft.com/default.aspx?scid=k …
No.2
- 回答日時:
テーブルを指定するコンボボックスの更新後処理イベントで、Cstm_IDを表示させるコンボボックスの値集合ソースを代入する形がよいかと思います。
VBAでやるのでしたら、プロパティシートの「イベント」タブの「更新後処理」イベントにカーソルをおき、ビルダをクリックして「イベントプロシージャ」をクリックしたら、以下の文を貼り付けて下さい:
Private Sub 指定テーブル_AfterUpdate()
表示コンボ.RowSource = "SELECT Cstm_ID FROM " & 指定テーブル & " Where FLG = 1"
End Sub
これでいけると思います。
(Cstm_IDを表示するコンボボックスの名前を「表示コンボ」と、テーブルを指定するコンボボックスの名前を「指定テーブル」としています)
この回答への補足
ご親切にありがとうございます。
VBAの部分はわかったのですが、
「テーブルを指定するコンボボックスの更新後処理イベントで、Cstm_IDを表示させるコンボボックスの値集合ソースを代入する形がよいかと思います。」
の部分がよくわかりません、具体的に教えていただけますか?
No.3
- 回答日時:
要は”指定テーブル”というコントロールがあってその子のトロールの更新後処理にイベントを書けってことだと思いますよ。
別にこれはテキストボックスでもかまいませんが、それよりもコンボボックスやリストボックスであった方が操作性はあがります。
コンボボックスやリストボックスだとあらかじめ値を登録(値集合ソース)しておく必要がありますね。
この回答への補足
ありがとうございます。
更新後にイベントを書くのはわかるのですが、
「そのコンボボックスで指定した値」をどう書いていいのかわからないのと、その抽出結果をどう次の
コンボボックスに引き渡すのでしょうか?
No.4ベストアンサー
- 回答日時:
No.2です。
前回のVBAをより明示的(?)にしてみます:
Private Sub 指定テーブル_AfterUpdate()
[表示コンボ].RowSource = "SELECT Cstm_ID FROM " & [指定テーブル] & " Where FLG = 1"
End Sub
つまり、「[指定テーブル]」は「指定テーブル」というテキストではなく、「指定テーブル」コンボボックスに入力した値を参照することを意味しています。
> その抽出結果をどう次のコンボボックスに引き渡すのでしょうか?
「次のコンボボックス」の名前が、上の例では「表示コンボ」となっています。
つまり「表示コンボ」コンボボックスの「.RowSource」(=値集合ソース)に、上記演算結果を代入することを意味しています。
例えば、「指定テーブル」コンボボックスに「CstmTBL」を入力すると、「表示コンボ」コンボボックスの値集合ソースには、
"SELECT Cstm_ID FROM " & [指定テーブル] & " Where FLG = 1"
の演算結果である
SELECT Cstm_ID FROM CstmTBL Where FLG = 1
が入力されることになります。
「指定テーブル」に「AnotherTBL」を入力した場合は、同様に
SELECT Cstm_ID FROM AnotherTBL Where FLG = 1
が入力されます。
「AfterUpdate」(=更新後処理)というのは、「そのコントロールの更新後に実行される処理」なので、上記VBAを記述しておけば、「指定テーブル」コンボボックスを更新により、自動的に「表示コンボ」コンボボックスの値集合ソースが切り替えられることになります。
もし疑問点がありましたら、遠慮なくご質問下さい。
お礼が遅くなってすみません。本当にご丁寧に教えてくださりありがとうございます。お陰で、すっきり理解することができて、うまくいきました。また、機会がありましたらお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
精子が黄色?
-
勃起する時って痛いんですか? ...
-
尿検査前日に自慰行為した時の...
-
尿検査の前日は自慰控えたほう...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
精子に血が・・・
-
中出しをするとお腹が痛い・・・。
-
納豆食べた後の尿の納豆臭は何故?
-
甲状腺腫れ
-
EXCELで式からグラフを描くには?
-
EXCELで条件付き書式で空白セル...
-
筋トレするとチンコが縮んじゃ...
-
爪が紫色?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報