访问 2007 VBA DoCmd.Close 不起作用
Posted
技术标签:
【中文标题】访问 2007 VBA DoCmd.Close 不起作用【英文标题】:Access 2007 VBA DoCmd.Close not working 【发布时间】:2012-12-13 20:11:27 【问题描述】:我知道这可能是一个愚蠢的问题,但你知道他们在说什么。我在 Access 数据库中有 VBA,其中包含 On Click 命令。本质上,它是一个带有组合框和用户登录时间戳的表单。单击按钮后,将根据从组合框中选择的名称加载数据输入表单。我希望登录表单在数据输入表单打开后关闭。问题是无论我把 DoCmd.Close 放在哪里,愚蠢的表格都不会关闭!
如果重要的话,这个表单会设置为在用户打开数据库时自动打开。
下面是与按钮关联的事件过程的 VBA。
Option Compare Database
Private Sub TimeInButton_Click()
Dim strLoginForm As String
If Me.AgentCombo = "Amber" Then
strForm = "frmCustomersAmber"
ElseIf Me.AgentCombo = "Amanda" Then
strForm = "frmCustomersAmanda"
ElseIf Me.AgentCombo = "Brett" Then
strForm = "frmCustomersBrett"
ElseIf Me.AgentCombo = "Marcus" Then
strForm = "frmCustomersMarcus"
ElseIf Me.AgentCombo = "Terrah" Then
strForm = "frmCustomersTerrah"
End If
'------------------------------------------------------------
' TimeInButton_Click
'
'------------------------------------------------------------
On Error GoTo TimeInButton_Click_Err
On Error Resume Next
DoCmd.GoToRecord , "", acNewRec
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
DoCmd.OpenForm strForm
TimeInButton_Click_Exit:
Exit Sub
TimeInButton_Click_Err:
MsgBox Error$
Resume TimeInButton_Click_Exit
End Sub
【问题讨论】:
你试过' DoCmd.Close acForm, "frmLogin" ', frmLogin 是你的表单名称吗? 【参考方案1】:DoCmd.Close 采用可选参数,使其更加可靠。例如,
DoCmd.Close acForm, "MyFormName"
【讨论】:
非常感谢 cmets。我尝试将 DoCmd.Close acForm, "LoginForm" 放在几个不同的地方,但它不想工作。我主要需要位置方面的帮助。 尝试在代码前添加以下行以关闭表单:On Error Goto 0
。我的猜测是,当您调用 DoCmd.Close 时出现错误,该错误被代码前面的 On Error Resume Next 语句“吞下”。以上是关于访问 2007 VBA DoCmd.Close 不起作用的主要内容,如果未能解决你的问题,请参考以下文章