Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retrouver automatiquement le chemin d'une base MDB

4 réponses
Avatar
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 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

4 réponses

Avatar
Raymond [mvp]
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" a écrit dans le message de news:
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
|
|
|
|
|
Avatar
Dom
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]" a écrit dans le message
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" a écrit dans le message de news:
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
|
|
|
|
|




Avatar
Raymond [mvp]
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" a écrit dans le message de news:
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.
|
Avatar
Dom
OK. Merci Raymond.

"Raymond [mvp]" a écrit dans le message
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" a écrit dans le message de news:
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.
|