OVH Cloud OVH Cloud

Lire une table d'une autre base

8 réponses
Avatar
Samban
Bonjour à tous et toutes..;-)

ACCESS 97
Je voudrais à partir de mon application lire une table contenue dans une
autre base.
Et plus excactement je voudrais pouvoir "pointer" sur cette table pour créer
une zone de liste
Dans ma base en cours une zone de liste est basé en fonction des paramétres
entré dans Contenu :
Par Exemple :
SELECT DISTINCTROW T_Facture.N_Facture, T_Facture.Etat, T_Facture.Reference
FROM T_Facture WHERE (((T_Facture.N_Facture)>0)) ORDER BY
T_Facture.N_Facture DESC;

Ce que je cherche c'est comment indiquer à cette zone de liste de pointer
sur une table situé dans une autre base !!
Est-ce possible directement à la création de la liste ou alors passer par la
création de cette liste en VBA ?

Dim db as Database
Dim Rst as RecordSet
Set db = OpenDatabase ""C:\Facture.mdb")
Set Rst =db.OpenRecordSet ("T_Archive")
...........
Puis à partir de là créer cette liste me permettant d'afficher l'ensemble
des enregistrements qu'elle contient ?
Mais ici je cale un peu et quelques explications ou d'autres options me
serais précieuses ;-))
Merci par avance....

8 réponses

Avatar
Raymond [mvp]
Bonsoir.

il suffit de lier la table extérieure à ta base actuelle et ensuite elle
devient comme une table locale.
menu fichier / données externes / import
sélectionner la base dans laquelle se trouve la table à lier
onglet tables, cliquer sur le nom de la table
cliquer sur ok
la table est maintenant dans ta base et tu peux l'utiliser comme une table
locale (mais ce n'est pas une table locale, tu as simplement un lien vers ta
table)

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


" Samban" a écrit dans le message de
news:3ff73bdb$0$6972$
Bonjour à tous et toutes..;-)

ACCESS 97
Je voudrais à partir de mon application lire une table contenue dans une
autre base.
Et plus excactement je voudrais pouvoir "pointer" sur cette table pour
créer

une zone de liste
Dans ma base en cours une zone de liste est basé en fonction des
paramétres

entré dans Contenu :
Par Exemple :
SELECT DISTINCTROW T_Facture.N_Facture, T_Facture.Etat,
T_Facture.Reference

FROM T_Facture WHERE (((T_Facture.N_Facture)>0)) ORDER BY
T_Facture.N_Facture DESC;

Ce que je cherche c'est comment indiquer à cette zone de liste de pointer
sur une table situé dans une autre base !!
Est-ce possible directement à la création de la liste ou alors passer par
la

création de cette liste en VBA ?

Dim db as Database
Dim Rst as RecordSet
Set db = OpenDatabase ""C:Facture.mdb")
Set Rst Û.OpenRecordSet ("T_Archive")
...........
Puis à partir de là créer cette liste me permettant d'afficher l'ensemble
des enregistrements qu'elle contient ?
Mais ici je cale un peu et quelques explications ou d'autres options me
serais précieuses ;-))
Merci par avance....




Avatar
jean
Bonjour,

Est-ce que le plus simple ne serait pas de lier la table ?
(fichier / données externes / lier -ou attacher- une table)

Cordialement,

jean
-----Message d'origine-----
Bonjour à tous et toutes..;-)

ACCESS 97
Je voudrais à partir de mon application lire une table
contenue dans une

autre base.
Et plus excactement je voudrais pouvoir "pointer" sur
cette table pour créer

une zone de liste
Dans ma base en cours une zone de liste est basé en
fonction des paramétres

entré dans Contenu :
Par Exemple :
SELECT DISTINCTROW T_Facture.N_Facture, T_Facture.Etat,
T_Facture.Reference

FROM T_Facture WHERE (((T_Facture.N_Facture)>0)) ORDER BY
T_Facture.N_Facture DESC;

Ce que je cherche c'est comment indiquer à cette zone de
liste de pointer

sur une table situé dans une autre base !!
Est-ce possible directement à la création de la liste ou
alors passer par la

création de cette liste en VBA ?

Dim db as Database
Dim Rst as RecordSet
Set db = OpenDatabase ""C:Facture.mdb")
Set Rst Û.OpenRecordSet ("T_Archive")
............
Puis à partir de là créer cette liste me permettant
d'afficher l'ensemble

des enregistrements qu'elle contient ?
Mais ici je cale un peu et quelques explications ou
d'autres options me

serais précieuses ;-))
Merci par avance....


.



Avatar
Raymond [mvp]
.../... erreur, au lieu de lire import, lire lier les tables
excuses

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

Pour mon probléme je pense que je vais passer par l'importation de la table
dont j'ai besoin :

DoCmd.TransferDatabase acImport, "Microsoft Access", "c:Facture.mdb",
acTable, "Archive Facture", "Ancienne Facture", false

1) Aprés import, donc plus de PB pour créer ma zone de liste

2) Aprés utilisation, destruction de cette table "Ancienne facture"

C'est surement pas le plus pratique car a chaque fois il faut importer et
détruire la table, mais cette action n'est faites que pour avoir la
possibilité de consulter d'anciennes factures ;-))

Je suis toujours preneur pour une meilleur solution..
Avatar
Raymond [mvp]
une meilleure solution consiste à lier la table comme indiqué sur les posts
présents dans le fil.

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


" Samban" a écrit dans le message de
news:3ff73f92$0$6976$
Re-bonjour.....

Pour mon probléme je pense que je vais passer par l'importation de la
table

dont j'ai besoin :

DoCmd.TransferDatabase acImport, "Microsoft Access", "c:Facture.mdb",
acTable, "Archive Facture", "Ancienne Facture", false

1) Aprés import, donc plus de PB pour créer ma zone de liste

2) Aprés utilisation, destruction de cette table "Ancienne facture"

C'est surement pas le plus pratique car a chaque fois il faut importer et
détruire la table, mais cette action n'est faites que pour avoir la
possibilité de consulter d'anciennes factures ;-))

Je suis toujours preneur pour une meilleur solution..




Avatar
Maxence HUBICHE
Bonsoir,

Moi, j'aurai fait un
SELECT ...
FROM LaTable In [C:......mdb]
Une requête quoi
:)

--
----------------------------------------------------------------
Maxence HUBICHE
Formateur et développeur indépendant
Modérateur/rédacteur sur http://www.developpez.com
Site perso : http://perso.club-internet.fr/mhubiche (en cours de
construction)
" Samban" a écrit dans le message de news:
3ff73bdb$0$6972$
Bonjour à tous et toutes..;-)

ACCESS 97
Je voudrais à partir de mon application lire une table contenue dans une
autre base.
Et plus excactement je voudrais pouvoir "pointer" sur cette table pour
créer

une zone de liste
Dans ma base en cours une zone de liste est basé en fonction des
paramétres

entré dans Contenu :
Par Exemple :
SELECT DISTINCTROW T_Facture.N_Facture, T_Facture.Etat,
T_Facture.Reference

FROM T_Facture WHERE (((T_Facture.N_Facture)>0)) ORDER BY
T_Facture.N_Facture DESC;

Ce que je cherche c'est comment indiquer à cette zone de liste de pointer
sur une table situé dans une autre base !!
Est-ce possible directement à la création de la liste ou alors passer par
la

création de cette liste en VBA ?

Dim db as Database
Dim Rst as RecordSet
Set db = OpenDatabase ""C:Facture.mdb")
Set Rst Û.OpenRecordSet ("T_Archive")
...........
Puis à partir de là créer cette liste me permettant d'afficher l'ensemble
des enregistrements qu'elle contient ?
Mais ici je cale un peu et quelques explications ou d'autres options me
serais précieuses ;-))
Merci par avance....




Avatar
Samban
Bonjour à tous et toutes ;-)

Merci pour toutes ces réponses

La solution de lier ou attacher la table, c'est bien mais je ne veux pas
toujours être sur la meme table archive.
Ce que je veux c'est pouvoir à l'aide d'un premier formulaire proposer
l'ensemble des bases archives qui existe (Facture2001.mdb,
Facture2002.mdb...........) puis pointer sur celle ci pour l'utiliser, en
récupérant son chemein d'acces.
A moins que sous VBA je puisse lier une table temporairement uniquement pour
la lire et ensuite rompre ce lien??

Sinon la solution que me propose Maxence me semble être plus dans l'esprit
de ce que je veux faire..

En tous les cas j'étudie toutes ces solutions et encore un grand merci à
tous ;-))
Avatar
Patatrac92
bonjour,

A moins que sous VBA je puisse lier une table temporairement uniquement
pour

la lire et ensuite rompre ce lien??


Pour création du lien c'est ça : (la différence par rapport à l'import c'est
"aclink")

DoCmd.TransferDatabase acLink, "Microsoft Access", "c:Facture.mdb",
acTable, "Archive Facture", "Ancienne Facture", false

Pour supprimer le lien c'est :

DoCmd.DeleteObject acTable, "Ancienne Facture"

bye

" Samban" a écrit dans le message de
news:3ff7e876$0$6966$
Bonjour à tous et toutes ;-)

Merci pour toutes ces réponses

La solution de lier ou attacher la table, c'est bien mais je ne veux pas
toujours être sur la meme table archive.
Ce que je veux c'est pouvoir à l'aide d'un premier formulaire proposer
l'ensemble des bases archives qui existe (Facture2001.mdb,
Facture2002.mdb...........) puis pointer sur celle ci pour l'utiliser, en
récupérant son chemein d'acces.
A moins que sous VBA je puisse lier une table temporairement uniquement
pour

la lire et ensuite rompre ce lien??

Sinon la solution que me propose Maxence me semble être plus dans l'esprit
de ce que je veux faire..

En tous les cas j'étudie toutes ces solutions et encore un grand merci à
tous ;-))