Access 変数について変数 初心者です。F_書類(メインフォーム)にF_書類サブ(サブフォーム)、テキスト1(テキストボックス)、コマンド1(コマンドボタン)を配置しており、コマンド1のクリック時イベントプロシージャのVBA↓If Me.テキスト1 = ″A″ ThenMe.書類サブ.SourceObject = ″フォーム.F_書類タイプ_A″ElseIf Me.テキスト1 = ″B″ ThenMe.書類サブ.SourceObject = ″フォーム.F_書類タイプ_B″ElseIf Me.テキスト1 = ″C″ ThenMe.書類サブ.SourceObject = ″フォーム.F_書類タイプ_C″ElseExit SubEnd IfEnd Subこのようにテキスト1の値によって書類サブ(サブフォーム)のソースオブジェクトを変更するVBAを設定しました。実際は書類タイプが10〜15個あるのでその分VBAも長くなってしまいます。仮に今後使用していく中で書類サブ(サブフォーム)の名前を変更した場合、今のまま″Me.書類サブ″と10〜15行ほど記載していると1行ずつ変更後の名前に変更しなくてはいけないため大変です。″Me.書類サブ″の部分を変数として設定してVBAを実行するにはどのようにすれば良いでしょうか?イメージ↓fsub = Me.書類サブ (変数を設定)If Me.テキスト1 = ″A″ Thenfsub.SourceObject = ″フォーム.F_書類タイプ_A″ (変数で宣言)のようなイメージです。可能なのかわかりませんが、分かる方よろしくお願いいたします。

1件の回答

回答を書く

1273957

2026-01-14 11:45

+ フォロー

確認ですが、F_書類タイプ_A, F_書類タイプ_B, F_書類タイプ_C, ...

の表示する項目(列名)は異なるのでしょうか?



表示する項目(列名)は全く同じで、テキスト1(書類タイプの選択肢)によって、サブフォームに表示するデータが抽出されれば良いのであれば、



選択クエリを作成し、もとになるテーブルの書類タイプの抽出条件にフォームで指定した書類タイプを記述して(Forms![メインフォーム名]![テキスト1])、



その抽出結果をサブフォームを表示すれば、サブフォームを切り替える必要はなく、抽出した結果(サブフォームのレコードソースが選択クエリ名)を表示するだけなので、複雑なVBAに記述は不要になります。(再クエリは必要)

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有