Retrouver automatiquement le chemin d'une base MDB

Le
Dom
Bonjour,

Dans un réseau Client-Serveur (avec un serveur Linux-Samba, et des stations
sous XP Pro Sp2), est-t'il possible via du code VBA dans une base Access
"Prog" compilée en MDE de retrouver automatiquement le chemin d'une base
"Datas" mdb contenant les tables liées, sachant que la base "Datas" pourrait
être située dans un lecteur quelconque du Serveur ( K, M, P, etc) et dans
un dossier pas forcément identiqueselon les différents sites ou serait
installée l'application ?

Pour l'instant, et moyennant sur le Samba les droits idoines et adéquats
(comme Sheila), j'arrive grâce à du code VBA (libre si leurs auteurs sont
mentionnés dans le source) et récupéré sur divers sites (merci aux auteurs)
, à ouvrir des boites de dialogue qui permettent à l'utilisateur de
"parcourir" le réseau pour pointer vers l'emplacement de "Datas.mdb". Cela
fonctionne, mais : cela suppose que l'utilisateur sâche parcourir le réseau
et connaisse par avance l'emplacement de "Datas.mdb". Ce n'est pas toujours
gagné d'avance (sur le côté "parcourir le réseau").

Quelqu'un aurait-t'il une solution à mon problème ? (si tant est que je l'ai
exposé correctement!)

Je vous en remercie par avance.

Bien cordialement,

Dominique
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #6274821
Bonsoir.

pour connaître le chemin de la base liée tu peux utiliser:

Dim rs As DAO.TableDef
Dim db As DAO.Database
Set db = CurrentDb
Set rs = db.TableDefs("communes")
MsgBox rs.Connect
Set rs = Nothing
Set db = Nothing

et ensuite tu isoles le chemin propement dit qui se trouve après le signe =.

(en version 2007 , Set rs = CurrentDb.TableDefs("communes") pose des
problèmes actuellement, passe bien par un objet db)


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"Dom" 463a1494$0$14386$
| Bonjour,
|
| Dans un réseau Client-Serveur (avec un serveur Linux-Samba, et des
stations
| sous XP Pro Sp2), est-t'il possible via du code VBA dans une base Access
| "Prog" compilée en MDE de retrouver automatiquement le chemin d'une base
| "Datas" mdb contenant les tables liées, sachant que la base "Datas"
pourrait
| être située dans un lecteur quelconque du Serveur ( K, M, P, etc...) et
dans
| un dossier pas forcément identique...selon les différents sites ou serait
| installée l'application ?
|
| Pour l'instant, et moyennant sur le Samba les droits idoines et adéquats
| (comme Sheila...), j'arrive grâce à du code VBA (libre si leurs auteurs
sont
| mentionnés dans le source) et récupéré sur divers sites (merci aux
auteurs)
| , à ouvrir des boites de dialogue qui permettent à l'utilisateur de
| "parcourir" le réseau pour pointer vers l'emplacement de "Datas.mdb". Cela
| fonctionne, mais : cela suppose que l'utilisateur sâche parcourir le
réseau
| et connaisse par avance l'emplacement de "Datas.mdb". Ce n'est pas
toujours
| gagné d'avance... (sur le côté "parcourir le réseau"...).
|
| Quelqu'un aurait-t'il une solution à mon problème ? (si tant est que je
l'ai
| exposé correctement!)
|
| Je vous en remercie par avance.
|
| Bien cordialement,
|
| Dominique
|
|
|
|
|
Dom
Le #6274421
Bonsoir Raymond,

Et Merci de ta réponse.

Peux-tu me préciser ce que tu entends par "et ensuite tu isoles le chemin
proprement dit qui se trouve après le signe =" ?

Je ne suis pas sûr d'avoir tout compris.

Précision peut-être utile : je développe sous Access 97 (oui, je sais, ce
n'est pas très récent..., mais je n'ai pas la possibilité légale (question
de licence) de faire autrement)).

Dominique.

"Raymond [mvp]" de news: %
Bonsoir.

pour connaître le chemin de la base liée tu peux utiliser:

Dim rs As DAO.TableDef
Dim db As DAO.Database
Set db = CurrentDb
Set rs = db.TableDefs("communes")
MsgBox rs.Connect
Set rs = Nothing
Set db = Nothing

et ensuite tu isoles le chemin propement dit qui se trouve après le signe
=.

(en version 2007 , Set rs = CurrentDb.TableDefs("communes") pose des
problèmes actuellement, passe bien par un objet db)


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"Dom" 463a1494$0$14386$
| Bonjour,
|
| Dans un réseau Client-Serveur (avec un serveur Linux-Samba, et des
stations
| sous XP Pro Sp2), est-t'il possible via du code VBA dans une base Access
| "Prog" compilée en MDE de retrouver automatiquement le chemin d'une base
| "Datas" mdb contenant les tables liées, sachant que la base "Datas"
pourrait
| être située dans un lecteur quelconque du Serveur ( K, M, P, etc...) et
dans
| un dossier pas forcément identique...selon les différents sites ou
serait
| installée l'application ?
|
| Pour l'instant, et moyennant sur le Samba les droits idoines et adéquats
| (comme Sheila...), j'arrive grâce à du code VBA (libre si leurs auteurs
sont
| mentionnés dans le source) et récupéré sur divers sites (merci aux
auteurs)
| , à ouvrir des boites de dialogue qui permettent à l'utilisateur de
| "parcourir" le réseau pour pointer vers l'emplacement de "Datas.mdb".
Cela
| fonctionne, mais : cela suppose que l'utilisateur sâche parcourir le
réseau
| et connaisse par avance l'emplacement de "Datas.mdb". Ce n'est pas
toujours
| gagné d'avance... (sur le côté "parcourir le réseau"...).
|
| Quelqu'un aurait-t'il une solution à mon problème ? (si tant est que je
l'ai
| exposé correctement!)
|
| Je vous en remercie par avance.
|
| Bien cordialement,
|
| Dominique
|
|
|
|
|




Raymond [mvp]
Le #6274391
Bonsoir.

tu vas te retrouver avec un message de ce type:
;DATABASE=V:AEgeneratorPackageSupportCommunes.mdb
et tu devras exécuter une fonction :
Mid(rs.Connect, InStr(1, rs.Connect, "=") + 1)
pour isoler le chemin et retrouver seulement la valeur:
V:AEgeneratorPackageSupportCommunes.mdb

j'espère que la propriété Connect est gérée par 97.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"Dom" 463b6646$0$15449$
| Bonsoir Raymond,
|
| Et Merci de ta réponse.
|
| Peux-tu me préciser ce que tu entends par "et ensuite tu isoles le chemin
| proprement dit qui se trouve après le signe =" ?
|
| Je ne suis pas sûr d'avoir tout compris.
|
| Précision peut-être utile : je développe sous Access 97 (oui, je sais, ce
| n'est pas très récent..., mais je n'ai pas la possibilité légale (question
| de licence) de faire autrement)).
|
| Dominique.
|
Dom
Le #6274231
OK. Merci Raymond.

"Raymond [mvp]" de news:
Bonsoir.

tu vas te retrouver avec un message de ce type:
;DATABASE=V:AEgeneratorPackageSupportCommunes.mdb
et tu devras exécuter une fonction :
Mid(rs.Connect, InStr(1, rs.Connect, "=") + 1)
pour isoler le chemin et retrouver seulement la valeur:
V:AEgeneratorPackageSupportCommunes.mdb

j'espère que la propriété Connect est gérée par 97.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"Dom" 463b6646$0$15449$
| Bonsoir Raymond,
|
| Et Merci de ta réponse.
|
| Peux-tu me préciser ce que tu entends par "et ensuite tu isoles le
chemin
| proprement dit qui se trouve après le signe =" ?
|
| Je ne suis pas sûr d'avoir tout compris.
|
| Précision peut-être utile : je développe sous Access 97 (oui, je sais,
ce
| n'est pas très récent..., mais je n'ai pas la possibilité légale
(question
| de licence) de faire autrement)).
|
| Dominique.
|




Publicité
Poster une réponse
Anonyme