Access VBA 添加引用重复
Posted
技术标签:
【中文标题】Access VBA 添加引用重复【英文标题】:Access VBA adding reference is duplicating 【发布时间】:2018-05-04 20:34:26 【问题描述】:我目前正在处理我的应用程序的主 Access 数据库,每当我使用 VBA 添加引用时,它似乎会使项目窗口下的引用翻倍。
下面是我正在使用的以下代码:
Private Sub AddRef()
Application.References.AddFromFile ("C:\Databases\Database2.accdb")
End Sub
如果我手动添加引用工具> 引用,它只会添加引用的一个实例。
如果我在另一个新数据库中使用这个确切的代码,它只会加载一次引用。
我知道 Access 数据库损坏并不是很难,这会是什么情况,或者有其他人遇到过这个问题并知道如何解决这个问题吗?
这是我刚刚创建并运行的过程,仍然在项目窗口中加倍。如果我去删除参考(工具菜单)它只显示一次
Private Sub Test2()
Dim ref As Reference
Dim refExists As Boolean
refExists = False With CurrentProject.Application.References
For Each ref In References
If ref.name = "ARS" Then
refExists = True
End If Next
End With
If refExists = False Then
CurrentProject.Application.References.AddFromFile (CurrentProject.Path & "\Sections\ARS.accdb")
End If
End Sub
2018 年 5 月 7 日更新: 所以我想出了谜题的另一部分。如果我将数据库移动到任何其他目录,则程序将正确运行,并且引用的数据库仅在项目窗口中出现一次。所以我不知道为什么它会在这个特定的目录中这样做,但至少当我进行更新时它不应该发生。
【问题讨论】:
如果条件检查引用是否存在然后添加呢? 看起来您可能已经回答了自己的问题。维修可能会解决它是合理的。 @Clint 所说的是调试目的的良好开端。 @Clint 我已经完成了一个 If Exists 程序,这似乎也在加倍。 @Jiggles32 我已经做了一个compact和repair,之后还是这样 @kpudlo,如果你只是在检查后添加它,怎么会有多个引用? 【参考方案1】:试试
If Dir("C:\Databases\Database2.accdb") <> "" And Not refExists("access") Then
Access.References.AddFromFile ("C:\Databases\Database2.accdb")
函数定义:refExists()
Private Function refExists(naam As String)
Dim ref As Reference
refExists = False
For Each ref In References
If ref.Name = naam Then
refExists = True
End If
Next
End Function
查看 TheLaurens 的答案:Add references programmatically
【讨论】:
我确实尝试过,它似乎没有通过 if 语句。我会在星期一回来工作时再看一遍。我还想知道循环通过 VBProjects 是否可行?以上是关于Access VBA 添加引用重复的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Access VBA 中声明对 ActiveX“ListView”控件的引用?