reneemettrie
Terugkerende gebruiker
- Lid geworden
- 1 aug 2006
- Berichten
- 1.233
Ik heb een access DB, gebruikt in Office 2016, met een referentie naar de Excel bibliotheek omdat ik de round functie van Excel wil aanspreken. (Probleem geldt natuurlijk ook voor ref naar andere Office programma's)
Open ik dat in Office 2010, dan mankeert natuurlijk de library van Office 2010.
Nu zou ik met VBA de foutieve bib willen verwijderen en de juiste toevoegen (ik ga niet werken met late binding)
Voor ik dit ga uitwerken zou ik willen weten of volgende een goede benadering is?
Ik zou een dergelijke code gebruiken om een foute bib op te sporen en te verwijderen:
Voor het toevoegen zou ik iets dergelijks willen gebruiken (gevonden op Internet, ga ervan uit dat Excel op de C drive staat:
Open ik dat in Office 2010, dan mankeert natuurlijk de library van Office 2010.
Nu zou ik met VBA de foutieve bib willen verwijderen en de juiste toevoegen (ik ga niet werken met late binding)
Voor ik dit ga uitwerken zou ik willen weten of volgende een goede benadering is?
Ik zou een dergelijke code gebruiken om een foute bib op te sporen en te verwijderen:
Code:
If References("Excel").IsBroken Then
References.Remove References("Excel")
End If
Voor het toevoegen zou ik iets dergelijks willen gebruiken (gevonden op Internet, ga ervan uit dat Excel op de C drive staat:
Code:
If Dir("C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe") <> "" And Not refExists("excel") Then
Access.References.AddFromFile ("C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe")
End If
If Dir("C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.exe") <> "" And Not refExists("excel") Then
Access.References.AddFromFile ("C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.exe")
End If
If Dir("C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe") = "" And Dir("C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.exe") = "" Then
MsgBox ("ERROR: Excel not found")
End If
And the refExists references the following function:
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