Access VBA Preventing form record entry on close

↘锁芯ラ 提交于 2021-01-29 06:20:52

问题


I am working with Access Database VBA.

I have noticed if a user has filled a few of the text boxes in and then clicks the windows close button, the form logs that into the records.

I am wondering what is the best way to prevent the form from entering the uncompleted record on close?

There were a few sites pointing to placing a code in the beforeupdate function.

This is what I have tried.

Private Sub frmRecLog_BeforeUpdate(Cancel As Integer)


DoCmd.SetWarnings False
Me.Undo

Cancel = True

Exit Sub

End Sub

This code does not work at all for me.. I tried my best, haha.

Anything helps.


回答1:


So, what you need is to insert a command button Save. If user do not hit on Save then it will not save any records. They will get a warning that data is not saved. You need declare a private boolean variable and write codes to save and warning. So full code will be like below.

Option Compare Database
Option Explicit
Private blnSaveRecord As Boolean

Private Sub cmdSave_Click()
    blnSaveRecord = True
    DoCmd.RunCommand (acCmdSaveRecord)
    blnSaveRecord = False
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String
 
    If Not blnSaveRecord Then
        Cancel = True
        strMsg = "Please save the record.," & _
                 vbNewLine & "or press ESC from keyboard to cancel the operation."
        Call MsgBox(strMsg, vbInformation, "Save Record")
        'Me.Undo 'You can set undo option here if you do not want to press ESC.
    End If
    
End Sub


来源:https://stackoverflow.com/questions/63922918/access-vba-preventing-form-record-entry-on-close

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!