|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2008 Messages : 12 ![]() |
Bonjour à tous,
Je souhaiterai faire sous Access 2010, une requête avec une recherche par rapport à plusieurs critères. Quelq'un aurait-il une réponse à ce probleme? La table des valeurs Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
C'est un peu vague comme demande.
Souhaites-tu donner à l'utilisateur final le choix ? Est-ce un truc que tu va faire une seule fois ? A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 12 ![]() |
En fait il n'y a pas de choix c'est tout simplement une requete qui va chercher les prix de la premiere table.
Si la date de facturation est le 15/02/2011, il va chercher pour le code 'codeA', la date la plus proche avant la date de facturation, soit le 11/02/2011. Donc le prix affiché est 724,99. Je ne sais pas si c'est assez clair comme explication. |
|
|
00
|
|
|
#4 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
OK, ouvre l'éditeur de requête d'Access, ajoute la table voulu, choisi les champs qui t'intéresse et glisse les dans les colonnes en dessous.
Une fois cela fait, met les conditions que tu cherches dans la ligne des critères. en SQL cela pourrait donner Code sql :
SELECT [taTable].[TonChampDate], [taTable].[TonChampPrix] FROM [TaTable] WHERE [taTable].[TonChampSate]=dateserial(2011, 02, 15) AND [taTable].[TonChampPrix]=724.99; J'ai utilisé DateSerial() à la place d'une date pour éviter les ambiguités de format de date. Quand Access voit 02/01/2011 il peut lire 2 janvier 2011 ou 1er février 2011 avec DateSerial(Annee, Mois, Jour) il n'y a aucun doute possible. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#5 | ||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
Bonjour,
si j’ai bien compris et en partant des tables [TableFacturation] (DateFacturation, CodeArticle) et [TableValeurs] (Date, CodeArt, Prix). La requête ci-dessous va retourner les lignes : Code :
Code sql :
Il suffit ensuite de reprendre la requête précédente et de faire les jointures ad-hoc avec la table [TableValeurs] à l’aide des assistants pour aller chercher le prix correspondant.
__________________
L'informatique fait son grand retour au lycée... |
||||
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 12 ![]() |
Bonjour f-leb,
tu as parfaitement compris la requete que je voudrai sauf que ce sont les prix que je voudrai afficher et non les dates. En fait la deuxieme liste n'est pas une table mais une requete reprenant une table regroupant les factures avec une colonne en plus affichant les prix de reveint de la table des valeurs que j'aurait dû appeller table des prix de revient. Merci pour vos réponses |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
bonjour patougaffou,
Citation:
Pour arriver à tes fins, il suffit donc de créer une nouvelle requête avec les assistants: RequetePrecedente========TableValeurs avec jointures sur les deux champs: RequetePrecedente.dateprix-----------TableValeurs.Date RequetePrecedente.codearticle--------TableValeurs.Codeart là, tu sélectionnes les champs que tu souhaites afficher et ça devrait marcher...Je te laisse adapter avec tes noms de tables/requêtes/champs.
__________________
L'informatique fait son grand retour au lycée... |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 12 ![]() |
Merci f-leb,
J'ai compris et pu réaliser ma requete, ça marche parfaitement. Mais explique moi un peu, si possible, cette méthode de requete intermediare ou le but de la manip afin de faire une recherche plus détaillée sur cette téchnique. Je te remercie pour ta précieuse aide. |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
Bonjour,
alors pour mieux décrire le principe, j’ai préféré décomposer le problème et me priver du gros SQL qui tache en passant par les assistants graphiques ![]() Donc en partant toujours des tables [tableFacturation] et [tableValeurs] voici la décomposition en 3 étapes, la 2ème requête (nommée V) reprenant la 1ère (nommée U) et la 3ème et dernière (nommée Final) reprenant la 2ème : ![]() Je pense qu’en testant les 3 requêtes séparément tu comprendras ce qu’elles font mais n’hésite pas à me relancer si ce n’est pas clair. PS : il y a sans doute d’autres solutions et dans ce cas je suis preneur aussi
__________________
L'informatique fait son grand retour au lycée... |
|
00
|
Copyright © 2000-2012 - www.developpez.com