【发布时间】:2013-12-13 05:56:18
【问题描述】:
我正在寻找有关如何安排数据库 (.accdb) 自动更新的 cmets,因为我对自己设置的流程不太满意。
目前,它的工作原理如下:
- 任务计划程序调用 .bat
- .bat 调用 .vbs
- .vbs 打开数据库并调用宏
- 宏调用函数(VBA 级别)
- 函数调用更新子程序
我认为步骤太多,而且它需要 2 个与数据库相关并存储在系统上的外部文件(.Bat 和 .vbs)这一事实增加了过程中断的风险。
显然(但请告诉我我错了以及如何更改它).vbs 不能调用子例程,只能调用宏。同样,如果用户希望进入数据库的 VB 环境,访问宏不能调用子程序而只能调用函数。这就是我调用函数(VBA 级别)然后调用子例程的原因。
希望你们中的一些人知道如何缩短步骤并最终掌握 .bat 和 .vbs
【问题讨论】:
-
(1) 您的
.bat或.vbs脚本是否不仅仅是一行代码?如果没有,那么您可能只需更新您的计划任务以使用所需参数运行MSACCESS.EXE。 (2) 是的,Access 中的宏只能调用函数,但您可以将 Sub 转换为不返回任何内容(或返回诸如True之类的任意值)的函数。 -
我尝试从任务计划程序调用 MSACCESS.EXE 但我没有成功,这就是我使用 .bat .vbs 方法的原因。会再试一次。我想我需要在 Access 中有一个计时器,然后触发更新...
-
不,您使用
-x命令行开关和要运行的宏的名称调用 MSACCESS.EXE。详情here. -
感谢 Gord - 看起来我的 .bat 和 .vbs scipts 即将消失 :)
-
vbs 可以肯定地调用一个标准的 VBA 子程序,事实上我很难找出任何其他方式。因此,您应该只需要一个 vbs 脚本。我发布了一个答案。
标签: ms-access batch-file vbscript auto-update