Bonjour,
lors de l'ouverture de mon application, j'ai su code qui me permet de détecter si la base de données contenant les tables de base a été déplacé, si oui je repointe les tables au bon endroit.
Cela marche seulement quand je met le chemin d'accès statiquement(code en dur). Dès lors que j'utilise une variable, ça ne marche plus.Voici le code:

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
Private Sub Image23_Click()
 
Dim cheminBase As String 'nouveau chemin pour accéder à la base de données
Dim db As Database 'base de données courante
 
DoCmd.Close
 
Set db = CurrentDb
'//////////////////////////////////////////////////
On Error GoTo gererErreurChemin
 
    DoCmd.OpenForm "Menu accueil" '......was there before
 
exit_gererErreur:
        Exit Sub
 
gererErreurChemin:
 
    If Err.Number = 3024 Then ' le fichier qui contient la base de données(tables liées) a été déplacé
 
        'afficher l'explorateur pour parcourir le disque et prendre la base de données
        With Application.FileDialog(msoFileDialogOpen)
            .AllowMultiSelect = False
            .Show
            cheminBase = .SelectedItems(1) 'mettre le nom du fichier sélectionner dans une zone de texte
 
        End With
 
        'MsgBox "Nom de la base sélectionnée " & cheminBase
 
        'Module_Utilitaires.lier_Tables cheminBase 'lier les tables en utilisant le nouveau chemin
 
            For Each Tb In db.TableDefs
 
                If Left(Tb.Name, 4) <> "MSys" Then
 
                    If Tb.Connect <> "" Then
                        'Tb.Connect = ";Database=C:\Documents and Settings\Administrateur\Bureau\Copies\maBase.mdb"
                        Tb.Connect = ";Database=" & cheminBase
                        Tb.RefreshLink
                    End If
                End If
            Next
    Else
        MsgBox Err.Description
    End If
 
 '////////////////////////////////////////////////////////////
 db.Close
 Set db = Nothing
merci d'avance pour votre aide.