MS Access表格;两个程序导致“冲突”

时间:2014-04-04 17:25:02

标签: access-vba ms-access-2010

我在Access中有一个带有“提交”按钮的表单,可以将记录添加到我的表中。代码如下:

Private Sub SaveRecord_Click()
  If (IsNull(Description)) Then
     Beep
     MsgBox "The Description Field is empty. Please add a description.", vbCritical
  ElseIf (IsNull(Category)) Then
    Beep
    MsgBox "The Category Field is empty. Please add a Category.", vbCritical
  Else
    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.RunCommand acCmdRecordsGoToNew
  End If

  Forms!frm_DataEntry!dataEntry_subform.Requery
End Sub

我还有一个Before_Update事件,表单会询问用户是否要提交尚未提交的记录。请参阅下面的代码。

Private Sub Form_BeforeUpdate(Cancel As Integer)
 If Me.Dirty Then
   If MsgBox("The current record have not been saved. Do you want to save?", vbYesNo + vbQuestion, "Save Record") = vbNo Then
     Me.Undo
   End If
End If

Exit_BeforeUpdate:
 Exit Sub

Err_BeforeUpdate:
 MsgBox Err.Number & " " & Err.Description
 Resume Exit_BeforeUpdate

End Sub

我尝试修改代码并使用其他事件,但我无法完成以下操作: 1.如果我单击“提交”按钮,我不希望用户看到一个消息窗口,询问他们是否要保存记录。我怎么能隐藏这条消息?在保存之前可以将表单的Dirty设置为False(行DoCmd.RunCommand asCmdSaveRecord)。我尝试使用Me.Dirty = False,但它没有用。感谢。

1 个答案:

答案 0 :(得分:2)

创建一个新的布尔变量。如果在消息框显示之前显示为true,则将其设置为true。

blnDoNotShowMessage = True
If blnDoNotShowMessage Then
    Exit Sub
End If