---Soumis par Dev Ashish---
Retrouver le chemin de la base de données possédant la table liée.
(Q) Il me faut connaître le nom et le chemin de la base de données à laquelle j'ai diverses tables liées, un peu comme un CurrentDb.Name pour les tables attachées. Comment y parvenir?
(A) Directement d'une entrée dans le fichier d'aide d'Access,
Propriété Connect: Assigner ou retourner une valeur qui fourni l'information au sujet de la source d'une connexion ouverte, une base de données ouvert, une base de données utilisée dans une requête indirecte (pass-through) ou d'une table liée. Pour les objets base de données, connexions, tables liées et définition de table (TableDef) non encore ajouté à la collection TableDefs, cette propriété est ouverte à l'écriture et à la lecture; pour les définition de requête et pour les tables de base, cette propriété ne peut être que lue..
Comme test, exécuter sListPath dans votre base de données. Noter que pour les tables locales, une ligne blanche apparaît alors que pour les tables liées, le chemin à leur base de données est imprimé dans la fenêtre d'exécution immédiate ( Debug window ).
Pour une utilisation générale, fournir le nom individuel de la table désirée à la fonction fGetLinkPath.
'*************** Code Start ************** ' Function fGetLinkPath(strTable As String) As String Dim dbs As Database, stPath As String Set dbs = CurrentDb() On Error Resume Next stPath = dbs.TableDefs(strTable).Connect If stPath = "" Then fGetLinkPath = vbNullString 'can change this to currentdb.name Else fGetLinkPath = right(stPath, Len(stPath) _ - (InStr(1, stPath, "DATABASE=") + 8)) End If Set dbs = Nothing End Function Sub sListPath() Dim loTd As TableDef CurrentDb.TableDefs.Refresh For Each loTd In CurrentDb.TableDefs Debug.Print fGetLinkPath(loTd.Name) Next loTd Set loTd = Nothing End Sub '*************** Code End **************