我正在寻求有关如何安排数据库(.accdb)自动更新的评论,因为我对我设置的流程不太满意。
目前,其工作原理如下:
- 任务计划程序调用 .bat
- .bat 调用 .vbs
- .vbs 打开数据库并调用宏
- 宏调用函数(VBA级别)
- 该函数调用更新子例程
我认为步骤太多,而且它需要 2 个与数据库相关并存储在系统上的外部文件(.Bat 和 .vbs),这增加了程序中断的风险。
显然(但请告诉我我错了以及如何更改它).vbs 不能调用子例程,而只能调用宏。同样,如果用户希望进入数据库的 VB 环境,则访问宏不能调用子程序,而只能调用函数。这就是为什么我调用一个函数(VBA 级别)然后调用子例程的原因。
希望你们中的一些人知道如何缩短步骤并最终摆脱 .bat 和 .vbs
据我所知,Windows计划任务“在Access VBA中做一些有用的事情”的最短路径是:
在数据库中创建一个公共函数(不是子函数)。例如:
Option Compare Database
Option Explicit
Public Function WriteToTable1()
Dim cdb As DAO.Database
Set cdb = CurrentDb
cdb.Execute "INSERT INTO Table1 (textCol) VALUES ('sched test')", dbFailOnError
Set cdb = Nothing
Application.Quit
End Function
在数据库中创建一个宏来调用该函数:
创建 Windows 计划任务以使用适当的参数调用 MSACCESS.EXE
在上面的对话框中,值是:
程序/脚本:
"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE"
添加参数(可选):
C:\Users\Public\schedTest.accdb /x DoSomething
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)