Ms access 断开指向引用数据库的链接
我正在使用两个Access 2010数据库。一个保存在我们公司的文件服务器上,另一个保存在本地的多台PC上。我想将我的VBA代码存储在网络数据库中,并将该文件用作本地副本的参考库。但是,通过该配置,只要本地副本处于打开状态,网络文件就会被锁定以进行编辑。使用VBA,是否可以在不关闭本地文件的情况下断开两个文件之间的链接 为了找到解决方法,我设置了一个测试环境,如下所示:Ms access 断开指向引用数据库的链接,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我正在使用两个Access 2010数据库。一个保存在我们公司的文件服务器上,另一个保存在本地的多台PC上。我想将我的VBA代码存储在网络数据库中,并将该文件用作本地副本的参考库。但是,通过该配置,只要本地副本处于打开状态,网络文件就会被锁定以进行编辑。使用VBA,是否可以在不关闭本地文件的情况下断开两个文件之间的链接 为了找到解决方法,我设置了一个测试环境,如下所示: 在C:\DB Test\ 本地数据库accdb 网络数据库accdb 将模块LocalCode添加到localdb.acc
- 本地数据库accdb
- 网络数据库accdb
- 此参考将网络DB添加到我的VBA编辑器的项目列表中,就好像文件已打开一样
公共子ClearDBReference()
作为字符串的Dim DBFile
作为VBIDE.VBProject的Dim项目
尺寸参考作为访问参考
DBFile=“C:\DB Test\Network DB.accdb”
对于应用程序中的每个引用。引用
如果Ref.FullPath=DBFile,则
'已成功删除库
'对网络数据库的引用
Application.References.Remove Ref
退出
如果结束
下一个
对于Application.VBE.VBProjects中的每个项目
如果Proj.FileName=DBFile,则
'运行时错误'440':方法'Remove'
对象“”的“”失败
Application.VBE.VBProjects.Remove Proj
如果结束
下一个
Set Ref=无
设置项目=无
端接头
当我执行
ClearDBReference
时,它成功地删除了对C:\DB Test\Network DB.accdb的库引用,但无法删除Network DB的项目。这两个文件之间好像有一个重影链接,但我不确定是什么原因造成的,或者下一步要尝试什么。是否有任何原因导致两个数据库都不能位于服务器上
一个稍有不同的场景,但我们总是将前端和后端放在带有accdb的服务器上——这样就不会出现网络退出的问题。还可以提高性能并消除在本地PC上备份文件的需要。我不完全确定我是否理解您的情况,但听起来您只是指前端(FE)应用程序/数据库 如果是这样,您可以为本地机器创建一个存根应用程序,每次运行时只将FE复制到用户的机器上,打开真正的FE应用程序,然后存根应用程序关闭 这样,服务器上的“主机”就永远不会被锁定。当然,您不会修改这个文件,而是处理一个dev副本,然后替换服务器上的主文件
另外,“主文件”应该是accde文件。谢谢您提出的格式良好的好问题。欢迎来到堆栈溢出!取消选中“文件>>选项>>当前数据库可能?”下的“打开独占”选项@enderland感谢您的夸奖。很荣幸。@ckuhn203我在“文件>>选项>>当前数据库”下没有看到“打开独占”选项。如果先删除VBA项目引用,会发生什么情况?不幸的是,您的建议无法解决根本问题。如果有人打开前端文件,它仍将被锁定以进行编辑。而且,在做出任何改变之前,它必须关闭。我想要的是一种在本地/网络数据库之间切换链接的方法。你提出了一个非常有创意的想法。不幸的是,这个问题的项目被搁置,我目前无法执行任何进一步的测试。当我们重新开始这个项目时,我会确保我能把它做好。