如何在MS Access中使用外部VBA源代码?

如何在MS Access中使用外部VBA源代码?,vba,ms-access,Vba,Ms Access,我正在编写一个VBA脚本,以便将数据从Access数据库导入远程数据库服务器。(它恰好是PostgreSQL,但我认为这与此无关。)目前,我的脚本嵌入到Access数据库中。但是,我希望像我对其他源代码一样对脚本进行版本设置:以纯文本形式,这样SVN就可以很好地跟踪更改 我还希望不必将源文件交付给客户机,以便他们使用脚本。换句话说,我想提供已经编译到Access数据库中的导入工具。有可能吗 还是我追错了兔子?有没有一种方法可以不用在Access数据库中嵌入任何代码就可以使用Access库?我的研

我正在编写一个VBA脚本,以便将数据从Access数据库导入远程数据库服务器。(它恰好是PostgreSQL,但我认为这与此无关。)目前,我的脚本嵌入到Access数据库中。但是,我希望像我对其他源代码一样对脚本进行版本设置:以纯文本形式,这样SVN就可以很好地跟踪更改

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


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

如果你不想在Access中做这件事,你可能想用不同的标记


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

我想我犯了错误(我想我使用的是一个不存在的习惯用法)。原来有一些用于Office的.NET互操作DLL。我的机器似乎已经在Office中安装了.NET interop DLL,所以我所要做的就是添加对
Microsoft.Office.interop.Access
DLL的引用,并创建一个应用程序对象:

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

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

不,我主要关心的是必须完成的所有文件洗牌。如果客户端只需要处理一个文件,那么就更简单了。如果您能推荐一些标记,我将非常感激。请看一下Access中的Shell()命令。您必须确保每次都将VB脚本分发到相同的位置,但这似乎是一件非常简单的事情。我使用此功能从Access内部启动应用程序,包括FTP文件传输。我不确定你是否在乎有人能找到你的导出函数,如果他们足够好奇的话,但它会满足你的要求。“我在写VBA脚本”这就是我开始感到困惑的地方。VB有几种风格。你到底在用什么?“我的脚本嵌入到Access数据库中。”更让人困惑!“我希望提供已编译到Access数据库中的导入工具。”这正是VBA(Visual Basic for Applications)的操作方式。您能否解释一下当前解决方案中的代码位于何处、在何处运行以及如何运行。不要害怕写很多东西来弄清楚你现在在做什么。我认为“VBA”是VB的一个变种,也就是与Office相关的一个Access数据库文件当前保存着我的脚本?我正在使用内置的脚本编辑器进行访问(目前在表单按钮后面)。至于编译到数据库中的工具,如果我有办法让脚本位于mdb文件的外部,情况可能就不是这样了;不我还悄悄地想知道你是不是想评论这个问题而不是答案。