【问题标题】:How can I schedule a Macro to run automatically in Access 2007如何安排宏在 Access 2007 中自动运行
【发布时间】:2010-10-22 22:48:59
【问题描述】:

我想要一个宏,例如 Macro1,每天早上 9 点运行。它在 Access 2007 中的 VB 代码编辑器中运行良好,但我希望它能够在不打开访问权限的情况下自动执行。

请注意,我不希望有任何人为干预,它需要能够自动运行,而无需有人打开 Access 来触发 autoexec 或 onload 或类似的东西。

这可能吗?

【问题讨论】:

  • 这个很奇怪……你想在不运行 Access 的情况下运行 Access 宏!你不能用另一种语言做同样的把戏吗?
  • @Philippe:基本上,我需要按计划从另一个数据库中提取数据。正在将数据输入到另一个数据库中,该数据库由一些我不允许触摸的糟糕软件管理。我需要获取一些每天输入的信息,并且我希望能够这样做,而不必让某人每天打开访问并单击某些内容。不一定要在没有运行访问权限的情况下运行它,而是打开访问权限并执行该宏,然后在更有意义的情况下退出。
  • 如果您只是在运行查询,那么您可以通过 vbScript 使用 DAO 来完成。有关宏,请参阅我的答案。

标签: ms-access macros ms-access-2007 scheduled-tasks


【解决方案1】:

您可以使用 MS Access 命令行开关来运行宏。如果您在 Access 帮助中搜索“命令行”,“启动命令行选项”主题会为您提供所有命令行开关。运行宏的开关是x macro

因此,如果您编写宏以运行您想要的任何内容并让它在完成时退出 Access,那么您可以创建一个命令行来执行此操作并将其放入 Windows 任务计划程序可以执行的批处理文件中。

但是,正如我在上面的评论中所说,如果您只是运行一些查询,我会说完全绕过 Access 并直接在预定的 vbScript 中使用 DAO 来执行查询更有意义。

【讨论】:

  • 这听起来不错。这不仅仅是一些查询,尽管这是其中的一部分。我需要从另一个数据库中查询链接表并更新当前数据库中的内容。
  • 我不确定运行一些查询和“查询链接表......并更新当前数据库中的内容”之间有什么区别——这不是通过运行查询来完成的吗?如果不是,也许应该是?
  • 是的,就是通过查询来完成的。但是我需要使用结果来更新另一个本地表的一部分。
  • 我仍然不明白为什么“使用结果更新”其他东西会禁止我的建议。
  • @alexcoco -- 我认为大卫的意思是你的更新可以(并且可能应该)使用更新查询来完成,这意味着你仍然在“运行一些查询”,什么都没有更多。
【解决方案2】:

您必须创建 vbscript 来运行宏并创建批处理文件来安排 vbscript。

  • vbscript 代码,保存为 schedule.vbs 文件

    Dim accessApp
    设置 accessApp = createObject("Access.Application") accessApp.OpenCurrentDataBase("fullpath\msaccessdb")

    accessApp.Run "Macroname",param1, param2,param3
    accessApp.Quit
    设置 accessApp = 无

  • 然后创建文件.bat

    @echo 关闭
    cscript schedule.vbs

您已准备好使用 Windows 任务调度程序来安排它 http://www.thewindowsclub.com/how-to-schedule-batch-file-run-automatically-windows-7

希望得到帮助:D

【讨论】:

  • 你迟到了将近 3 年,这个项目与我不再相关。已经有一个公认的答案。不过,也许您的回答仍会对其他人有所帮助。感谢发帖。
  • @noodle,vbscript 文件的意义何在?为什么不直接运行宏?
【解决方案3】:

您可以使用 Windows 任务计划程序和 VBScript 来运行代码或启动 Access。

【讨论】:

  • 所以我基本上会安排一个脚本在每天的某个时间运行,然后让该脚本打开访问权限并执行宏?这可行吗?
  • ...当然,假设宏最终所做的是可以通过 DAO 或 Access 自动化完成的事情。
猜你喜欢
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 2011-03-28
  • 2011-01-31
相关资源
最近更新 更多