我正在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
使用上面的代码“是否要中止?”每当用户试图从当前记录导航离开时,以及在按下“添加记录”或“保存”按钮时,都会询问。如果用户回答“否”,则将保存该条目并执行有问题的操作,但“添加记录”按钮除外,该按钮现在似乎只保存了,不添加新记录。
似乎让我有些困惑。尝试:
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