Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 18/01/2012, 07h10   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
Par défaut Requete DISTINCT multicolonnes

Salut Groupe,

Quelquun peut me dire se qui cloche....
La requete #1 OK voir image incluse

Je dois faire une requete sur cette requete pour me donner le résultat sur une seule ligne des Desc_French (Instructions de lavages)/Grandeurs.....ce qui devrait etre ceci.....
la requete #2:
Code sql :
1
2
SELECT DISTINCT Req_Labels_Produits_Francais.Product_Code, Req_Labels_Produits_Francais.Style_FR, Req_Labels_Produits_Francais.Color_FR, Req_Labels_Produits_Francais.Size, Req_Labels_Produits_Francais.BarCode, Req_Labels_Produits_Francais.CompositionDesc_French, Req_Labels_Produits_Francais.MadeIn_FR, Req_Labels_Produits_Francais.Desc_French, RecupInstrLav([Size]) AS Instructions
FROM Req_Labels_Produits_Francais;


le module:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function RecupInstrLav(Size) As String
Dim res As DAO.Recordset
Dim SQL As String
 
SQL = "SELECT Desc_French FROM Req_Labels_Produits_Francais WHERE Size=" & Size
Set res = CurrentDb.OpenRecordset(SQL)
 
While Not res.EOF
RecupInstrLav = RecupInstrLav & res.Fields(0).Value & " "
res.MoveNext
Wend
 
RecupInstrLav = Left(RecupInstrLav, Len(RecupInstrLav) - 1)
 
Set res = Nothing
End Function
Mais le tout me donne une erreur exécution : 3061
too few parameters. Expected 1

Je suis novice dans SQL et ACCESS alors soyez indulgent svp....et merci davance..
Images attachées
Type de fichier : jpg 111.jpg (133,6 Ko, 6 affichages)
Marcucus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 09h17   #2
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220


l'argument Size est-il numérique ?

Sinon, il faudrait corriger la syntaxe en ajouter des quotes :

Code SQL :
SQL = "SELECT Desc_French FROM Req_Labels_Produits_Francais WHERE Size= '" & Size & "'"
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h35   #3
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
Salut Jeannot ,ça marche si je ne demande pas les STYLE/COLOR/SIZE dans ma requete.....mais lidéal est de demander a meme la requete....le style/color/size.....avant limpression des étiquettes
Size est Texte
(S) pour Small, (M) pour Medium etc...
Images attachées
Type de fichier : jpg ask.jpg (28,4 Ko, 3 affichages)
Marcucus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 07h42   #4
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220


Ce qui confirme le fait d'implanter les quotes dans ta syntaxe :

Code SQL :
SQL = "SELECT Desc_French FROM Req_Labels_Produits_Francais WHERE Size= '" & Size & "'"

Pourquoi ne pas saisir les valeurs de critères via un formulaire ?
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 20h53   #5
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 0
Points : 0
Salut Jeannot,

Je ne voulais pas de formulaire parce que je voulais sauver une étape. Crois tu qu'avec le formulaire je n'aurais plus de message d'erreurs? Le but est que quand je clique sur mon état, il me demande le Style,couleur,grandeur, ensuite il condense les instruction de lavage en un champs sur une ligne et ensuite me l' imprime sur 1 étiquette et non sur X étiquettes dépendamment du nombre d'instruction de lavage. 1 produit peut avoir 2,3 ou plus d'instruction de lavage. De la le fait que quand j'exécute la requete, jai plusieurs lignes de résultats, mais avec quun champ différents que je voudrais concatener en une ligne pour pouvoir limprimer.

As tu une idée ou ca cloche ?.....Pourrais-je faire tout ceci en 1 requete au lieu de 2 ?
Select Distinct....est vraiment nécessaire puisque jentre les infos pour 1 produit/couleur/grandeur spécifique???? ou bien je nai besoin que d'un module de concatenation des lignes ???

Si la requete est bien faite, le résultat de celle ci devrait donner qu'un produit/couleur/grandeur/upc/classe/etc.....mais avec 1 seul champ différent, celui de la Description des Instructiopns de lavage.
bbb.jpg

donnerais ceci:
aaa.jpg

Requete 2 en SQL pour concatenation:
Code :
1
2
3
4
5
6
7
SELECT DISTINCT Req_Labels_Produits_Francais.Product_Code, Req_Labels_Produits_Francais.Style_FR, 
Req_Labels_Produits_Francais.Color_FR, 
Req_Labels_Produits_Francais.Size, 
Req_Labels_Produits_Francais.BarCode, 
Req_Labels_Produits_Francais.CompositionDesc_French, Req_Labels_Produits_Francais.MadeIn_FR, 
RecupInstrLav([BarCode]) AS InstrucLavage
FROM Req_Labels_Produits_Francais;
Devrais donner ceci:
ggg.jpg

mais message d'erreur:
fff.jpg

Donnerais pour résultat a limpression:
CCC.jpg

Module corrigé:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function RecupInstrLav(BarCode) As String
Dim res As DAO.Recordset
Dim SQL As String
 
SQL = "SELECT Desc_French FROM Req_Labels_Produits_Francais WHERE BarCode='" & BarCode & "'"
Set res = CurrentDb.OpenRecordset(SQL)
 
While Not res.EOF
RecupInstrLav = RecupInstrLav & res.Fields(0).Value & " / "
res.MoveNext
Wend
 
RecupInstrLav = Left(RecupInstrLav, Len(RecupInstrLav) - 3)
 
Set res = Nothing
End Function
Qu'est ce qui cloche ?

Merci d'avance de me donner du temps et de l'aide
Marcucus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 09h45   #6
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220


Réponse un peu tardive

En regardant tes images attachées, il semblerait que BarCode soit Numérique.

il est vrai que je t'avais indiqué que puisque Size était alphabétique, il fallait utiliser des quotes. Avec un champ de type numérique, les quotes génèrent une erreur.

Ainsi :

Code SQL :
SQL = "SELECT Desc_French FROM Req_Labels_Produits_Francais WHERE BarCode='" & BarCode & "'"

devient

Code SQL :
SQL = "SELECT Desc_French FROM Req_Labels_Produits_Francais WHERE BarCode= " & BarCode
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h35.


 
 
 
 
Partenaires

Hébergement Web