【发布时间】:2014-09-15 18:38:17
【问题描述】:
我在使用 VBA 编码检查弹出表单中的空白字段时遇到问题。该代码应该检查表单上的空白字段,如果有空白表单则通知用户,如果没有,则添加记录。我有第二个功能可以保存记录,然后关闭表单。下面是我用来检查空格的代码:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctrl As Control
Dim strMsg As String
For Each ctrl In Me.Controls
If ctrl.Tag = "BlkChk" Then
If IsNull(ctrl) Then
strMsg = strMsg & "- " & ctrl.Name & vbCrLf
End If
End If
Next ctrl
If strMsg <> "" Then
If vbOK = MsgBox("The following fields require a response:" & vbCrLf & vbCrLf & _
strMsg & vbCrLf & vbCrLf, _
vbOKOnly) Then
Cancel = True
Me.cboLookup.SetFocus
End If
End If
End Sub
这是我的“添加记录”按钮的代码:
Private Sub cmdAddRecord_Click()
On Error GoTo cmdAddRecord_Click_Err
DoCmd.Save
DoCmd.Close , ""
cmdAddRecord_Click_Exit:
Exit Sub
cmdAddRecord_Click_Err:
MsgBox Error$
Resume cmdAddRecord_Click_Exit
End Sub
第一段代码工作正常,但是当我单击“添加记录”按钮并执行第二段代码时,它会通知用户两次,然后关闭表单而不保存,无论是否填充了所有空白在与否。我在网上浏览了几个关于其他人如何设置它的例子,看看我是否可以实施他们的想法,但这对我不起作用。我认为这可能与“添加记录”代码有关,但我似乎无法弄清楚。我应该如何解决这个问题?我应该重组我的编码还是应该将它们全部组合成一个 On_Click() 命令?
【问题讨论】:
标签: ms-access vba ms-access-2010