タイトルのままなのですが、
フォームA(メインとなる画面)と
フォームB(コードの検索画面)があり、
フォームAからフォームBをダイアログモードで開いている状態から、
フォームBを閉じたときに、フォームA側でマクロを実行したいと思っています。
具体的には、フォームAにコード入力用のテキストボックスがあり、コード検索のためにフォームBを立ち上げ、コードを選択した後フォームAのテキストボックスにそのコードを入れて、そのコードの値を元にフォームAにあるコンボボックスの再クエリを行いたいのです。
コンボボックスの再クエリの方法等は理解しているのですが、
上記のような場合に、どのイベントがキックされるのかが分かりません。
どのようにすれば(どのイベントを選んでマクロを指定すれば)適切に実行できるでしょうか。
No.1
- 回答日時:
Private Sub Form_Close()
Forms("Test").Controls("txtAAA") = Me.テキスト0
Forms("Test").Requery
End Sub
コンボボックスならば、
Forms("Test").Controls("コンボボックス名")Requery
とフォームを閉じる時に・・・。
ただ、これだけですと、テスト時に親が開いてないとエラーになってややこしいです。
そこで、次のようにフォームが開いているかチェックしたがいいです。
Private Sub Form_Close()
If FormIsLoaded("A") Then
Forms("Test").Controls("txtAAA") = Me.テキスト0
Forms("Test").Requery
End If
End Sub
Public Function FormIsLoaded(ByVal frmName As String) As Boolean
On Error Resume Next
FormIsLoaded = CurrentProject.AllForms(frmName).IsLoaded
End Function
ありがとうございます!できました。
ただ、なるべくVBAではなくマクロで処理したいと思っていますので、質問は閉じずに残させて下さい。
No.2
- 回答日時:
全部、マクロでということなら
「フォームを開く」--------- (1)
フォーム名:B
ウィンドウモード:ダイアログ
フォームB側で「値の代入」---(2)
「再クエリ」等の処理--------(3)
ダイアログモードでフォームを開くと、
そのフォームが閉じられるか、非表示にされるまで、
次の行は実行されませんから、
あらためて、イベントで処理しなくても
同じマクロに (1)(3)を連続してかけばよろしいのでは?
この回答への補足
ご回答ありがとうございます。
(2)と(3)はフォームB側のマクロに記述することになると思いますが、
フォームB側のマクロで、フォームAのコンボボックスの再クエリを実行することはできないようなのです。
私の知識が不足しているだけかもしれません。もし「フォームB側のマクロで、フォームAのコンボボックスの再クエリを実行する」ということがVBAではなくマクロで可能でしたら、具体的な記述方法を教えて頂けないでしょうか。
保守性を高めるため、なるべくVBAは避けようと思っておりますので。。。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
フォームBの処理
「値の代入」
「オブジェクトの選択」
オブジェクトの種類:フォーム
オブジェクト名:フォームA
「再クエリ」
コントロール名:コンボボックス名
でいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Safari(サファリ) 大学の出欠確認でQRコードを読み取り、Googleフォームに送ってます。自分の携帯のQRコード読み取 1 2022/11/25 14:54
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
マイクロソフト アクセス2021の...
-
フォームの高さを数値で指定し...
-
「フォームを作成できませんで...
-
アクセスで、スマホサイズのフ...
-
Excelのデータフォームの設定変更
-
アクセスで、androidのスマホサ...
-
Accessで、フォームからフォー...
-
Accessのフォームで開く時のウ...
-
Accessのフォームを改ページしたい
-
ファイルへのアクセスエラーが...
-
アクセス フォームをリクエリ...
-
アクセスで同じフォームを違う...
-
Access2003 フォーム入力中に...
-
ACCESS クロス集計クエリの抽...
-
MSワード 年齢を計算表示でき...
-
エクセルで各セルをダブルクリ...
-
Wordでドロップダウンリストを...
-
大至急!アクセスのフォームを...
-
Access2003 メモリ不足のためこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
Accessで、フォームからフォー...
-
「フォームを作成できませんで...
-
フォームの高さを数値で指定し...
-
デフォルトでチェックボックス...
-
MSワード 年齢を計算表示でき...
-
Accessフォームを開くときに決...
-
アクセス フォームをリクエリ...
-
Accessのフォームで開く時のウ...
-
アクセスで複数列にまたがる同...
-
Excelのデータフォームの設定変更
-
帳票フォームのなかにリストを...
-
ACCESSでオートメーションエラー
-
アクセスのレコードをフォーム...
-
エクスポートされたエクセルの...
-
Access 2010フォームの全画面表示
-
アクセスで同じフォームを違う...
-
Accessに関する質問です。 クエ...
-
Access2003 フォーム入力中に...
-
エクセルで各セルをダブルクリ...
おすすめ情報