Requete depuis deux bases différentes

Le
Jerome VERITE
Bonjour, je chercher à effectuer un SELECT depuis une base A qui puisse
récupérer des enregistrements d'une base B. Pour cela, quand A est ouverte,
j'y fais un

SELECT tabledeB.mot FROM tabledeB IN 'chemin de B'

Ce qui marche très bien. Par contre, dès que j'essaye de sélectionner des
enregistrements provenant de 2 tables, l'une de A et l'autre de B, alors
Access me dit qu'il ne trouve pas la table de A comme dans l'exemple suivant

SELECT tabledeA.mot, tabledeB.mot FROM tabledeA, tabledeB IN 'chemin de
B' WHERE tabledeA.mot = tabledeB.mot

Comment préciser alors que tabledeA provient de la base A, et qu'il ne faut
pas aller la chercher dans B ?

Merci d'avance.

J'espère avoir été assez clair.

Jérôme
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre CFI [mvp]
Le #5069831
bonjour
fais en 2 opérations
une req sur une table base externe
puis req avec table + l'autre req

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jerome VERITE"
Bonjour, je chercher à effectuer un SELECT depuis une base A qui puisse
récupérer des enregistrements d'une base B. Pour cela, quand A est ouverte,
j'y fais un

SELECT tabledeB.mot FROM tabledeB IN 'chemin de B'

Ce qui marche très bien. Par contre, dès que j'essaye de sélectionner des
enregistrements provenant de 2 tables, l'une de A et l'autre de B, alors
Access me dit qu'il ne trouve pas la table de A comme dans l'exemple suivant

SELECT tabledeA.mot, tabledeB.mot FROM tabledeA, tabledeB IN 'chemin de
B' WHERE tabledeA.mot = tabledeB.mot

Comment préciser alors que tabledeA provient de la base A, et qu'il ne faut
pas aller la chercher dans B ?

Merci d'avance.

J'espère avoir été assez clair.

Jérôme




Daniel Carollo
Le #5069821
Bonjour Jerome!

Je presume que ce que vous appelez "tableA" est dans la base A. Dans ce cas,
il n'est pas possible de faire ce que vous voulez "d'un coup d'un seul".

Faites plutot une requete de selection dans la base A qui va chercher les
enregistrements de la table B dans la base B (un simple SELECT * from
tableB IN...) et sauvegardez-la (par exemple comme qryTableB).

Il suffit alors de faire un SELECT MesChamps FROM tableA, qryTableB
WHERE....

Au passage, s'il n'y a pas d'index sur les champs concernes, votre syntaxe
(priez pour nous) va rendre la requete tres lente a executer: Jet va devoir
creer le produit cartesien des enregistrements entre les tables A et B pour
ensuite eliminer ceux qui ne correspondent pas au critere. Il vaut mieux
mettre un joint exprime de facon traditionelle:
SELECT ... FROM tableA INNER JOIN qryTableB ON MaCondition.

Bonne continuation,

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Jerome VERITE" news:
Bonjour, je chercher à effectuer un SELECT depuis une base A qui puisse
récupérer des enregistrements d'une base B. Pour cela, quand A est
ouverte,

j'y fais un

SELECT tabledeB.mot FROM tabledeB IN 'chemin de B'

Ce qui marche très bien. Par contre, dès que j'essaye de sélectionner des
enregistrements provenant de 2 tables, l'une de A et l'autre de B, alors
Access me dit qu'il ne trouve pas la table de A comme dans l'exemple
suivant


SELECT tabledeA.mot, tabledeB.mot FROM tabledeA, tabledeB IN 'chemin
de

B' WHERE tabledeA.mot = tabledeB.mot

Comment préciser alors que tabledeA provient de la base A, et qu'il ne
faut

pas aller la chercher dans B ?

Merci d'avance.

J'espère avoir été assez clair.

Jérôme




Jerome VERITE
Le #5069601
Merci beaucoup pour cette explication très claire.

ne vous inquiétez pas, j'utilise des INNER JOIN en réalité, et en plus j'ai
indexé mes champs.

Jérôme

"Daniel Carollo" message de news:
Bonjour Jerome!

Je presume que ce que vous appelez "tableA" est dans la base A. Dans ce
cas,

il n'est pas possible de faire ce que vous voulez "d'un coup d'un seul".

Faites plutot une requete de selection dans la base A qui va chercher les
enregistrements de la table B dans la base B (un simple SELECT * from
tableB IN...) et sauvegardez-la (par exemple comme qryTableB).

Il suffit alors de faire un SELECT MesChamps FROM tableA, qryTableB
WHERE....

Au passage, s'il n'y a pas d'index sur les champs concernes, votre syntaxe
(priez pour nous) va rendre la requete tres lente a executer: Jet va
devoir

creer le produit cartesien des enregistrements entre les tables A et B
pour

ensuite eliminer ceux qui ne correspondent pas au critere. Il vaut mieux
mettre un joint exprime de facon traditionelle:
SELECT ... FROM tableA INNER JOIN qryTableB ON MaCondition.

Bonne continuation,

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Jerome VERITE" news:
Bonjour, je chercher à effectuer un SELECT depuis une base A qui puisse
récupérer des enregistrements d'une base B. Pour cela, quand A est
ouverte,

j'y fais un

SELECT tabledeB.mot FROM tabledeB IN 'chemin de B'

Ce qui marche très bien. Par contre, dès que j'essaye de sélectionner
des


enregistrements provenant de 2 tables, l'une de A et l'autre de B, alors
Access me dit qu'il ne trouve pas la table de A comme dans l'exemple
suivant


SELECT tabledeA.mot, tabledeB.mot FROM tabledeA, tabledeB IN 'chemin
de

B' WHERE tabledeA.mot = tabledeB.mot

Comment préciser alors que tabledeA provient de la base A, et qu'il ne
faut

pas aller la chercher dans B ?

Merci d'avance.

J'espère avoir été assez clair.

Jérôme








Publicité
Poster une réponse
Anonyme