【问题标题】:Windows Task Scheduler and MS Access 2013Windows 任务计划程序和 MS Access 2013
【发布时间】:2015-08-06 23:55:05
【问题描述】:

我正在尝试利用 Windows 任务调度程序将访问报告分发给我公司的最终用户。

我所做的只是触发一个宏,该宏运行模块中的代码,该模块将报告导出为 PDF,将其打印出来,然后退出访问。

DoCmd.Quit acQuitSaveNone

这就是我在 VBA 中的代码末尾一直使用的,用于在运行宏后关闭访问。

当我手动运行宏时,它可以正常工作,但是当安排在一项任务上时,它会卡住很多。

我已检查事件查看器以尝试查找任何 Microsoft Office 警报,但没有看到任何警报。

通过任务计划程序运行时,Access 似乎无法退出多次。是否有一个 VBS 可以运行,比如说,在关闭 .accdb 文件和 MSACCESS.EXE 的任务后 5 分钟,或者我可以做些什么来使这些任务真正工作?

似乎可能是通过任务调度程序在后台运行时..代码超前并试图在完成输出到打印机的同一实例中退出,导致它看起来“忙”并且无法真的要关闭吗?

我有一个完整的代码多米诺骨牌,在此之后会启动,但是当它无法完成关闭访问时,它会停止在其轨道上。

有什么建议吗?

谢谢,

伊恩

【问题讨论】:

  • 我将添加我在任务调度程序中启动 MSACCESS.exe 的根路径,并使用 /x "macro name" 的特定 .accdb 路径的参数

标签: ms-access vba


【解决方案1】:

这是我要做的事情的要点,我只是在处理关于打开和退出操作的打印。您可能需要进行调整以确保您有适当的验证等。

首先,确保您的报告指定了默认打印机。 (报表设计-->页面设置-->页面-->使用特定打印机,然后选择您的打印机)

创建一个Autoexec(自动执行)宏,这个宏会以Autoexec的名字保存。名为 Autoexec 的宏在 Access 自动打开时执行。请注意,一旦你有了这个宏,它会在你每次打开 Access 时运行,为了防止它运行,按住 shift 键然后打开 Access,这样就绕过了 Autoexec

Autoexec 宏中的第一个操作是 OpenReport 并将视图设置为打印(打开时打印报告) Autoexec 宏中的下一个操作是 QuitAccess,其选项设置为 SaveAll。

当您从调度程序运行应用程序时,它会使用不同的凭据运行。您要确保在此处选择适当的选项。

【讨论】:

  • 我为我的凭据设置了它并“以最高权限运行”。问题是我想让调度程序在某些时候触发某些宏。它执行第一个很好,但只是没有正确退出访问..这就是为什么我想退出代码并让它触发一个VB脚本来强制访问关闭或其他东西..如果这有任何意义的话。 . 否则 id 需要使用自己的“Autoexec”制作数据库的多个副本来完成此操作。
  • Ian,您确定 Access 无法正常退出的根本原因了吗?这只是偶尔发生还是一直发生?
  • 仅在从任务调度程序运行时发生。当我通过访问手动运行宏时,它退出正常。如果我关闭访问并设置时间表以启动它并观看它的播放,它会在代码的“退出访问”部分之前停止,表示当“退出”不可用时我的模块正在尝试退出。我一直在网上转圈,看到其他人有类似的问题,这可能与更新有关,也可能无关。但是我还没有尝试过的一件事是启动一个 VB 脚本来启动它。我也没有尝试过“关闭所有窗口”,然后是“关闭数据库”和“退出访问”
【解决方案2】:

修复它。非常高兴,因为我看到很多人遇到这个问题,并希望这能影响到他们。 如果有人对访问宏和任务计划程序有任何问题并且这不起作用 - 我很乐意尽我所能提供帮助,因为想要通过无法解决的自动化删除管理任务的挫败感是非常可怕.

由于我需要任务计划程序来唤醒计算机、登录并打开引用 SQL 服务器的网络驱动器上的访问数据库。我必须确保设置了几件事。

首先是受信任的位置。您可以访问的任何网络驱动器都应该位于受信任的位置。

其次,我对宏的最后一个命令是 DoCmd.RunCommand.Close(我相信.. 如果我错了,明天我回到办公室时会改变)

第三,使用网络文件夹的根路径而不是映射驱动器,因为当您注销时它们可能不会映射...所以改为 U:\file path... 必须是 \computer1\filepath\ 等..

此路径应包含网络中的所有链接表或数据库,尤其是当您有代码调用这些文件时。

第四,我最终不得不以不太喜欢的方式进行操作,并有一个名为“accessjobs”的文件夹,我在其中放置了访问宏的快捷方式,触发了代码,并简单地在任务计划程序中使用“start in:”文件夹运行该路径宏快捷方式在里面。

第五,我必须以最高权限运行,并选择“无论用户是否登录都运行”

其中一些事情可能是巧合,但我不打算花更多时间反复试验来查看哪些设置是好的,因为我花了太长时间才弄清楚这一切。但现在已经解决了,天空才是极限!

感谢您的帮助!

伊恩

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    相关资源
    最近更新 更多