访问 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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VBA 在 Access 中关闭单个表单实例?

访问 2007 vba 空

将文件名导入列表框,无需路径访问 2007 vba-

访问每个公司的 2007 VBA 报告电子邮件

使用带有 postgresql 表的 vba 填充组合框访问 2007

更改数据库数据或重新查询后访问 2007 VBA 列表框滞后