Lier les tables en VBA

Le
Guillaume
Bonjour,

Voil, j'ai 2 .mdb, une contenant uniquement les
programmes (P), la 2me uniquement les donnes (D).
je voudrais lier 4 tables de ma base D vers ma base P
l'ouverture de celle-ci. Je pense qu'il faut la codifier
en VBA ? Pourriez vous m'aider ?
Merci.
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #5053661
Bonjour.

regarde sur le site de Arnaud:
http://memoaccess.free.fr/tables.htm#Links

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" news:0f2601c42613$68edb720$
Bonjour,

Voilà, j'ai 2 .mdb, une contenant uniquement les
programmes (P), la 2ème uniquement les données (D).
je voudrais lier 4 tables de ma base D vers ma base P à
l'ouverture de celle-ci. Je pense qu'il faut la codifier
en VBA ? Pourriez vous m'aider ?
Merci.
Guillaume
Le #5053571
Je me suis mal exprimé peut-etre
En fait, ma .mdb contenant des données (D) se trouve sur
un autre disque, dans l'exemple d'Arnaud, je ne vois pas
comment fait-il pour lier les tables provenant d'une autre
base de données ? Pourriez vous m'exliquer un peu +
clairement
merci


-----Message d'origine-----
Bonjour.

regarde sur le site de Arnaud:
http://memoaccess.free.fr/tables.htm#Links

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" message de

news:0f2601c42613$68edb720$
Bonjour,

Voilà, j'ai 2 .mdb, une contenant uniquement les
programmes (P), la 2ème uniquement les données (D).
je voudrais lier 4 tables de ma base D vers ma base P à
l'ouverture de celle-ci. Je pense qu'il faut la codifier
en VBA ? Pourriez vous m'aider ?
Merci.


.



Raymond [mvp]
Le #5053541
les tables liées se trouvent dans des bases externes situées n'importe où
sur le réseau.
dans sa fonction fRefreshLinks il met:
newpath = fOpenFile("Choisir la Back-End",, False) 'Fonction fOpenFile ici
qui est le chemin de la base principale.
soit tu fais composer par l'opérateur soit tu donnes un chemin qui est dans
une table soit tu l'indiques en dur dans le code.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" news:0f1c01c4261e$ea2c1b50$
Je me suis mal exprimé peut-etre
En fait, ma .mdb contenant des données (D) se trouve sur
un autre disque, dans l'exemple d'Arnaud, je ne vois pas
comment fait-il pour lier les tables provenant d'une autre
base de données ? Pourriez vous m'exliquer un peu +
clairement
merci
Guillaume
Le #5053511
Raymond, je suis vraiment navré de codifer en dur mon
chemin car fOpenfile n'est pas reconnu par access 2002.
Il n'est ni dans les aides intuitives, ni dans le sommaire.
j'ai fait un petit macro qui lance la fonction fCheckLinks
Rien ne s'est produit. Help please !

-----Message d'origine-----
les tables liées se trouvent dans des bases externes
situées n'importe où

sur le réseau.
dans sa fonction fRefreshLinks il met:
newpath = fOpenFile("Choisir la Back-End",,
False) 'Fonction fOpenFile ici

qui est le chemin de la base principale.
soit tu fais composer par l'opérateur soit tu donnes un
chemin qui est dans

une table soit tu l'indiques en dur dans le code.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" dans le message de

news:0f1c01c4261e$ea2c1b50$
Je me suis mal exprimé peut-etre
En fait, ma .mdb contenant des données (D) se trouve sur
un autre disque, dans l'exemple d'Arnaud, je ne vois pas
comment fait-il pour lier les tables provenant d'une autre
base de données ? Pourriez vous m'exliquer un peu +
clairement
merci


.



Anor
Le #5053491
Bonjour,

Guillaume wrote:
| Raymond, je suis vraiment navré de codifer en dur mon
| chemin car fOpenfile n'est pas reconnu par access 2002.
| Il n'est ni dans les aides intuitives, ni dans le sommaire.
| j'ai fait un petit macro qui lance la fonction fCheckLinks
| Rien ne s'est produit. Help please !

|| newpath = fOpenFile("Choisir la Back-End",,
| False) 'Fonction fOpenFile ici


lorsque tu lis 'Fonction fOpenFile ici
eh bien tu cliques sur le lien et ça te donnera la fonction complète....

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Raymond [mvp]
Le #5053471
Cliques sur 'Fonction fOpenFile ici
pour afficher et copier la procédure fopenfile
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" news:105b01c42625$148f5640$
Raymond, je suis vraiment navré de codifer en dur mon
chemin car fOpenfile n'est pas reconnu par access 2002.
Il n'est ni dans les aides intuitives, ni dans le sommaire.
j'ai fait un petit macro qui lance la fonction fCheckLinks
Rien ne s'est produit. Help please !
Guillaume
Le #5053371
Raymond, c'est bon pour le fopenfile
Comment je fais pour selectionner uniquement les 4 tables
que je voudrais lier maintenant ?
Merci de ton aide
-----Message d'origine-----
Bonjour,

Guillaume wrote:
| Raymond, je suis vraiment navré de codifer en dur mon
| chemin car fOpenfile n'est pas reconnu par access 2002.
| Il n'est ni dans les aides intuitives, ni dans le
sommaire.

| j'ai fait un petit macro qui lance la fonction
fCheckLinks

| Rien ne s'est produit. Help please !

|| newpath = fOpenFile("Choisir la Back-End",,
| False) 'Fonction fOpenFile ici


lorsque tu lis 'Fonction fOpenFile ici
eh bien tu cliques sur le lien et ça te donnera la
fonction complète....


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------


.



Guillaume
Le #5053341
La .mdb contenant les données se trouvent
dans "D:TestVerneuil_Data.mdb" j'ai donc renseigné
Newpath avec cette valeur mais comment je dis à Access de
prendre uniquement les 4 tables que je veux ?
voici la fonction que j'ai faite :

Function Lier_Tables()
Dim NewPath As String
Dim nbTbl As Long
Dim idx As Long
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim TblDef As TableDef


Set dbs = CurrentDb()

On Error Resume Next
nbTbl = dbs.TableDefs.Count
On Error Resume Next

NewPath = "D:TestVerneuil_Data.mdb"
For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
TblDef.Connect = ";DATABASE=" & NewPath
& ";UID=;PWD="
TblDef.RefreshLink
Next idx
End Function

Mercide ton aide

-----Message d'origine-----
Bonjour,

Guillaume wrote:
| Raymond, je suis vraiment navré de codifer en dur mon
| chemin car fOpenfile n'est pas reconnu par access 2002.
| Il n'est ni dans les aides intuitives, ni dans le
sommaire.

| j'ai fait un petit macro qui lance la fonction
fCheckLinks

| Rien ne s'est produit. Help please !

|| newpath = fOpenFile("Choisir la Back-End",,
| False) 'Fonction fOpenFile ici


lorsque tu lis 'Fonction fOpenFile ici
eh bien tu cliques sur le lien et ça te donnera la
fonction complète....


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------


.



Raymond [mvp]
Le #5053321
Tu peux tester le nom de la table ici:
For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
if Tbldef.Name = "aazaz" or Tbldef.Name = "bbbbb" or then
TblDef.Connect ........
continuer ici la procédure
end if

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guillaume" news:104101c4262c$86149990$
La .mdb contenant les données se trouvent
dans "D:TestVerneuil_Data.mdb" j'ai donc renseigné
Newpath avec cette valeur mais comment je dis à Access de
prendre uniquement les 4 tables que je veux ?
voici la fonction que j'ai faite :

Function Lier_Tables()
Dim NewPath As String
Dim nbTbl As Long
Dim idx As Long
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim TblDef As TableDef


Set dbs = CurrentDb()

On Error Resume Next
nbTbl = dbs.TableDefs.Count
On Error Resume Next

NewPath = "D:TestVerneuil_Data.mdb"
For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
TblDef.Connect = ";DATABASE=" & NewPath
& ";UID=;PWD="
TblDef.RefreshLink
Next idx
End Function

Mercide ton aide
Anor
Le #5053301
Bonjour,

Guillaume wrote:
| Raymond, c'est bon pour le fopenfile
| Comment je fais pour selectionner uniquement les 4 tables
| que je voudrais lier maintenant ?
| Merci de ton aide

La fonction s'exécute jusqu'à ce que toutes les attaches qui sont rompues
fonctionnent à nouveau.


si 4 tables d'une base ne sont plus liées, en donnant le chemin de la base,
les 4 tables sont de nouveau liées.

si les tables sont dans 2 bases différentes, la fonction s'exécutera 2 fois

si tu veux sélectionner toi même les tables à attacher, tu utilises le gestionnaire
d'attaches intégré à Access (100% manuel)


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Publicité
Poster une réponse
Anonyme