回答編集履歴
2
誤字修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
一般的にダイアログボックスを開いているときはそれ以外での操作はできないようになります。
|
16
16
|
|
17
|
-
(InputBox, Msgbox, ファイル選択
|
17
|
+
(InputBox, Msgbox, ファイル選択ダイアログなど)
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
Private Sub ボタン1_Click()
|
58
58
|
|
59
|
-
DoCmd.OpenForm "フォームC",
|
59
|
+
DoCmd.OpenForm "フォームC", WindowMode:=acDialog 'ダイアログモードで開く
|
60
60
|
|
61
61
|
Call ShowDate
|
62
62
|
|
1
蛇足追記
test
CHANGED
@@ -67,3 +67,73 @@
|
|
67
67
|
|
68
68
|
|
69
69
|
ダイアログモード(WindowMode:=acDialog)で開くと、フォームはポップアップかつ他のオブジェクトは操作できない状態で開く。さらに、開いたフォームが閉じるまで、次のコードは実行されない。というダイアログボックスと同様の仕様になります。
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
---
|
74
|
+
|
75
|
+
質問内容とはずれますが、
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
> ボタン1を押下すると、テキストボックス1へ入力した値をpublic変数s_codeへ代入し、
|
80
|
+
|
81
|
+
フォームBを開き、フォームAを閉じる。
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
public変数は、複雑なシステムになってくると想定外に書き変わっていたりとかのバグの元になるので、できる限り使用しないというのが定説です。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
OpenFormメソッドには、OpenArgs引数という値を渡すことのできる引数がありますので、それを利用するのが得策だと思います。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
フォームA
|
96
|
+
|
97
|
+
```vba
|
98
|
+
|
99
|
+
Private Sub ボタン1_Click()
|
100
|
+
|
101
|
+
DoCmd.OpenForm "フォームB", OpenArgs:=Me.テキストボックス1.Value
|
102
|
+
|
103
|
+
DoCmd.Close acForm, Me.Name
|
104
|
+
|
105
|
+
End Sub
|
106
|
+
|
107
|
+
```
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
フォームB
|
112
|
+
|
113
|
+
```vba
|
114
|
+
|
115
|
+
Private s_code
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
Private Sub ShowDate()
|
120
|
+
|
121
|
+
'テーブルAの変数s_codeに合致するレコードの各フィールドの値を
|
122
|
+
|
123
|
+
'テキストボックス1~5へ表示するコード
|
124
|
+
|
125
|
+
End Sub
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
'フォームの読み込み時
|
130
|
+
|
131
|
+
Private Sub Form_Load()
|
132
|
+
|
133
|
+
s_code = Me.OpenArgs
|
134
|
+
|
135
|
+
Call ShowDate
|
136
|
+
|
137
|
+
End Sub
|
138
|
+
|
139
|
+
```
|