回答編集履歴
1
説明の修正
answer
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
フォームに更新がなかった場合は、読み込み解除時 → 閉じる時 という順で発生します。
|
6
6
|
フォームに更新があった場合は、更新前処理 → 更新後処理 → 読み込み解除時 → 閉じる時 という発生順になります。
|
7
7
|
|
8
|
-
読み込み解除時や閉じる時では、更新処理は終了してますので、Me.Dirtyは Falseになってます。
|
8
|
+
読み込み解除時や閉じる時では、更新処理は終了してますので、Me.Dirtyは Falseになってますので判定できません。
|
9
9
|
|
10
10
|
更新後処理では、更新処理をキャンセルできませんので、「変更されています。よろしいでしょうか」と確認して「いいえ」と言われても、手遅れです。
|
11
11
|
|
12
|
-
結局、更新前処理で「変更されています。保存しますか。」と確認して、「いいえ」と言われたら、Cancel=True として更新処理をキャンセル
|
12
|
+
結局、更新前処理で「変更されています。保存しますか。」と確認して、「いいえ」と言われたら、Cancel=True として更新処理をキャンセルすることになります。下記のようなコードになります。
|
13
13
|
|
14
14
|
```vba
|
15
15
|
Private Sub Form_BeforeUpdate(Cancel As Integer)
|