【问题标题】:Access 2007 SCM over multiple databases通过多个数据库访问 2007 SCM
【发布时间】:2011-04-14 18:58:23
【问题描述】:
我正在寻找一种在多个 Access 07 数据库上实施 SCM 的方法。我们只需要表单/代码的源代码控制。
基本上,我们有 100 多个数据库,它们的结构相同,使用相同的代码/模块,但每个数据库只包含一个客户的数据。当我们进行代码更改时,我们目前必须手动检查每个文件以进行更改。
有没有人为类似的东西实施了源代码控制(如果有,请上帝帮助你)或有什么想法?
PS - 我意识到这里有很多 DailyWTFery,这是一个遗留产品,在我们重写为 .NET/MSSQL 之前,我被分配做一些紧急维护,但我认为有足够的工作来保证把它如果可能的话就到位。
【问题讨论】:
标签:
ms-access
version-control
vba
ms-access-2007
【解决方案1】:
您可以在this question了解更多如何做SCM;它确实涉及使用一些未记录(或记录不充分)的命令导出和导入代码和表单。我还记得您使用该方法时发生的校验和或版本号问题。
但是,您可以通过将 DB 的数据和应用程序端分离到单独的文件中,然后将表链接从应用程序 DB 添加到数据 DB 来解决这个问题。那么您将只有一个应用程序数据库和大量客户端数据数据库。
切换到不同的客户端就像重新链接到另一个数据库一样简单。
您可以手动执行此操作,也可以使用如下结构对其进行编码:
Dim myTable As TableDef
Dim db As Database
dim strDBPath as string
strDBPath = ";DATABASE=C:\workbench\MyNewDB.mdb"
Set db = CurrentDb
db.TableDefs.Refresh
For Each myTable In db.TableDefs
If Len(myTable.Connect) > 0 Then
myTable.Connect = strDBPath
myTable.RefreshLink
End If
Next
'' Note: This whips through every table in your database and re-links it to the new
'' DB. ODBC links will have a different value for strDBPath - I'll leave that as
'' and exercise for the reader