teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

説明の改善

2020/08/19 14:39

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  ---
15
15
  **別案**
16
- 呼び出したいフォームの「ポップアップ」プロパティを「はい」、「作業ウィンドウ固定」を「はい」に設定しておく。acDialogを設定しない。
16
+ 呼び出したいフォームの「ポップアップ」プロパティを「はい」、「作業ウィンドウ固定」を「はい」、「境界線スタイル」を「ダイアログ」に設定しておく。acDialogを設定しない。これで動作的にはダイアログウィンドウだか、モーダルにはならない。
17
17
 
18
18
  ```vba
19
19
  DoCmd.OpenForm "呼び出したいフォーム名"

3

説明の改善

2020/08/19 14:39

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -12,8 +12,8 @@
12
12
  呼び出したフォームを閉じない限り(あるいは非表示にするまで)次のコード DoCmd.Close は実行されないということです。
13
13
 
14
14
  ---
15
- 別案
15
+ **別案**
16
- 呼び出したいフォームの「ポップアップ」プロパティを「はい」、「作業ウィンドウ固定」を「はい」に設定しておく。
16
+ 呼び出したいフォームの「ポップアップ」プロパティを「はい」、「作業ウィンドウ固定」を「はい」に設定しておく。acDialogを設定しない。
17
17
 
18
18
  ```vba
19
19
  DoCmd.OpenForm "呼び出したいフォーム名"

2

説明追記

2020/08/19 13:20

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -9,4 +9,14 @@
9
9
  モーダルとはフォームが閉じるまで、次のコードが実行されないということです。
10
10
 
11
11
  質問のコードだと、
12
- 呼び出したフォームを閉じない限り(あるいは非表示にするまで)次のコード DoCmd.Close は実行されないということです。
12
+ 呼び出したフォームを閉じない限り(あるいは非表示にするまで)次のコード DoCmd.Close は実行されないということです。
13
+
14
+ ---
15
+ 別案
16
+ 呼び出したいフォームの「ポップアップ」プロパティを「はい」、「作業ウィンドウ固定」を「はい」に設定しておく。
17
+
18
+ ```vba
19
+ DoCmd.OpenForm "呼び出したいフォーム名"
20
+ DoCmd.Close acForm, Me.Name, acSaveNo
21
+ ```
22
+ こちらの方が確実に End Sub まで行くので、スタック領域を占有しないと思います。

1

説明の改善

2020/08/19 13:19

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -8,4 +8,5 @@
8
8
  acDialogを設定(ダイアログモード)するとフォームがモーダルで開きます。
9
9
  モーダルとはフォームが閉じるまで、次のコードが実行されないということです。
10
10
 
11
+ 質問のコードだと、
11
12
  呼び出したフォームを閉じない限り(あるいは非表示にするまで)次のコード DoCmd.Close は実行されないということです。