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

connaitre le chemin de la base

5 réponses
Avatar
delot eric
bonjour,
j'aimerais savoir comment récupérer le chemin (emplacement ), par
l'intermediaire de vb, d'une base (celle contenant les données
'dorsale')lorsqu'une application est fractionnée en deux .mdb distinct ?

5 réponses

Avatar
Crevecoeur Jérôme
j'avais une petite fonction :
Y a certainement mieux sur les sites de nos illustres MVP! :-)


----------------------------------------
Private Function CheminServeur(NomTable As String) As String
Dim MaTable As TableDef
Dim mabd As Database
Dim posegal As String
Dim i As Long

CheminServeur = ""
Set mabd = CurrentDb
For i = 0 To mabd.TableDefs.Count - 1
Set MaTable = mabd.TableDefs(i)
If InStr(1, UCase(MaTable.Connect), UCase(NomTable)) > 0 Then
posegal = InStr(1, MaTable.Connect, "=")
CheminServeur = Mid(MaTable.Connect, posegal + 1,
Len(MaTable.Connect) - Len(NomTable) - posegal)
Exit For
End If
Next i
End Function

Exemple
Msgbox CheminServeur("matable.mdb")
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"delot eric" a écrit dans le message de
news:%
bonjour,
j'aimerais savoir comment récupérer le chemin (emplacement ), par
l'intermediaire de vb, d'une base (celle contenant les données
'dorsale')lorsqu'une application est fractionnée en deux .mdb distinct ?




Avatar
Raymond
Bonjour.

Juste pour rigoler vu le calme plat qu'il règne ici.

et si eric a des tables liées dans deux bases différentes ? quoi que c'est y
qui se passe ? il n'aura jamais le 2e chemin.
il faut supprimer l'exit for et rajouter un & ";" dans le chemin comme pour
une combobox.
et eric devra tester la présence du ; pour savoir s'il y a plusieurs
chemins.

et si eric s'en fout, il fera comme il voudra, n'est-ce pas ?
bonne journée.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Crevecoeur Jérôme" a écrit dans le message de
news:uE3%
j'avais une petite fonction :
Y a certainement mieux sur les sites de nos illustres MVP! :-)


----------------------------------------
Private Function CheminServeur(NomTable As String) As String
Dim MaTable As TableDef
Dim mabd As Database
Dim posegal As String
Dim i As Long

CheminServeur = ""
Set mabd = CurrentDb
For i = 0 To mabd.TableDefs.Count - 1
Set MaTable = mabd.TableDefs(i)
If InStr(1, UCase(MaTable.Connect), UCase(NomTable)) > 0 Then
posegal = InStr(1, MaTable.Connect, "=")
CheminServeur = Mid(MaTable.Connect, posegal + 1,
Len(MaTable.Connect) - Len(NomTable) - posegal)
Exit For
End If
Next i
End Function

Exemple
Msgbox CheminServeur("matable.mdb")


Avatar
Crevecoeur Jérôme
Effectivement Raymond, cette fonction est à optimiser.

Mais bon comme Eric est sympa et qu'il n'a pas 36 tables liées.

Il se dit qu'il fera:

Msgbox CheminServeur("Tables.mdb")
Msgbox CheminServeur("Archives.mdb")

N'est-ce pas Eric?

(en fait, je n'avais pas envie de tester si le chemin était déjà trouvé
etc...)
En plus l'énoncé était le chemin "d'une base" qui nous a demandé alors....
hein... Bon...Raymond quoi ! ;-)

Bonne Journée Raymond!


--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Raymond" a écrit dans le message de
news:
Bonjour.

Juste pour rigoler vu le calme plat qu'il règne ici.

et si eric a des tables liées dans deux bases différentes ? quoi que c'est
y

qui se passe ? il n'aura jamais le 2e chemin.
il faut supprimer l'exit for et rajouter un & ";" dans le chemin comme
pour

une combobox.
et eric devra tester la présence du ; pour savoir s'il y a plusieurs
chemins.

et si eric s'en fout, il fera comme il voudra, n'est-ce pas ?
bonne journée.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Crevecoeur Jérôme" a écrit dans le message
de

news:uE3%
j'avais une petite fonction :
Y a certainement mieux sur les sites de nos illustres MVP! :-)


----------------------------------------
Private Function CheminServeur(NomTable As String) As String
Dim MaTable As TableDef
Dim mabd As Database
Dim posegal As String
Dim i As Long

CheminServeur = ""
Set mabd = CurrentDb
For i = 0 To mabd.TableDefs.Count - 1
Set MaTable = mabd.TableDefs(i)
If InStr(1, UCase(MaTable.Connect), UCase(NomTable)) > 0 Then
posegal = InStr(1, MaTable.Connect, "=")
CheminServeur = Mid(MaTable.Connect, posegal + 1,
Len(MaTable.Connect) - Len(NomTable) - posegal)
Exit For
End If
Next i
End Function

Exemple
Msgbox CheminServeur("matable.mdb")





Avatar
delot eric
merci messieurs pour votre dévouement à mon égard !
(il est vrai que je n'ai qu'une base liée mais qui sait un jour peut etre
j'aurais besoin de ...)
encore merci à vous deux, et bonne journée.
eric.

"Crevecoeur Jérôme" a écrit dans le message de
news:
Effectivement Raymond, cette fonction est à optimiser.

Mais bon comme Eric est sympa et qu'il n'a pas 36 tables liées.

Il se dit qu'il fera:

Msgbox CheminServeur("Tables.mdb")
Msgbox CheminServeur("Archives.mdb")

N'est-ce pas Eric?

(en fait, je n'avais pas envie de tester si le chemin était déjà trouvé
etc...)
En plus l'énoncé était le chemin "d'une base" qui nous a demandé alors....
hein... Bon...Raymond quoi ! ;-)

Bonne Journée Raymond!


--
--------------------------------------------------------------------------
--

--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--

---------------------
"Raymond" a écrit dans le message de
news:
Bonjour.

Juste pour rigoler vu le calme plat qu'il règne ici.

et si eric a des tables liées dans deux bases différentes ? quoi que
c'est


y
qui se passe ? il n'aura jamais le 2e chemin.
il faut supprimer l'exit for et rajouter un & ";" dans le chemin comme
pour

une combobox.
et eric devra tester la présence du ; pour savoir s'il y a plusieurs
chemins.

et si eric s'en fout, il fera comme il voudra, n'est-ce pas ?
bonne journée.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Crevecoeur Jérôme" a écrit dans le message
de

news:uE3%
j'avais une petite fonction :
Y a certainement mieux sur les sites de nos illustres MVP! :-)


----------------------------------------
Private Function CheminServeur(NomTable As String) As String
Dim MaTable As TableDef
Dim mabd As Database
Dim posegal As String
Dim i As Long

CheminServeur = ""
Set mabd = CurrentDb
For i = 0 To mabd.TableDefs.Count - 1
Set MaTable = mabd.TableDefs(i)
If InStr(1, UCase(MaTable.Connect), UCase(NomTable)) > 0 Then
posegal = InStr(1, MaTable.Connect, "=")
CheminServeur = Mid(MaTable.Connect, posegal + 1,
Len(MaTable.Connect) - Len(NomTable) - posegal)
Exit For
End If
Next i
End Function

Exemple
Msgbox CheminServeur("matable.mdb")









Avatar
Anor
Bonjour

Crevecoeur Jérôme a confié :
| j'avais une petite fonction :
| Y a certainement mieux sur les sites de nos illustres MVP! :-)
|
|
| ----------------------------------------
| Private Function CheminServeur(NomTable As String) As String

Si je peux me permettre de donner ma petite solution ...d'illustre "Non MVP" ;-)

DLookup("Database", "MSysObjects", "[ForeignName]='UneTableLiée'")

Je sais que ce n'est pas bien d'aller dans les tables système, mais cette commande
ne m'a jamais causé le moindre problème, et je l'utilise dans mes procédures de
compactage automatique de back-ends au démarrage de l'appli frontale.

Et puis de toute façon, je ne suis un illustre amateur alors j'ai le droit de faire
moins compliqué que les pros ;-))) et de ne pas mettre cette solution sur
mon illustre site :o)

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
--------------------------------------------------