3

我正在编写一个 VBA 脚本来将数据从 Access 数据库导入到远程数据库服务器。(它恰好是 PostgreSQL,但我认为这不是很相关。)目前,我的脚本嵌入在 Access 数据库中。但是,我想像对其他源代码一样对我的脚本进行版本控制:作为纯文本,因此 SVN 可以为我提供良好的更改跟踪。

我也希望不必将源文件交付给客户端以供他们使用脚本。换句话说,我想交付已经编译到Access数据库中的导入工具。有可能这样做吗?

还是我追错了兔子?有没有一种方法可以在不将任何代码嵌入到 Access 数据库中的情况下使用 Access 库?我的搜索表明不是,但我对这种可能性持开放态度。这是我用 VBA 做的第一件事,所以有很多我不知道,我敢肯定。

4

2 回答 2

2

我想我走错了兔子洞(我想我使用了一个不存在的成语)。原来有一些适用于 Office 的 .NET 互操作 DLL。我的机器似乎已经与 Office 一起安装了 .NET 互操作 DLL,所以我所要做的就是添加对Microsoft.Office.Interop.AccessDLL 的引用并创建一个应用程序对象:

var app = new Microsoft.Office.Interop.Access.Application();

我认为 .NET 应用程序将更适合我的需求。我不会做很多访问特定的事情。这将允许我像往常一样将我的源代码置于版本控制之下。唯一的缺点是任何开发机器(和构建服务器,如果我自动构建)都需要安装 Access,但无论如何,这将通过 VBA 脚本发生。

于 2013-05-29T00:12:42.020 回答
0

如果您不想在 Access 中执行此操作,则可能需要以不同的方式对其进行标记。

您可以将数据库作为 MDE 文件交付给客户端,该文件是已编译的独立 Access 数据库。如果这是您主要关心的问题,客户端将无法看到这种格式的模块或其他 VBA 代码。

于 2013-05-28T20:37:27.417 回答