【问题标题】:Version control for Microsoft Access development?Microsoft Access 开发的版本控制?
【发布时间】:2010-02-12 17:48:41
【问题描述】:

我们最近看到了这篇文章:

How do you use version control with Access development?

然后,我们根据该帖子中的示例编写了一个 .vbs 脚本来分解一个 .mdb MS Access 文件。

问题是,当我针对 .mdb 文件运行脚本时,出现错误:

decompose.vbs(71, 5) (null):Microsoft Office Access 无法打开数据库,因为它丢失或被其他用户以独占方式打开。

嗯,它没有丢失,也没有被其他用户打开。并且没有与之关联的锁定文件。

知道出了什么问题吗?

或者有没有更容易分解我们的 Access 数据库以便在我们的版本控制软件中使用?

【问题讨论】:

  • 看不到代码的时候很难调试vbScript。

标签: ms-access version-control


【解决方案1】:

如前所述,Access mdb 或 accdb 本身并不是一个在版本控制下设置的好主意,因为它的二进制格式(无差异,无合并)。一旦有了单独的文件,您就可以使用任何版本控制系统,因为它们都能够处理文件。

Doug 发布的脚本仅提供代码的导出,这只是实现完整源代码控制/管理的一半。我推荐使用OASIS,它能够处理VBA源代码从Access到单个文件和v.v.的交换

作为版本控制系统,我首选的是Mercurial,但这当然取决于您的个人需求。周围还有SubversionGit 之类的,而且都是免费的。

【讨论】:

  • VSS 端到端处理 Access 文件,所以,你说的并不完全正确。
  • @David-W-Fenton:“端到端”是什么意思?我哪里弄错了?
  • 您无需编写任何程序即可重建最新版本。
  • 没错!我指的是 Doug 发布的链接 (accessmvp.com/Arvin/DocDatabase.txt),它只提供导出功能。我会澄清一下我的答案。
【解决方案2】:

就像 Cat Man Do 所说,您可以将 VSS 与开发人员工具一起用于源代码控制。如果您正在寻找更强大的源代码控制,您还可以使用 Team Foundation Server (TFS)。您需要安装 Team Foundation Server MSSCCI Provider 2010:http://visualstudiogallery.msdn.microsoft.com/bce06506-be38-47a1-9f29-d3937d3d88d6

这将允许您从 Access 2007/2010 执行 TFS 签入/签出。

【讨论】:

    【解决方案3】:

    来自文件头:

    ' 注释:使用未记录的 [Application.SaveAsText] 语法 '
    要重新加载,请使用语法 [Application.LoadFromText]

    【讨论】:

      【解决方案4】:

      我使用这个工具: https://github.com/joyfullservice/msaccess-vcs-integration

      它都是开源的,用 Access 编写的。它像插件一样工作。您将一个模块添加到包含设置的数据库中。该模块包含加载版本控制库的代码,并在工具栏上添加按钮以进行代码导出。超级快速且易于使用。如果您对此有任何问题,可以在 Github 中提出问题。

      【讨论】:

        【解决方案5】:

        好的。

        我的老板发现了这个: http://www.accessmvp.com/Arvin/DocDatabase.txt

        它有效..

        我们向 Access 应用程序添加了一个新宏并运行了新宏。

        轰隆隆。

        所有内容都写入我们的目录。

        所以

        【讨论】:

        • 呃,这是您第二次发布此内容,并且您再次引用要在 Access 中运行的代码,而请求是从 VBScript 运行它。简而言之,Arvin 的代码很棒,但它只是开始为所述问题提供解决方案。