VBA 文件的版本控制

Posted

技术标签:

【中文标题】VBA 文件的版本控制【英文标题】:Version control for VBA file 【发布时间】:2009-03-19 13:21:08 【问题描述】:

我有一个带有内置 VBA 代码库的巨大 MS Access 文档。是否可以使用(mercurial)版本控制系统跟踪文件(正如我正在开发的那样)?我可以提取代码并跟踪它吗?或者它只是二进制文件路径?谢谢。

【问题讨论】:

可能想看看这个very similar question。 这个问题之前已经回答了至少....很多次了! 【参考方案1】:

MS Access 可以通过脚本导出大部分代码。我前段时间在这里发布了一些:

How do you use version control with Access development?

【讨论】:

【参考方案2】:

可以对二进制文件进行版本控制,但将代码分开会更简洁(IMO)。如果它对你有用,那么一定要做你该做的。

【讨论】:

如果你使用SCC控件,代码是分开的。每个对象(代码、表单等)都被视为一个单独的对象,您可以将其签入和签出构建。【参考方案3】:

这里有一个不错的工具https://github.com/hilkoc/vbaDeveloper。

它允许您轻松导出和导入所有 vba 代码,并且可以在您单击“保存”后立即自动执行此操作。 导出文件都是纯文本,然后您可以按照通常的方式将其放入版本控制中。

【讨论】:

【参考方案4】:

Access 一直到 2010 年都支持源代码控制,其中包括对团队基础服务器的支持。将所有文件放在一个 zip 文件、硬盘驱动器上的一个文件夹或一个名为 accDB 的容器中的事实是一个模拟题。只要每个单独的对象都可以被视为一个单独的对象,那么您为什么要关心使用的是 zip 文件还是 accDB 文件呢?这是一个“逻辑”视图与物理视图的问题。

简单的事情是访问中的每个对象都可以导出为文本对象。因此,自 Access 97(即 17 年以上!!)以来,Access 已经支持使用此功能与标准 Microsoft SCC 界面集成的源代码控制。

当您使用 SCC(例如 Visual Source safe 或 Team Foundation 服务器)时,Access 中的 BUILT IN UI 支持显示有问题的对象状态。您可以解决表单、报表、sql 查询和代码模块级别的问题。因此,多个开发人员可以同时在应用程序上工作。他们只需要查看他们正在处理的表格、报告查询等。因此,每个开发人员都有自己的本地构建。

如果使用 Visual Source Safe,您会在功能区中看到:

如果您使用团队基础服务器,那么您会看到:

对于检出的对象,您会看到:

当您打开甚至右键单击某个对象时,您会看到以下附加选项:

当然,鉴于“很少”使用此功能甚至知道它是什么(SO 上的帖子证实了这种知识的缺乏),那么这些年来,Access 2013 中删除了该功能就不足为奇了! .然而,一些第 3 方插件声称可以恢复此功能。因此,在 2013 年将对象导出为单个文本文件的功能仍然存在。

【讨论】:

访问 97(即 17 年以上!!)。请不要再这样指出这一点。我老了。

以上是关于VBA 文件的版本控制的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Access 开发中使用版本控制?

如何在 Access 开发中使用版本控制?

将包含一些空值的CSV文件读入VBA数组

excel版本越高VBA运行速度越慢,为啥?

版本控制

关于版本控制