Probleme requete sql

cs_chouchou78 Messages postés 15 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 23 juin 2004 - 17 juin 2004 à 17:19
cs_chouchou78 Messages postés 15 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 23 juin 2004 - 23 juin 2004 à 15:13
Bonjour, voici ma requete SQL, sous access, mais j'ai une erreur de syntaxe et je n'arrive pas a voir ou elle est. Je n'ai rien trouver dans l'aide donc je vous demande votre avis.

Voila la requete :

SELECT Contact_Evenement.Co_Ev_Date,
(If(Format(Month([Co_Ev_Date]),"00" ) = [Formulaires]![Menu Edition]![MoisA], Format(Month([Co_Ev_Date]),"00")) AS Expr1,
(If(Format(Month([Co_Ev_Date]),"00" ) = DateAdd("m",1,[Formulaires]![Menu Edition]![MoisA]), Format(Month([Co_Ev_Date]),"00")) AS Expr2,
(If(Format(Month([Co_Ev_Date]),"00" ) = DateAdd("m",2,[Formulaires]![Menu Edition]![MoisA]), Format(Month([Co_Ev_Date]),"00")) AS Expr3,
Client.Cl_Nom,
Site.Si_Nom,
Contact.Co_Num,
Contact.Co_Nom,
Contact.Co_Prenom
FROM (Client INNER JOIN (Contact LEFT JOIN Site ON Contact.Co_Site Site.Si_Num) ON Client.Cl_Num Contact.Co_Client) INNER JOIN Contact_Evenement ON Contact.Co_Num = Contact_Evenement.Co_Ev_Contact

WHERE ((Format(Month([Co_Ev_Date]),"00"))=[Formulaires]![Menu Edition]![MoisA])
OR ((Format(Month([Co_Ev_Date]),"00"))=DateAdd("m",1,[Formulaires]![Menu Edition]![MoisA]))
OR ((Format(Month([Co_Ev_Date]),"00"))=DateAdd("m",2,[Formulaires]![Menu Edition]![MoisA]));

Cette requete permet "normalement" de selectionner d'afficher dans une 1ere colonne le mois selectionner dan le formualaire "Menu edition" ex : janvier, dans la 2eme colonne mois+1 dc fevrier et dans la 3eme mois+2 dc mars.

Si ce n'est pas clair poser moi des questions et si vous avez une autre solution faites vos propositions.

Merci beaucoup a l'avance

:)

27 réponses

keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
23 juin 2004 à 08:39
Heu oups j'ai fait une faute de frappe. Ce que j'ai écrit donne un nombre entre 1 et 12 et pas entre 1 et 2

:big) Ah l'informatique c'est bien quant même :big)
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
23 juin 2004 à 10:56
Et re oups La fonction Ent() que j'ai mis dans mes calculs, c'est la version access de la fonction, la version SQL c'est Int()

Excuse moi chouchou78 je suis pas très réveillée aujourd'hui ;)

:big) Ah l'informatique c'est bien quant même :big)
0
cs_chouchou78 Messages postés 15 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 23 juin 2004
23 juin 2004 à 11:34
Merci ca fonctionne mieux avec Int().

J'ai l'impression que tu te moque un peu de moi ;)

J'ai toujours le probleme du "01" qu'il ne reconnait pas, j'ai tester avec le Format(Str(....)) il me dit : Fonction utilisée avec un nombre d'arguments incorrect dans l'expression 'IIf(Format(Month(Contact_Evenement.Co_Ev_Date))=Format(Str([Formulaires]![Menu Edition]![MoisA])+1,Contact_Evenement.Co_Ev_Date,""))'

J'ai egalement rajouter le format(str(...)) dans Where et la pas de soucis par contre y'a pas d'erreur mais ca fonctionne pas

Or (Format(Month([Contact_Evenement].[Co_Ev_Date])))=Format(Str([Formulaires]![Menu Edition]![MoisA]) + 1) - (Int((Str([Formulaires]![Menu Edition]![MoisA]) + 1) / 12) * 12)
0
cs_chouchou78 Messages postés 15 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 23 juin 2004
23 juin 2004 à 11:39
Oups a moi aussi car en fait ca fonctionne plus du tout avec 11 et 12 lol, dq je choisi 11 ca affiche bien els gens de novembre et c tout et qd je choisi 12 ca affiche rien meme pas ceux de novembre. Donc tout ca

Str([Formulaires]![Menu Edition]![MoisA]) - (Ent(Str([Formulaires]![Menu Edition]![MoisA]) / 12) * 12)

Pour le mois+1 :
(Str([Formulaires]![Menu Edition]![MoisA]) + 1) - (Ent((Str([Formulaires]![Menu Edition]![MoisA]) + 1) / 12) * 12)

Pour le mois+2 :
(Str([Formulaires]![Menu Edition]![MoisA]) + 2) - (Ent((Str([Formulaires]![Menu Edition]![MoisA]) + 2) / 12) * 12)

ne fonctionne pas

:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chouchou78 Messages postés 15 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 23 juin 2004
23 juin 2004 à 13:18
et qd je choisi 12 ca affiche rien meme pas ceux de novembre

il fallait lire meme pas ceux de decembre en fait g trop trop de mal moi aujourd'hui
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
23 juin 2004 à 13:48
Alors alors on va finir par y arriver :

Voila ce qui j'ai trouvé comme les commendaires que tu as fait :

SELECT Client.Cl_Nom,
Site.Si_Nom,
Contact.Co_Num,
Contact.Co_Nom,
Contact.Co_Prenom,
Contact_Evenement.Co_Ev_Date,
IIf(Month(Contact_Evenement.Co_Ev_Date)=IIf(Int([Formulaires]![Menu Edition]![MoisA]) Mod 12 = 0,12, Int([Formulaires]![Menu Edition]![MoisA]) Mod 12),Contact_Evenement.Co_Ev_Date,"") AS Mois,
IIf(Month(Contact_Evenement.Co_Ev_Date)=IIf((Int([Formulaires]![Menu Edition]![MoisA])+1) Mod 12 = 0,12, (Int([Formulaires]![Menu Edition]![MoisA])+1) Mod 12),Contact_Evenement.Co_Ev_Date,"") AS [Mois+1],
IIf(Month(Contact_Evenement.Co_Ev_Date)=IIf((Int([Formulaires]![Menu Edition]![MoisA])+2) Mod 12 = 0,12, (Int([Formulaires]![Menu Edition]![MoisA])+2) Mod 12),Contact_Evenement.Co_Ev_Date,"") AS [Mois+2]
FROM (Client INNER JOIN (Contact LEFT JOIN Site ON Contact.Co_Site Site.Si_Num) ON Client.Cl_Num Contact.Co_Client) INNER JOIN Contact_Evenement ON Contact.Co_Num = Contact_Evenement.Co_Ev_Contact

WHERE Contact_Evenement.Co_Ev_Evenement= -- ce que tu veux comme evenement
And (Month(Contact_Evenement.Co_Ev_Date)=IIf(Int([Formulaires]![Menu Edition]![MoisA]) Mod 12 = 0,12, Int([Formulaires]![Menu Edition]![MoisA]) Mod 12)
Or Month(Contact_Evenement.Co_Ev_Date)=IIf((Int([Formulaires]![Menu Edition]![MoisA])+1) Mod 12 = 0,12, (Int([Formulaires]![Menu Edition]![MoisA])+1) Mod 12)
Or Month(Contact_Evenement.Co_Ev_Date)=IIf((Int([Formulaires]![Menu Edition]![MoisA])+2) Mod 12 = 0,12, (Int([Formulaires]![Menu Edition]![MoisA])+2) Mod 12));

Je sais c'est un peu gros mais j'ai testé : ca marche du mois et janvier au mois de décembre, tu peut mettre 8 ou 08.
Par comtre après pour le tri je peux pas faire grand chose, là si le numéro du mois est plus petit que 10 c'est bon mais après il va falloir que tu les tri à la main.

Et pis là j'ai pas trop le temps d'y réfléchir.

J'espère que cette fois ci ca marchera mieux

:big) Ah l'informatique c'est bien quant même :big)
0
cs_chouchou78 Messages postés 15 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 23 juin 2004
23 juin 2004 à 15:13
c good merci :big)
0
Rejoignez-nous