如何摆脱退出 MS ACCESS 的提示

问题描述

我正在使用 VBScript 运行存储在 ACCESS 数据库中的 Sub 过程。该过程查询数据库并导出/保存 CSV 文件

我的问题是脚本成功打开了数据库,运行了程序,但随后打开了 ACCESS,因为 ACCESS 打开一个提示,询问“您确定要离开 ACCESS 吗”(相当于德语)。我希望它在没有交互的情况下关闭

此脚本的基本思想是通过 Windows 任务计划程序运行它。 (现在不起作用,但这是另一个问题。)

这是我的 VBScript 处理 ACCESS 数据库的部分:

Dim objAccess
Set objAccess = createObject("Access.Application")
objAccess.OpenCurrentDataBase("C:\FiselTools\Allgemein\Scripte\Pellenc-copyBelegarchiv3.accdb")
objAccess.Run "copyBelegarchiv"
objAccess.Quit acQuitSaveAll
Set objAccess = nothing

手动使用这个脚本,它打开数据库,导出文件,最后执行上面代码后面的部分 - 所以只有关闭 ACCESS 不起作用,我猜这不是脚本或程序的问题但访问权限。

解决方法

Erik A 基本上给出了正确的答案:有一些 VBA 代码负责这个提示(见下文)。它是主要形式的一部分。

所以在这种情况下,我找到了两种可能的解决方案:

  1. 不要显示/显示表单(这对我有用,因为我专门为此目的制作了一份文件副本)。
  2. 如果您需要表单,则可能需要删除 VBA 代码。
Private Sub Form_Unload(Cancel As Integer)

Dim Answer As Variant
Answer = MsgBox("Wollen Sie die Anwendung wirklich beenden?" & vbNewLine & vbNewLine & "Nicht gespeicherte Änderungen gehen dabei möglicherweise verloren",vbQuestion + vbYesNo + vbDefaultButton2)
If Answer = vbNo Then
Cancel = True
Else
DoCmd.Quit acQuitSaveNone
End If

End Sub

由于它是配置为在打开 ACCESS 数据库时显示的表单的 Access 类对象的一部分,并且当我通过 VBScript 运行该过程时不需要该表单,我只是将数据库更改为不打开数据库时显示任何表单。

总有一天,我将从不需要从 VBScript 运行的数据库的这个特殊副本中删除任何不需要的表单、查询和任何其他对象。

谢谢!