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

Lier les tables en VBA

21 réponses
Avatar
Guillaume
Bonjour,

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

10 réponses

1 2 3
Avatar
Raymond [mvp]
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" a écrit dans le 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.
Avatar
Guillaume
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" a écrit dans le
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.


.



Avatar
Raymond [mvp]
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" a écrit 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
Avatar
Guillaume
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" a écrit
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


.



Avatar
Anor
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/
--------------------------------------------------
Avatar
Raymond [mvp]
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" a écrit dans le message de
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 !
Avatar
Guillaume
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/
--------------------------------------------------


.



Avatar
Guillaume
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/
--------------------------------------------------


.



Avatar
Raymond [mvp]
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" a écrit dans le message de
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
Avatar
Anor
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/
--------------------------------------------------
1 2 3