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