このようなレコードを(フォーム内に)保存する[保存して新規開く]ボタンをクリックしているときに、ポップアップメッセージボックスを作成したいと思います。
このレコードを保存してもよろしいですか?はい・いいえ
そして、レコードが保存されている場合は、別のメッセージボックスを取得したいと思います。だからこのように:レコードが保存されました。
このようなレコードを(フォーム内に)保存する[保存して新規開く]ボタンをクリックしているときに、ポップアップメッセージボックスを作成したいと思います。
このレコードを保存してもよろしいですか?はい・いいえ
そして、レコードが保存されている場合は、別のメッセージボックスを取得したいと思います。だからこのように:レコードが保存されました。
ここにコマンドボタンがどのように収まるのかわかりません。バインドされたフォームについて話している場合は、ユーザーが別のレコードに移動するときに発生する自動保存操作をインターセプトすることをお勧めします。それがあなたの状況である場合は、フォームの更新前イベントでユーザーに尋ねることができます。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Const cstrPrompt As String = _
"Are you sure you want to save this record? Yes/No"
If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbNo Then
Cancel = True
End If
End Sub
ユーザーが[いいえ]をクリックすると、更新はキャンセルされ、同じレコードに残り、そのレコードに別の変更を加えるか、変更を加えることができなくなります。代わりに保留中の変更を破棄したい場合は、Me.Undo
その手順に追加してください。
フォームの更新後イベントを使用して、「レコードが保存されました」というメッセージを表示できます。
必要に応じて、フォームの挿入前と挿入後のイベントについても同様のことができます。
あなたの質問の更新に基づいて、私はあなたがこのようなものを探していると思います:
Private Sub cmdSaveAndNew_Click()
Const cstrPrompt As String = _
"Are you sure you want to save this record? Yes/No"
If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbYes Then
If Me.Dirty Then
Me.Dirty = False ' save the record
End If
DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
End If
End Sub
ユーザーがコマンドボタンを使用せずに別のレコードに移動した場合、またはユーザーが未保存の変更でフォームを閉じた場合、現在のレコードへの変更を保存する前に確認を求めることができないことを忘れないでください。現在の記録。