私のクラスデータベースの最後の質問があります。ユーザーがデータを表示できる特定のフォームでは、フォームを閉じることができるようにし、変更を加えなかった場合はプロンプトを表示しないようにします。しかし、フォームのデータを変更したり、レコードを編集したりする場合は、変更を保存するかどうかをユーザーに尋ねるポップアップボックスを表示するようにしてください。 「はい」を選択すると、古いレコードは上書きされ、変更はレコードに保存されますが、「いいえ」を選択した場合はレコードがまったく変更されず、フォームが閉じます。ユーザーにフォームの保存を促す
どうすればいいですか?私はAccess 2016を使用しています。これまでに試したことがエラーになります。ここでは、VBAのBeforeUpdateイベントのフォームで試した2つのメソッドを示します。
方法1:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String
Dim iResponse As Integer
' Specify the message to display.
strMsg = "Do you wish to save the changes?" & Chr(10)
strMsg = strMsg & "Click Yes to Save or No to Discard changes."
' Display the message box.
iResponse = MsgBox(strMsg, vbQuestion + vbYesNo, "Save Record?")
' Check the user's response.
If iResponse = vbNo Then
' Undo the change.
DoCmd.RunCommand acCmdUndo
' Cancel the update.
Cancel = True
End If
End Sub
Error - "The expression Before Update you entered as the event property setting produced the following error: A problem occured while Microsoft Access was communicated with the OLE server or ActiveX Control."
方法2:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Provide the user with the option to save/undo
'changes made to the record in the form
If MsgBox("Changes have been made to this record." _
& vbCrLf & vbCrLf & "Do you want to save these changes?" _
, vbYesNo, "Changes Made...") = vbYes Then
DoCmd.Save
Else
DoCmd.RunCommand acCmdUndo
End If
End Sub
エラー - 上記と同じです。
ご協力いただきありがとうございます。
ありがとうございます!
おかげサブExit_BeforeUpdate エンドを再開 。 Accessについてもっと勉強しなければならないことが分かります。 – Adam