仅在回答问题后才将条目更新/添加到表中?

时间:2019-10-28 12:27:15

标签: vba ms-access access-vba ms-access-2013

我正在MS Access 2013中建立一个数据库,想问用户是否要保存或丢弃其未保存的记录或进行编辑,然后再导航到Access表中的当前记录吗? 。

如果按下“添加记录”或“保存”按钮,则不应与用户打交道。

有人可以指出我有问题的代码在哪里或我需要什么?

此外,我是Access的新手,所以请保持柔和。

我在网络上尝试了一些不同的指南或其他答案,但还没有完全达到我想要的位置。

我的代码就是这样(cbotxt_Change和Form_Load与表单的其他部分有关)

Private blnGood As Boolean

Option Compare Database

Private Sub cbotxt_Change()
    Me.txt1.Value = Me.test1.Column(2)
    Me.txt2.Value = Me.test1.Column(3)
    Me.txt3.Value = Me.test1.Column(4)
End Sub

Private Sub Form_Load()
    DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub button_addRecord_Click()
    blnGood = True
    DoCmd.GoToRecord , , acNewRec
    blnGood = False
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim strMsg As String

    If Not blnGood Then
        strMsg = "want to abort?"
        If MsgBox(strMsg, vbYesNo + vbQuestion, "Yes") = vbYes Then
            Me.Undo
        Else
            Yes = True
        End If
    End If
End Sub

使用上面的代码“是否要中止?”每当用户试图从当前记录导航时,就会出现“ +”,并在按下“添加记录”或“保存”按钮时被询问。如果用户回答“否”,则将保存该条目并执行所要执行的操作,但“添加记录”按钮除外,该按钮现在似乎只保存了,不添加新记录。

1 个答案:

答案 0 :(得分:1)

似乎让我有些困惑。尝试:

Private Sub button_addRecord_Click()
    DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)

    Dim strMsg As String

    strMsg = "want to abort?"

    If MsgBox(strMsg, vbYesNo + vbQuestion, "New Entry") = vbYes Then
        Cancel = True
        Me.Undo   ' or let the user press Escape.
    End If

End Sub