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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Sub mettreAJourLien(DernierLien, CheminCourant)
(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 ?)
voila ma modeste contribution.
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
fevec
Partager