Access VBA добавление ссылки дублирует - PullRequest
0 голосов
/ 04 мая 2018

В настоящее время я работаю с основной базой данных 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

Обновление 5/7/18: Так что я выяснил еще одну часть головоломки. Если я переместлю базы данных в любой другой каталог, процедуры будут работать правильно, и ссылка на базу данных появится только один раз в окне проекта. Так что я не знаю, почему он делает это в этом конкретном каталоге, но, по крайней мере, этого не должно происходить, когда я делаю обновления живыми.

1 Ответ

0 голосов
/ 05 мая 2018

Попробуйте

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: Добавить ссылки программно

...