Probleme requete sql

Messages postés
15
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 juin 2004
-
Messages postés
15
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 juin 2004
-
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

Messages postés
48
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
5 avril 2006

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)
Messages postés
48
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
5 avril 2006

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)
Messages postés
15
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 juin 2004

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)
Messages postés
15
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 juin 2004

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

:)
Messages postés
15
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 juin 2004

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
Messages postés
48
Date d'inscription
lundi 1 septembre 2003
Statut
Membre
Dernière intervention
5 avril 2006

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)
Messages postés
15
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 juin 2004

c good merci :big)