Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2011, 11h33   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 25
Points : 7
Points : 7
Par défaut Regrouper 2 requêtes en une

Bonjour,

J'aimerais effectuer une requête sur plusieurs tables à la fois:

J'ai trois tables:

Options
Id | Option

Product
Id | Product

Link_Options
Id | Option_Id | Product_Id| qté

je dispose d'une variable article ou l'option est stockée, et j'aimerais récupérer la qté et le produit correspondant à cette option.

Je peux le faire de la manière suivante :

Code :
1
2
3
4
5
6
7
8
9
10
Set Db1 = DAO.OpenDatabase("C:base.mdb")
strSQL = "SELECT Product_Id, qté FROM Link_Options WHERE Option_Id IN(SELECT Id FROM Options WHERE Option = '" & article & "')"     
Set Rs = Db1.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
 
Product_Id = Rs("Product_Id")
qte=Rs("qté")
 
strSQL = "SELECT Product FROM Product WHERE Id = " & Product_Id & ""
 
Product = Rs("Product")
Je voudrais savoir si il était possible de n'effectuer qu'une seule requête regroupant les deux?

Merci par avance

Cordialement Kévin
Pentos60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 13h19   #2
Membre actif
 
Inscription : décembre 2009
Messages : 204
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 204
Points : 186
Points : 186
Un petit truc du genre, ça devrait le faire.

Code :
1
2
3
4
strSQL = " SELECT P.Product, L.qté FROM Link_Options L" & _
         " INNER JOIN Product P ON P.Product = L.product_id " & _
         " WHERE L.Option_Id IN ( " & _ 
                      " SELECT Id FROM Options WHERE Option = '" & article & "')"
tarnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 13h49   #3
Invité régulier
 
Inscription : janvier 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 25
Points : 7
Points : 7
Tout d'abord merci beaucoup pour ta réponse!

J'ai testé le code mais il génère l'erreur suivante:

Erreur d’exécution '3615'
incohérence de types dans une expression.

Aurais-tu une idée?

Encore merci.

Kévin
Pentos60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 14h02   #4
Invité régulier
 
Inscription : janvier 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 25
Points : 7
Points : 7
J'ai trouvé le problème, j'ai remplacé la partie:

Code :
JOIN Product P ON P.Product = L.product_id
par

Code :
INNER JOIN Product P ON P.Id = L.Product_Id
et cela marche parfaitement.

Merci beaucoup car cela fait un moment que je cherchais comment faire mais je ne savais pas trop comment utiliser correctement les jointures.

Cordialement Kévin
Pentos60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 21h43   #5
Membre actif
 
Inscription : décembre 2009
Messages : 204
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 204
Points : 186
Points : 186
Et évidement, 'me suis trompé dans les identifiants
tarnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h16.


 
 
 
 
Partenaires

Hébergement Web