【发布时间】:2009-07-02 12:58:52
【问题描述】:
以下代码是我们的BA编写的Access App的关闭例程。执行时,它不仅会在同一台计算机上关闭 Access App,还会关闭我的 C# winform app。 Access 应用程序名为 DME Referral,我的 winform 应用程序主进程在任务管理器中作为 MATRIX.exe 运行。(是的,我正在对 MATRIX 进行编程...永远不要让一群社会工作者和护士为你的项目命名!)
我在 Access(VBA) 编程方面做的不多,所以我希望这里有人能提供帮助。
Private Sub cmdClose_Click()
On Error GoTo Err_cmdClose_Click
Call ToggleVisible
DoCmd.Quit
Exit_cmdClose_Click:
Exit Sub
Err_cmdClose_Click:
MsgBox Err.Description
Resume Exit_cmdClose_Click
End Sub
Private Sub ToggleVisible()
Me.txtLastNameCrit.Visible = False
Me.txtFirstNameCrit.Visible = False
Me.cmdSearch.Visible = False
Me.cmbCoor.Visible = False
Me.cmdSearchByCoor.Visible = False
Me.txtStartDate.Visible = False
Me.txtEndDate.Visible = False
Me.cmdDMEReport1.Visible = False
End Sub
【问题讨论】:
-
我现在正试图从 BA 那里得到这个。
-
它带您进入 ActiveX 库。虽然没有代码。
-
从 Access 中的内存中,DoCmd.Quit 是一个内置的退出应用程序。您可以尝试使用 Spy++ 来观察您的 C# 应用程序的窗口,以查看(是否)有人向它发送 WM_QUIT 或其他任何内容。
-
您的代码对我来说似乎很奇怪。为什么在关闭应用程序之前隐藏窗体上的控件?另外,我认为将错误处理程序包裹在 DoCmd.Quite 是有问题的——在我看来,您的错误处理程序应该在您调用的代码中,即 ToggleVisible (尽管在运行时几乎不会出错)。一件小事:我使用 Application.Quit 而不是 DoCmd.Quit。如果您在 Access 的即时窗口中键入 Quit 并按 F1 以获取帮助,您会发现 DoCmd.Quit 已被弃用,取而代之的是 Application.Quit,即使它们是等效的。
标签: .net winforms ms-access vba