在 Windows 任务计划程序中访问 2013 模块

Access 2013 Module in Windows Task Scheduler

我已经尝试使用 Windows 任务计划程序来 运行 我的 Access 数据库模块,尽管我不知道如何为此创建宏,因为我相信这是唯一的方法这个。 我的详细信息是 Program/script:"C:\Program Files\Microsoft Office\Office15\MSACCESS.EXE"Add Arguments(optional):"C:\deskop\Reports.accdb" /x AutoExec 我在访问数据库上创建了一个名为 AutoExec 的宏,但我不知道如何调用我的模块叫做 Main.

我的模块包含 5 个不同的 public 函数和一个我更改为函数的 Sub。我现在已经将所有 5 个函数作为 RunCode 和函数名称添加到宏中,这是正确的吗?现在似乎 运行正在使用宏。

宏只能调用函数,不能调用子函数。正如@marlan 所说,可以将表单设置为默认打开的加载事件中的代码,并且不需要可选参数。另一种选择是 Windows Task Scheduler 调用一个脚本文件,该文件具有打开数据库、调用 VBA 过程和关闭数据库的代码。这是 VBScript 可执行文件的结构(文件扩展名为 .vbs)。

Dim accessApp
set accessApp = CreateObject("Access.Application")
accessApp.OpenCurrentDataBase("your path/filename here")
accessApp.Run "your procedure name here"
accessApp.Quit
set accessApp = nothing 

您可以按照以下步骤进行操作

第 1 步:在数据库中创建一个宏(在您的情况下为 AutoExec)并调用该函数(在您的情况下为 main)。

第 2 步:创建批处理文件,现在在批处理文件中,您将编写代码来打开数据库并调用要执行的宏 (AutoExec)

例如

if exist "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" ("C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" C:\AccessDatabase\MyDatabase.accdb /x:AutoExec)

执行此批处理文件时,将打开 access 数据库,该数据库中的 AutoExec 宏将 运行 调用您的函数,然后完成您要执行的任务。

第 3 步:在这一步中,在 Windows 任务计划程序中创建计划任务。创建一个新操作作为启动程序,并在 Program/Script 中提供上述步骤 2 创建的批处理文件路径。

按照您设置的时间表,这将 运行 批处理文件,因此稍后的访问和宏以及您的功能....

希望这对您有所帮助。