Ms access MS Access-对不同数据库的引用

Ms access MS Access-对不同数据库的引用,ms-access,reference,external,ms-access-2016,Ms Access,Reference,External,Ms Access 2016,在Access数据库(CurrentDB)的VBA代码中,我打开了另一个数据库(通过Application.DBEngine.OpenDatabase(…)) 我想更新第二个数据库中的一些库引用。但由于引用对象是应用程序对象的属性(而不是我认为应该是数据库对象的属性) 我只能列出和更改CurrentDB的引用,而不能更改第二个。 知道如何访问第二个数据库的引用吗 安德烈,谢谢你的第一个回答,这真的让我更进一步了!现在我面临下一个问题:我打开第二个数据库,删除所有断开的引用(它们真的消失了),关闭

在Access数据库(CurrentDB)的VBA代码中,我打开了另一个数据库(通过
Application.DBEngine.OpenDatabase(…)

我想更新第二个数据库中的一些库引用。但由于引用对象是应用程序对象的属性(而不是我认为应该是数据库对象的属性)

我只能列出和更改CurrentDB的引用,而不能更改第二个。 知道如何访问第二个数据库的引用吗

安德烈,谢谢你的第一个回答,这真的让我更进一步了!现在我面临下一个问题:我打开第二个数据库,删除所有断开的引用(它们真的消失了),关闭第二个数据库——当我再次打开它时,断开的引用又回来了。这是我的密码:

Set appAccess = CreateObject("Access.Application") 
With appAccess 
  Call .OpenCurrentDatabase(sPathMasterDb, False)  
  ' It makes no difference if I use the next two statements or not:
  .Visible = True     
  .UserControl = True 

  Call deleteBrokenReferences(appAccess) 

  .CloseCurrentDatabase 
End With 
Set appAccess = Nothing 


Private Sub deleteBrokenReferences(app As Application)
  Dim aRef As Access.Reference
  
  If app.BrokenReference Then
    For Each aRef In app.References
      If aRef.IsBroken Then
        app.References.Remove aRef
      End If
    Next aRef
  End If
End Sub
在调用“deleteBrokenReferences”之后,我在一个新的MS Access实例中打开了第二个数据库,断开的引用消失了。但是在执行“.CloseCurrentDatabase”之后,它们又回来了


是否有可能在关闭第二个数据库之前保存更改?

我出现问题的原因是三个相互依赖的数据库都不能以独占方式打开。我通过创建一个新的数据库来解决这个问题,该数据库分别打开三个数据库中的每一个,并执行代码引用和表链接的更新。但再一次:感谢安德烈的宝贵意见

您可以尝试设置appAccess=CreateObject(“Access.Application”)并使用该对象。谢谢!现在我面临下一个问题:我打开第二个数据库,删除所有断开的引用(它们真的消失了),关闭第二个数据库——当我再次打开它时,断开的引用又回来了。下面是我的代码:使用appAccess调用.OpenCurrentDatabase(sPathMasterDb,False)设置appAccess=CreateObject(“Access.Application”)。Visible=True。UserControl=True调用deleteBrokenReferences(appAccess).CloseCurrentDatabase End With Set appAccess=无法保存更改?请编辑您的问题并在此处添加代码,同时添加
DeleteBrokerReferences()
Hi Andre,我试图将第二条注释转换为更可读的形式-我将其插入了第一个问题中。是的,我注意到了。这是一个好问题,但我不知道答案(-添加了相关标签。