extraire le chemin d'un table attaché en VBA

6 réponses
Avatar
dumgest
bonjour

je ne trouve pas comment extraire le chemin d'un table attach=E9 en VBA sou=
s Acc2007

je suis sur que cela dois =EAtre quelques part, non ??

mer=E7i de votre aide pour trouver le chemin...

remdumdum

6 réponses

Avatar
db
Le 29/12/2014 15:56, a écrit :
bonjour

je ne trouve pas comment extraire le chemin d'un table attaché en VBA sous Acc2007

je suis sur que cela dois être quelques part, non ??

merçi de votre aide pour trouver le chemin...

remdumdum




Bonsoir,

Si c'est une table liée dans une base Access distante, la base distante
et son chemin sont récupérés de la façpn suivante :
Base=DLookup("Database", "mSysObjects", "name='nom_de_la_table' and type=6")
Reste plus qu'à extraire le chemin.

db
Avatar
dumgest
merci de votre reponse, mais je reformule

j'ai un database de facade avec des tables attachées dans une seconde dat abase qui peut être situé n'importe où par l'utilisateur. (Hd, clef u sb, cloud)
je voudrais a la fermeture de la database de facade, faire une sauvegarde d e la seconde database contenant les tables sur le c: de l'utilisateur.
mais il faut que je recupere le chemin de la seconde database dans une tabl e attaché !!

avec votre solution "database" est le chemin de la table attaché ?
Avatar
db
Le 30/12/2014 07:56, a écrit :
merci de votre reponse, mais je reformule

j'ai un database de facade avec des tables attachées dans une seconde database qui peut être situé n'importe où par l'utilisateur. (Hd, clef usb, cloud)
je voudrais a la fermeture de la database de facade, faire une sauvegarde de la seconde database contenant les tables sur le c: de l'utilisateur.
mais il faut que je recupere le chemin de la seconde database dans une table attaché !!

avec votre solution "database" est le chemin de la table attaché ?




Base=DLookup("Database", "mSysObjects", "name='nom_de_la_table' and type=6")

Base contient le nom du fichier mdb distant (celui qui contient les
tables attachées) avec son chemin. Par exemple : D:Mes
DocumentsTravailTables.mdb

Mais le mieux est d'essayer pour voir ce que ça donne, non ?

db
Avatar
dumgest
je test, mais j'ai une erreur de syntax
voilà ma function

Function DumCopieC()

On Error GoTo DumCopieC_Err

Dim espDefault As Workspace, bds As Database
Dim dumo, dumd, base As String
Dim dbs As Database


'test si datacopy.accdb existe
dumo = "c:dumargestdatacopy.accdb"
If Dir([dumo]) <> "" Then Kill dumo

DoEvents

Set dbs = CurrentDb

dumd = "c:dumargestdumargest.accde"
base = DLookup("dbs", "adress", "adress and type=6")

' crée datacopy.accdb
FileCopy base, dumo

Beep


DumCopieC_Exit:
Exit Function

DumCopieC_Err:
MsgBox Error$
Resume DumCopieC_Exit

End Function
Avatar
db
Le 30/12/2014 10:11, a écrit :
je test, mais j'ai une erreur de syntax
voilà ma function



Remplacez : base = DLookup("dbs", "adress", "adress and type=6")

par :

base=DLookup("Database","MSysObjects","name='adress' and type=6")

MsysObjects est le nom de la table système d'Access
Database est le nom du champ de la table MsysObjects qui contient le nom
de la base distante
name='adress' and type=6 : condition (Where) qui sert à trouver la bonne
ligne dans la table MSysObjects


db
Avatar
dumgest
d'où la simplicité de votre réponse du début !!

ça marche !! grand merci d'avoir aidez petit scarabée à trouver le ch emin !!

remdumdum


Function DumCopieC()

On Error GoTo DumCopieC_Err

Dim dumo, base As String


'test si datacopy.accdb existe
dumo = "c:dumargestdatacopy.accdb"
If Dir([dumo]) <> "" Then Kill dumo

DoEvents

base = DLookup("Database", "MSysObjects", "name='adress' and type =6")

' crée datacopy.accdb
FileCopy base, dumo

Beep


DumCopieC_Exit:
Exit Function

DumCopieC_Err:
MsgBox Error$
Resume DumCopieC_Exit

End Function