Bonjour à tous,
Je me glisse dans la fin de cette discussion, pour savoir en quelle(s) version(s) fonctionne le code proposé (97,2000,2002,2007 ?)
Si c'est du 97, et que le but de la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Public Sub mettreAJourLien(DernierLien, CheminCourant)
est de recréer tous les liens existants pour l'ensemble des tables attachés, j'ai eventuellement un code plus simple, avec boucle, ce qui évite de citer toutes les tables
(je n'ai fait qu'adapter un code trouvé sur le net, mais c'est celui que j'utilise)

(mais peut être que ta méthode est plus rapide que la mienne ?)


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
Function ModifAttache(strDBPath)
' Modification simple des attaches
' sur le modèle de fGetLinkPath de Dev Ashish
' 21/07/2005
    Dim vieuxnom As String, stPath As String
    Dim loTd As TableDef
    Dim dbs As Database
    Dim I, nb As Integer
    I = 0
    CurrentDb.TableDefs.Refresh
    ' nb de table
    nb = CurrentDb.TableDefs.Count
    For Each loTd In CurrentDb.TableDefs
        On Error Resume Next
       stPath = dbs.TableDefs(loTd.Name).Connect
       If stPath = Null Then
        Else
            I = I + 1
            vieuxnom = fGetLinkPath(loTd.Name)
            loTd.Connect = ";Database=" & strDBPath
            loTd.RefreshLink
        Debug.Print loTd.Name; " "; fGetLinkPath(loTd.Name); " à la place de : "; vieuxnom
        End If
    Next loTd
    Set loTd = Nothing
    CurrentDb.TableDefs.Refresh
    MsgBox "Terminé." & vbCrLf & I & " tables attachées pointent désormais vers la base de données " & strDBPath, vbOKOnly, "Procédure terminée avec succés"
End Function
voila ma modeste contribution.

fevec