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

Requete depuis deux bases différentes

3 réponses
Avatar
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

3 réponses

Avatar
Pierre CFI [mvp]
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" a écrit dans le message de 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




Avatar
Daniel Carollo
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" wrote in message
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




Avatar
Jerome VERITE
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" a écrit dans le
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" wrote in message
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