Gestion tables attachées

Le
PAT
Bonjour,

J'utilise plusieurs bases contenant les formulaires travaillant avec le
système des tables attachées sur base stockant les données. Mon soucis c'est
la gestion des liens qui ont des noms différents suivant les structures des
PC et du réseau. Est-ce qu'il existe une solution du style à l'ouverture de
la bd, lecture d'un fichier texte donnat le chemin à suivre pour cette base


Merci d'avance

PAT
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
Fabien
Le #6365771
Bonjour,

J'utilise plusieurs bases contenant les formulaires travaillant avec le
système des tables attachées sur base stockant les données. Mon soucis c'est
la gestion des liens qui ont des noms différents suivant les structures des
PC et du réseau. Est-ce qu'il existe une solution du style à l'ouverture de
la bd, lecture d'un fichier texte donnat le chemin à suivre pour cette base
...

Merci d'avance

PAT


Salut pat

Voici une petite sub qui va chercher les nom de table dans une table
A toi de modifier !
Moi je m'en sert pour, dans une base de mise a jour, attacher les table
de la base source et celle de la base cible.

Private Sub Attache_table(Source_table As String, Num As Integer)
'Source_table : chemin complet + mon de la base contenant les table a lier
'Num : N° de la table pour différencier les tables issues de la base
source (0) de ceux de la base cible (1)
Dim Db As DAO.Database
Dim Rst_Table As DAO.Recordset
Dim I As Integer
On Error Resume Next
Set Db = CurrentDb
Set Rst_Table = Db.OpenRecordset("Table_maj")
While Not Rst_Table.EOF
DoCmd.TransferDatabase acLink, "Microsoft Access",
Source_table, acTable, Rst_Table("Nom Table"), Rst_Table("Nom Table") &
Num, False
Rst_Table.MoveNext
Wend
Rst_Table.Close
Set Rst_Table = Nothing
Set Db = Nothing
End Sub

@+

PAT
Le #6365741
D'abord merci d'avoir répondu.
Dans mon cas, suivant sur quelle machine j'installe cette base le chemin est
différent. Pour remédier à ce pbe en partie au sein du bureau j'utilise
toujours la même lettre dans les liens réseaux. Mais comme j'emmène souvent
cette base sur mon portable pour la faire évoluer, il faut à chaque fois
rattacher les tables. Quand une version est finie et que je dois la
réinstaller au bureau, de nouveau je recommence avec toujours les risques
d'erreur. Exemple, ce matin, mal réveillé, en installant une nouvelle
version, au lieu d'attacher les tables j'ai fait importer.... D'où un
certain désordre. Soit j'essaie d'utiliser ton idée en ajoutant la notion du
nom de la machine où se trouve la base mais ce qui risque de compliquer les
choses, soit je tente de trouver un truc (si il existe) pour qu'a
l'ouverture la bd lit un "fichier joint" lui indiquant le chemin des tables.
une idée ?

PAT

"Fabien" 47985dba$0$899$
Bonjour,

J'utilise plusieurs bases contenant les formulaires travaillant avec le
système des tables attachées sur base stockant les données. Mon soucis
c'est la gestion des liens qui ont des noms différents suivant les
structures des PC et du réseau. Est-ce qu'il existe une solution du style
à l'ouverture de la bd, lecture d'un fichier texte donnat le chemin à
suivre pour cette base ...

Merci d'avance

PAT
Salut pat

Voici une petite sub qui va chercher les nom de table dans une table
A toi de modifier !
Moi je m'en sert pour, dans une base de mise a jour, attacher les table de
la base source et celle de la base cible.

Private Sub Attache_table(Source_table As String, Num As Integer)
'Source_table : chemin complet + mon de la base contenant les table a lier
'Num : N° de la table pour différencier les tables issues de la base
source (0) de ceux de la base cible (1)
Dim Db As DAO.Database
Dim Rst_Table As DAO.Recordset
Dim I As Integer
On Error Resume Next
Set Db = CurrentDb
Set Rst_Table = Db.OpenRecordset("Table_maj")
While Not Rst_Table.EOF
DoCmd.TransferDatabase acLink, "Microsoft Access", Source_table,
acTable, Rst_Table("Nom Table"), Rst_Table("Nom Table") & Num, False
Rst_Table.MoveNext
Wend
Rst_Table.Close
Set Rst_Table = Nothing
Set Db = Nothing
End Sub

@+




3stone
Le #6365711
Salut,

"PAT"
| Dans mon cas, suivant sur quelle machine j'installe cette base le chemin est
| différent. Pour remédier à ce pbe en partie au sein du bureau j'utilise
| toujours la même lettre dans les liens réseaux. Mais comme j'emmène souvent
| cette base sur mon portable pour la faire évoluer, il faut à chaque fois
| rattacher les tables.


Si tu utilise un "lecteur réseau" comme z: par exemple, cela
peut ce faire en totalement transparence...
http://www.3stone.be/access/articles.php?lng=fr&pg(


| Quand une version est finie et que je dois la
| réinstaller au bureau, de nouveau je recommence avec toujours les risques
| d'erreur. Exemple, ce matin, mal réveillé, en installant une nouvelle
| version, au lieu d'attacher les tables j'ai fait importer.... D'où un
| certain désordre. Soit j'essaie d'utiliser ton idée en ajoutant la notion du
| nom de la machine où se trouve la base mais ce qui risque de compliquer les
| choses, soit je tente de trouver un truc (si il existe) pour qu'a
| l'ouverture la bd lit un "fichier joint" lui indiquant le chemin des tables.
| une idée ?


Effectivement, on peut déposé à un endroit "fixe" un fichier .csv
que l'on lira ligne par ligne et contenant le nom de la base et
son chemin d'accès.
Utilise si la base est ammenée à être déplacée, mais avec la contrainte
de garder ce fichier parfaitement à jour.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
PAT
Le #6365681
Comment lire ce fichier .csv ?

PAT

"3stone"
Salut,

"PAT"
| Dans mon cas, suivant sur quelle machine j'installe cette base le chemin
est
| différent. Pour remédier à ce pbe en partie au sein du bureau j'utilise
| toujours la même lettre dans les liens réseaux. Mais comme j'emmène
souvent
| cette base sur mon portable pour la faire évoluer, il faut à chaque fois
| rattacher les tables.


Si tu utilise un "lecteur réseau" comme z: par exemple, cela
peut ce faire en totalement transparence...
http://www.3stone.be/access/articles.php?lng=fr&pg(


| Quand une version est finie et que je dois la
| réinstaller au bureau, de nouveau je recommence avec toujours les
risques
| d'erreur. Exemple, ce matin, mal réveillé, en installant une nouvelle
| version, au lieu d'attacher les tables j'ai fait importer.... D'où un
| certain désordre. Soit j'essaie d'utiliser ton idée en ajoutant la
notion du
| nom de la machine où se trouve la base mais ce qui risque de compliquer
les
| choses, soit je tente de trouver un truc (si il existe) pour qu'a
| l'ouverture la bd lit un "fichier joint" lui indiquant le chemin des
tables.
| une idée ?


Effectivement, on peut déposé à un endroit "fixe" un fichier .csv
que l'on lira ligne par ligne et contenant le nom de la base et
son chemin d'accès.
Utilise si la base est ammenée à être déplacée, mais avec la contrainte
de garder ce fichier parfaitement à jour.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Gilbert
Le #6365671
Bonjour,

Je fais le même genre de manipulation entre le réseau et mon portable.
Rien ne t'empêche sur ton portable de définir ta lettre réseau pointant sur
un dossier de ce même portable.

Si la commande Net Use ne fontionne pas en local tu peux utiliser
subst z: "D:Mes documentsMonDossier"
--
Cordialement,

Gilbert


"PAT" news:
D'abord merci d'avoir répondu.
Dans mon cas, suivant sur quelle machine j'installe cette base le chemin
est

différent. Pour remédier à ce pbe en partie au sein du bureau j'utilise
toujours la même lettre dans les liens réseaux. Mais comme j'emmène
souvent

cette base sur mon portable pour la faire évoluer, il faut à chaque fois
rattacher les tables. Quand une version est finie et que je dois la
réinstaller au bureau, de nouveau je recommence avec toujours les risques
d'erreur. Exemple, ce matin, mal réveillé, en installant une nouvelle
version, au lieu d'attacher les tables j'ai fait importer.... D'où un
certain désordre. Soit j'essaie d'utiliser ton idée en ajoutant la notion
du

nom de la machine où se trouve la base mais ce qui risque de compliquer
les

choses, soit je tente de trouver un truc (si il existe) pour qu'a
l'ouverture la bd lit un "fichier joint" lui indiquant le chemin des
tables.

une idée ?

PAT

"Fabien" 47985dba$0$899$
Bonjour,

J'utilise plusieurs bases contenant les formulaires travaillant avec le
système des tables attachées sur base stockant les données. Mon soucis
c'est la gestion des liens qui ont des noms différents suivant les
structures des PC et du réseau. Est-ce qu'il existe une solution du
style



à l'ouverture de la bd, lecture d'un fichier texte donnat le chemin à
suivre pour cette base ...

Merci d'avance

PAT
Salut pat

Voici une petite sub qui va chercher les nom de table dans une table
A toi de modifier !
Moi je m'en sert pour, dans une base de mise a jour, attacher les table
de


la base source et celle de la base cible.

Private Sub Attache_table(Source_table As String, Num As Integer)
'Source_table : chemin complet + mon de la base contenant les table a
lier


'Num : N° de la table pour différencier les tables issues de la base
source (0) de ceux de la base cible (1)
Dim Db As DAO.Database
Dim Rst_Table As DAO.Recordset
Dim I As Integer
On Error Resume Next
Set Db = CurrentDb
Set Rst_Table = Db.OpenRecordset("Table_maj")
While Not Rst_Table.EOF
DoCmd.TransferDatabase acLink, "Microsoft Access", Source_table,
acTable, Rst_Table("Nom Table"), Rst_Table("Nom Table") & Num, False
Rst_Table.MoveNext
Wend
Rst_Table.Close
Set Rst_Table = Nothing
Set Db = Nothing
End Sub

@+








PAT
Le #6365651
Merci à tous. Je vais etudier et tester ces infos.

PAT

"Gilbert" usGZp%
Bonjour,

Je fais le même genre de manipulation entre le réseau et mon portable.
Rien ne t'empêche sur ton portable de définir ta lettre réseau pointant
sur
un dossier de ce même portable.

Si la commande Net Use ne fontionne pas en local tu peux utiliser
subst z: "D:Mes documentsMonDossier"
--
Cordialement,

Gilbert


"PAT" news:
D'abord merci d'avoir répondu.
Dans mon cas, suivant sur quelle machine j'installe cette base le chemin
est

différent. Pour remédier à ce pbe en partie au sein du bureau j'utilise
toujours la même lettre dans les liens réseaux. Mais comme j'emmène
souvent

cette base sur mon portable pour la faire évoluer, il faut à chaque fois
rattacher les tables. Quand une version est finie et que je dois la
réinstaller au bureau, de nouveau je recommence avec toujours les risques
d'erreur. Exemple, ce matin, mal réveillé, en installant une nouvelle
version, au lieu d'attacher les tables j'ai fait importer.... D'où un
certain désordre. Soit j'essaie d'utiliser ton idée en ajoutant la notion
du

nom de la machine où se trouve la base mais ce qui risque de compliquer
les

choses, soit je tente de trouver un truc (si il existe) pour qu'a
l'ouverture la bd lit un "fichier joint" lui indiquant le chemin des
tables.

une idée ?

PAT

"Fabien" 47985dba$0$899$
Bonjour,

J'utilise plusieurs bases contenant les formulaires travaillant avec
le
système des tables attachées sur base stockant les données. Mon soucis
c'est la gestion des liens qui ont des noms différents suivant les
structures des PC et du réseau. Est-ce qu'il existe une solution du
style



à l'ouverture de la bd, lecture d'un fichier texte donnat le chemin à
suivre pour cette base ...

Merci d'avance

PAT
Salut pat

Voici une petite sub qui va chercher les nom de table dans une table
A toi de modifier !
Moi je m'en sert pour, dans une base de mise a jour, attacher les table
de


la base source et celle de la base cible.

Private Sub Attache_table(Source_table As String, Num As Integer)
'Source_table : chemin complet + mon de la base contenant les table a
lier


'Num : N° de la table pour différencier les tables issues de la base
source (0) de ceux de la base cible (1)
Dim Db As DAO.Database
Dim Rst_Table As DAO.Recordset
Dim I As Integer
On Error Resume Next
Set Db = CurrentDb
Set Rst_Table = Db.OpenRecordset("Table_maj")
While Not Rst_Table.EOF
DoCmd.TransferDatabase acLink, "Microsoft Access",
Source_table,
acTable, Rst_Table("Nom Table"), Rst_Table("Nom Table") & Num, False
Rst_Table.MoveNext
Wend
Rst_Table.Close
Set Rst_Table = Nothing
Set Db = Nothing
End Sub

@+













Publicité
Poster une réponse
Anonyme