Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2270 / 2272 ツリー ←次へ | 前へ→

【3140】更新フォームで閉じる時に確認メッセージを出して処理を行いたい お初 04/7/28(水) 18:49 質問[未読]
【3141】Re:更新フォームで閉じる時に確認メッセージ... クロ 04/7/28(水) 19:29 回答[未読]
【3145】Re:更新フォームで閉じる時に確認メッセージ... お初 04/7/29(木) 11:23 質問[未読]
【3146】Re:更新フォームで閉じる時に確認メッセー... Homes 04/7/29(木) 13:19 回答[未読]
【3148】Re:更新フォームで閉じる時に確認メッセージ... クロ 04/7/29(木) 13:35 回答[未読]
【3150】Re:更新フォームで閉じる時に確認メッセージ... hatena 04/7/29(木) 18:02 回答[未読]
【3151】Re:更新フォームで閉じる時に確認メッセージ... お初 04/7/30(金) 10:25 お礼[未読]

【3140】更新フォームで閉じる時に確認メッセージ...
質問  お初  - 04/7/28(水) 18:49 -

引用なし
パスワード
   はじめまして。
access初心者のお初です。

1つご教授お願い致します。
現在更新フォームを作成しているのですが、閉じる時に確認メッセージを表示させたて閉じるフォームを作ってます。
そこで、確認メッセージを表示されることができたのですが、
その処理で一部できない部分があり、分からない状態ですので、ご教授お願い致します。
確認メッセージは「更新しました。変更しますか?」
「はい」「いいえ」のボタンがありますが、「いいえ」で更新せずに終了したいのですが、更新して終了してしまいます。
どのような記入をしたら良いですか?
ちなみに私が書いたコードです。
Private Sub Form_AfterUpdate()
 UpdateFlg = True
   If MsgBox("更新されました。変更しますか?", vbYesNo + vbQuestion) = vbNo Then
     Close
   End If
End Sub

と記入しています。
大変初歩的な質問で申し訳ありませんがどなたかご教授お願い致します。

【3141】Re:更新フォームで閉じる時に確認メッセー...
回答  クロ  - 04/7/28(水) 19:29 -

引用なし
パスワード
   更新後では既に更新した後のイベントなので、書くのなら更新前処理の
イベントでは?

【3145】Re:更新フォームで閉じる時に確認メッセー...
質問  お初  - 04/7/29(木) 11:23 -

引用なし
パスワード
   ▼クロ さん:
ご回答ありがとうございます。

>更新後では既に更新した後のイベントなので、書くのなら更新前処理の
>イベントでは?

更新前処理で同じようなコードで記入しても
何も反応がありませんでした。
確認メッセージも出ず、閉じてしまう状況でした。
コードの書き方が違うのでしょうか?

【3146】Re:更新フォームで閉じる時に確認メッセー...
回答  Homes  - 04/7/29(木) 13:19 -

引用なし
パスワード
   ▼お初 さん:
▼クロ さん:
横から失礼します。
If MsgBox("只今から更新します", vbOKCancel + vbInformation, "更新確認") = vbCancel Then
  'キャンセルを押したときの処理
  Exit Sub
else
  '更新処理
End If

これの事でしょうか?

【3148】Re:更新フォームで閉じる時に確認メッセー...
回答  クロ  - 04/7/29(木) 13:35 -

引用なし
パスワード
   ▼お初 さん:
>▼クロ さん:
>ご回答ありがとうございます。
>
>>更新後では既に更新した後のイベントなので、書くのなら更新前処理の
>>イベントでは?
>
>更新前処理で同じようなコードで記入しても
>何も反応がありませんでした。
>確認メッセージも出ず、閉じてしまう状況でした。
>コードの書き方が違うのでしょうか?

フォームウィンドウのクローズボタンはそれ自身にフォームを閉じる
アクションがあり、どのようなコードを書こうが最終的には閉じてし
まいます。
フォームを閉じる処理はコマンドボタンを配置してそれで閉じるよう
にしては如何でしょうか?
※フォームウィンドウのクローズボタンを不用意に操作しないように
 フォームプロパティの「閉じるボタン」を「いいえ」にするか、ま
 たは「コントロールボックス」を「いいえ」にしてください。

とそうなると、どのタイミングでレコードが更新されているかを判断
しましょうか?
できれば、どんな操作手順が教えていただけるといいのですが...

それから「UpdateFlg」のチェックボックス(?)は連結ですか?

【3150】Re:更新フォームで閉じる時に確認メッセー...
回答  hatena  - 04/7/29(木) 18:02 -

引用なし
パスワード
   更新前処理に記述します。
更新を保存したくないときは、Me.Undo で元に
戻します。

Private Sub Form_BeforeUpdate()
 UpdateFlg = True
   If MsgBox("更新されました。変更しますか?", vbYesNo + vbQuestion) = vbNo Then
     Me.Undo
   End If
End Sub

【3151】Re:更新フォームで閉じる時に確認メッセー...
お礼  お初  - 04/7/30(金) 10:25 -

引用なし
パスワード
   ▼hatena さん:
▼クロ さん:
▼Homes さん:

お初です。いろいろとご指導ありがとうございました.
更新前処理欄でイベントを行った所、できました。
大変助かりました.ありがとうございます.

2270 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078322
(SS)C-BOARD v3.8 is Free