Ms access 在MS Access上与多个程序员协作

Ms access 在MS Access上与多个程序员协作,ms-access,version-control,Ms Access,Version Control,您是否建议在MS Access应用程序上与多个程序员协作 我们的一个MS Access应用程序已经发展到这样一个地步:在请求的时间范围内,一个程序员无法再处理更改(错误修复)和新功能的数量 我们正试图在VBA中使用未记录的SaveAsText和LoadFromText过程引入版本控制,以便在此应用程序上进行协作。不幸的是,我们在将修改后的表单和报表加载回Access时遇到了问题,因为校验和存储在每个表单文本文件中 在花时间构建导入/导出应用程序以将文本文件编译到Access数据库之前,我们希望听

您是否建议在MS Access应用程序上与多个程序员协作

我们的一个MS Access应用程序已经发展到这样一个地步:在请求的时间范围内,一个程序员无法再处理更改(错误修复)和新功能的数量

我们正试图在VBA中使用未记录的SaveAsText和LoadFromText过程引入版本控制,以便在此应用程序上进行协作。不幸的是,我们在将修改后的表单和报表加载回Access时遇到了问题,因为校验和存储在每个表单文本文件中


在花时间构建导入/导出应用程序以将文本文件编译到Access数据库之前,我们希望听听您的建议。

听起来是一种非常痛苦的团队开发方式。如果您有任何移植到另一个环境(如VS2008)的选项,那将是我的建议


作为一个团队处理Access没有简单的方法,甚至版本控制也可能有点棘手。

我认为您应该不惜一切代价避免这种做法,并尝试说服管理层进行重新开发


这是一个难以下咽的苦果,但这迟早需要重新开发,而你只是在为他们节省时间和金钱。

看看这个帖子:


我们使用微软自己的MS Access 2000/2002/2003版本控制外接程序已经有5年了,我不记得有一个严重的问题。这个插件的可用性几乎不值得一个“B”,但它必须比摆弄任何涉及手动或半手动导出/导入访问表单、模块等的特殊方法要方便得多

我们一直使用VSS作为版本控制系统。没问题。但是,如果您有一些很好的理由来避免VSS,您可能有一些选择:

  • 我们使用的版本控制加载项不需要VSS。从理论上讲,它可以用于任何实现的版本控制系统。例如,当我们不得不让某人远程处理这个项目时,我们使用了SourceGear提供的SourceOffsite。Access版本控制加载项与此第三方产品配合得相当好(不是没有一些怪癖,但已经足够好了)。因此,如果您最喜欢的版本控制系统符合MSCCI,您可以尝试使用它

  • 现在微软已经拥有了Team Foundation Tungy,显然还有其他选项可以将MS Access和版本控制集成在一起。不过,我们没有探索这条道路。这可能是探索它的一个良好开端

希望这能有所帮助。:-)

另外,我不是微软Access的超级粉丝。事实上,我相当讨厌它作为用户前端的平台。如果我有选择的话,我会在昨天逃离它。:-)然而,我必须承认,这个版本控制外接程序的存在是使我们的旧Access+SQLServer项目的维护或多或少可以忍受的为数不多的事情之一。:-)

除此之外,我应该补充一点,整个系统运行得非常好。对于一个由3名程序员组成的团队来说,比较过程每周不到30分钟。让我们来描述一下

我们的访问程序基本上有两个版本:

“开发者版本”,里面有所有的东西。 我们每个人都开始使用开发人员版本的相同版本。当每个人修改或添加部分代码时,我们必须定期运行一些比较例程。为此,我们有一个对象导出例程,将其导出到一个公共“比较”文件夹。将对象(例如模块)导出为文本文件(saveAsText命令,不使用表格,请参见下文),它将与文件夹中现有的等效文本文件进行比较。如果文件相同,则不会导出任何文件。如果文件不同,则导出新模块时会将开发人员的姓名添加到文件名中(如果存在modquerys.txt,则会创建modquerys_philippe.txt…)。当然,如果文件夹中没有等效的.txt文件,则会在首次导出时创建该文件

在这段时间结束时,我们将在文件夹中获得以下文件

  • modquerys.txt,是模块的第一个“原始”,最后一个通用版本
  • modquerys_Philippe.txt,带有Philippe的修改
  • modquerys_Denise.txt,带有Denise的修改
  • 由于模块没有被其他开发人员修改,他们的导出没有导致创建特定的modquerys\u developerName.txt文件
  • 如果出于任何原因,Denise多次导出她的模块,则比较文件夹中只有最后一个版本
  • 然后,我们可以比较(使用“文本文件”比较器)不同的版本,并创建模块的“更新”版本。我们有一个屏幕,显示比较文件夹中的对象数量、每个对象的版本数量,甚至可以直接从开发人员界面打开文件比较器(我们使用“文件比较工具”,它具有命令行模式,然后可以直接从Access启动)

    表单比较问题非常特殊,因为我们的规则之一是在表单()中没有特定的代码。表格只是为了展示,所以通常我们甚至不比较它们。我们只需确保其中的每一个都只由一个人更新(这是非常合乎逻辑的)

    表比较问题(我们有本地表)只能在mdb文件之间进行。当我们为每个模块导出一个文本文件时,我们也为每个表导出一个mdb文件。我们有一个小程序,允许我们在结构级别或记录级别识别表差异

    在每个比较过程之后,子例程将使用比较文件夹中可用的所有对象,从头创建一个全新的干净mdb文件。这是新开发人员的版本。然后,每个开发人员都可以在自己的计算机上复制它