ms-access - Access VBA 添加引用重复
问题描述
我目前正在处理我的应用程序的主 Access 数据库,每当我使用 VBA 添加引用时,它似乎会使项目窗口下的引用加倍。
下面是我正在使用的以下代码:
Private Sub AddRef()
Application.References.AddFromFile ("C:\Databases\Database2.accdb")
End Sub
如果我手动添加引用Tools > References,它只会添加一个引用实例。
如果我在另一个新数据库中使用这个确切的代码,它只会加载一次引用。
我知道 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 日更新:所以我想出了谜题的另一部分。如果我将数据库移动到任何其他目录,则程序将正确运行,并且引用的数据库仅在项目窗口中出现一次。所以我不知道为什么它在这个特定的目录中这样做,但至少当我进行更新时它不应该发生。
解决方案
尝试
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 的答案:以编程方式添加引用
推荐阅读
- javascript - 从 Javascript 发送 JSON 数组并在 php 中接收值
- node.js - webContents.send 和 ipcRenderer.on 不工作
- python - Apache Beam Python 读取 .tgz 并解析为 BigQuery
- javascript - 使用来自的值填充模态
- sql - 无法在 Apex Oracle SQL/PL PLS-00103 中编译我的触发器
- git - Git是否更改了“!” .gitignore 的前缀行为?
- typescript - Electron TypeScript Parcel 第二个 BrowserWindow
- python - Python中列值的累积和循环重置每年特定月份的值
- c# - 如何选择列表框中的项目,以便列表框呈现所选项目的子数组
- php - 合并描述和附加信息。边框未延伸到内容