通过批处理文件(或类似文件)在Access上运行VBA

时间:2014-02-28 16:37:11

标签: ms-access

我有一个外部提供给我的数据库。不幸的是,他们错误地制作了一堆字段备忘录文本而不是短文本(我需要做JOINs的字段)并且似乎无意纠正他们的错误(毕竟这是英国政府数据库)。

我已经编写了一些VBA来将许多备忘录字段转换为短文本。

我将一直获得此数据库的新版本,因此我无法将转换脚本存储在数据库中。

为了节省一点时间,是否有办法使用类似.bat文件的方式在数据库上运行此vba脚本?

我知道,例如,我可以使用:

通过.bat打开Access 2013
"C:\Program Files\Microsoft Office\Office15\MSACCESS.EXE" "C:\myfilepath\myfile.mdb"

但是我找不到很多关于用VBA编写的脚本是否可以随后通过打开的数据库上的.bat运行的信息(特别是如果脚本尚未写入数据库)。

1 个答案:

答案 0 :(得分:3)

您可以将所有自定义脚本存放在您创建的另一个Access文件中。每次从任何可以将这些表链接到“脚本数据库”并在那里运行代码的地方获得新数据库。您甚至可能不需要链接。您可能只需要新数据库的文件路径。

是的,VB.NET是一个很好的解决方案,但您已经在VBA中编写了代码,您可以将其保存在VBA中。 Access通常不关心它是否对其自己的文件或其他文件中的表/数据起作用。

您可以像这样

获取另一个Access文件的句柄
Dim db As DAO.Database
Dim wksp As DAO.Workspace
Set wksp = CreateWorkspace("AccessWorkspace", "admin", "", dbUseJet)
Set db = wksp.OpenDatabase("your file path")

现在您可以使用db变量,就好像您有Set db = CurrentDb这样的圆顶。更改表defs,执行查询等...

您需要做的就是在“脚本数据库”上使用文本框和文件选择器功能制作仪表板表单。然后在按钮上单击使用文本框中的文件路径来获取其他数据库的句柄。执行您正常编写的代码。