Bonjour à tous,
En mettant en oeuvre la FAQ Rétablir les liaisons des tables liées après déplacement d'une base fractionnée (http://access.developpez.com/faq/?pa...#RetablLienTbl), j'ai un petit soucis.
Avec le code suivant, je défini le chemin de ma base (relatif à la base "exploitante"), défini la connexion sans mot de passe, connecte la base puis lance la mise à jour des liens:
A l'exécution de la ligne oDb.TableDefs.Append oTbl, ça bloque dès la liaison de la 1e table avec le message suivant:
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 strCheminBd = CurrentProject.Path & "\Ressources\base_gningnin.mdb" 'Définit la chaine de connexion permettant la liaison des tables strConnect = "MS Access;;DATABASE=" & strCheminBd 'Instancie l'objet Database de la base courante Set oDb = CurrentDb 'Instancie l'objet Database de la base protégée Set oDbSource = DBEngine.OpenDatabase(strCheminBd, True, False, strConnect)For Each oTblSource In oDbSource.TableDefs 'ignore les tables system If (oTblSource.Attributes And dbSystemObject) = 0 Then strTemp = strTemp & oTblSource.Name & "|" End If Next 'Ferme la base de données sources (impératif pour la liaison) oDbSource.Close: Set oDbSource = Nothing 'parcours le tableau de noms de tables strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|") For i = 0 To UBound(strNomsTables) 'Crée une nouvelle table dans la base de données courante Set oTbl = oDb.CreateTableDef(strNomsTables(i)) 'Lie les deux tables oTbl.Connect = strConnect oTbl.SourceTableName = strNomsTables(i) 'Ajoute la table à la base de données oDb.TableDefs.Append oTbl Next iCe code écrase-t-il les table ou met-il à jour les liens?Erreur d'exécution '3012': L'objet 'D_ACT_HUM' existe déjà
Bon sang, c'est pas possible: je suis tellement blonde que je suis pas fichue d'appliquer une FAQ...
Partager