Bonjour à tous et merci de votre temps et de votre aide.

J'ai besoin de la (très belle) librairie d'arkham46 pour accéder à TGL+.
Ici le lien :
https://arkham46.developpez.com/articles/access/libtgl/
J'ai donc mis la BD dans le répertoire de l'appli.

Mon problème est que je dois ajouter une référence
et l'emplacement pour mon développement n'est pas le même que celui de développement que mon client
qui lui même à 3 emplacements de production sur des machines différentes.
Bref j'ai 4 répertoires possibles pour la librairie.

J'ai donc écrit le code suivant qui marche très bien si :
  • La librairie est là où la référence l'attend.
  • La référence n'est pas encore créée.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Public Sub AjouterReferenceLibTGL()
    'Ajoute la référence à la librarie de gestion des images
    If Not MODE_DEBUG Then
        On Error GoTo Err_AjouterReference
    End If
 
    Dim estTrouve As Boolean
    Dim infoFichier As New CInfoFichier
    infoFichier.SupportRepertoire = CurrentProject.Path
    infoFichier.NomExtension = "LibTGLplus.mdb"
 
    Dim r As Reference: For Each r In References
        Debug.Print r.Name
 
        If r.Name = "LibTGL" Then
 
                estTrouve = True
 
                If Not r.IsBroken Then
                        Debug.Print , r.FullPath
                    Else
 
                        If Dir(infoFichier.SupportRepertoireNomFichierExtension) <> "" Then
                                Call References.Remove(r) 'Supprime la référence
                                References.AddFromFile (infoFichier.SupportRepertoireNomFichierExtension)
                            Else
                                Call Err.Raise(5, , Error$(5) & " - Librairie [" & infoFichier.SupportRepertoireNomFichierExtension & "] manquante.")
                        End If
                End If
 
                Exit For
 
        End If
 
    Next r
 
    If Not estTrouve Then
 
        If Dir(infoFichier.SupportRepertoireNomFichierExtension) <> "" Then
                References.AddFromFile (infoFichier.SupportRepertoireNomFichierExtension)
            Else
                Call Err.Raise(5, , Error$(5) & " - Librairie [" & infoFichier.SupportRepertoireNomFichierExtension & "] manquante.")
        End If
 
    End If
 
Exit_AjouterReference:
    Exit Sub
 
Err_AjouterReference:
    Select Case Err.Number
        Case Else
            Call AfficherMessErrStandard(Err)
    End Select
 
    Resume Exit_AjouterReference
End Sub
MAIS Access ne l'exécute même pas si la référence est brisée !

J'aimerai vraiment que la reconfiguration se fasse automatiquement mais je ne vois pas de moyen d'y parvenir.

Quelqu'un aurait-il une idée ?

Peut-être un CreateObject mais quelle est la syntaxe pour une BD ?

A+