Probleme de condition dans mes requetes, :'( help [RESOLU] !!

Probleme de condition dans mes requetes, :'( help [RESOLU] !! - SQL/NoSQL - Programmation

Marsh Posté le 30-05-2006 à 10:24:37    

Bonjour a tous, j'ai recour à votre savoir car j'ai un souci avec mon ptit code....
Voila je voudrai inserer une condition "if" au sein meme d'une requete sql.
du genre :  

Code :
  1. /* Poste, Service, Duree, Cout_TTC, Numero_Demande, Date  sont mes champs
  2. CONSOTEL est le nom de ma table */
  3. SQL = "SELECT Poste, Service, Duree, Cout_TTC, Numero_Demande, Date FROM CONSOTEL Where CONSOTEL!Duree >= 20 "
  4. ....
  5. ' les {} c'est à cet endroit que je ne sais pas quoi y mettre ...
  6. If Me.chkDate Then
  7. If (Me.txtRechDate {est présent dans} CONSOTEL!Date And (Me.txtRechDate2 {est présent dans}CONSOTEL!Date)) Then
  8.     SQL = SQL & "And (CONSOTEL!Date >= #" & Me.txtRechDate & "# AND CONSOTEL!Date <= #" & Me.txtRechDate2 & "# )"
  9. If (Me.txtRechDate {est NON présent dans} CONSOTEL!Date) Then
  10.     Me.txtRechDate = Me.txtRechDate + 2

{ je souhaite avancer la date de 2 jours ( a cause du week end ) car sinon , ca m'affiche dans mon  Me.lstResultats.RowSource = SQL toutes les dates de l'année et pas uniquement celle que j'ai choisi dans mes txtbox ( txtRechDate et txtRechDate2 ) par contre ce n'est pas tres efficace si un jour férié pointe son nez  :??:  :??: :sweat: }
J'espere que vous comprenez mon probleme ...
je n'ai qu'une petite semaine de sql dans les jambes lol et j'aimerai terminer ce projet...  
..sauf que je n'arrive pas trouver la solution, d'ailleur je ne sais même pas si c'est possible.
je vous remerci de vos reponses.
A tres vite :)  
 
.:RavenShadoW:.


Message édité par RavenShadoW1 le 06-06-2006 à 11:27:07
Reply

Marsh Posté le 30-05-2006 à 10:24:37   

Reply

Marsh Posté le 30-05-2006 à 11:37:52    

ta requête SQL elle ressemble à quoi, car en regardant ton code, ça me donne pas trop envie de déchiffrer le truc.  
Sinon je suis persuadé qu'avec la requête on te donnera très vite la solution :D

Reply

Marsh Posté le 30-05-2006 à 11:45:58    

ben, c'est du VBasic, mais mon probleme se situe à l'interieur, au niveau SQL ... :s
en gros je souhaite que selon les choix fais sur mon formulaire de gestion téléphonique( choix par date, par poste .... )  
j'obtienne des requetes du style ( dans mon cas ici )
 
SELECT Poste, Service, Duree, Cout_TTC, Numero_Demande, Date FROM CONSOTEL Where CONSOTEL!Duree >= 20 And (CONSOTEL!Date >= #" & Me.txtRechDate & "# AND CONSOTEL!Date <= #" & Me.txtRechDate2 & "# )
 
txtRechDate et ...Date2  sont des zone de texte de type Date réduit ( 30-mai-2006 )
le probleme est que si je rentre dans ma premiere zone de texte : 01-mai-2006 et dans la seconde : 04-mai-2006    
il en sort toute la liste ( 19336 colonnes .... ) au lieux de qq. unes :s alors que le code donne :  
 
 
SELECT Poste, Service, Duree, Cout_TTC, Numero_Demande, Date FROM CONSOTEL Where CONSOTEL!Duree >= 20 And (CONSOTEL!Date >= #01-mai-2006# AND CONSOTEL!Date <= #04-mai-2006# )
 
je comprend plus rien :/ merci d'avance et j'espere qu'il y a une solution :// :'(

Reply

Marsh Posté le 30-05-2006 à 11:49:40    

Utile BETWEEN
 
WHERE Date BETWEEN #01/05/2006# AND #04/05/2006#

Reply

Marsh Posté le 30-05-2006 à 13:44:21    

non, toujours le meme probleme j'avais deja tester avec between, je viens de re essayer, et ca me fais le meme probleme :/

Reply

Marsh Posté le 30-05-2006 à 13:50:01    

il ne doit pas trouver 01-mai-2006 ni 04-mai-2006
le >= sert à faire une comparaison sur les chiffres pas sur des textes.

Reply

Marsh Posté le 30-05-2006 à 13:59:25    

justement, je voulais savoir, le type Date est bien considéré comme string ??
mais pourtant, quand je fais ... >= #03/03/2006# and CONSOTEL!Date <=  #13/03/2006#  
j'obtiens bien l'affichage compris entre ces deux dates ... :/
c'est pour ca que je saisi pas trop comment il arrive a le faire sur certaines dates et pas d'autres :/ et le ' # ' identifie bien que c'est un type date .....  
j'y suis deja depuis de bonnes heures, voir jour lol et quand je reviens sur ce probleme, j'y reste des plombes :s  
Merci en tout cas de vos réponses :) ca m'aide a réfléchir autrement meme si j'ai du mal a comprendre ...

Reply

Marsh Posté le 30-05-2006 à 14:42:24    

oui mais se sont des chiffres et 01-mai-2006 n'est pas dans le même format. Soit tu converti au bon format, soit tu trouve une autre solution.

Reply

Marsh Posté le 30-05-2006 à 15:15:25    

pourrais tu m'orienter dans la convertion de format stp ??
car la, je crois que je nage dans le paté depuis hier aprem deja lol
en tout cas, je tenais a te remercier antho1983 pour tes réponses :)


Message édité par RavenShadoW1 le 30-05-2006 à 15:15:54
Reply

Marsh Posté le 31-05-2006 à 08:51:04    

Je pense que le probleme vient du fait que mes dates sont écrites en francais ... (  08/01/2006  8 janvier 2006 ) et il les interprete a l'anglaise :s   ( 01/08/2006 ) car quand je fais mes condition en écrivant a l'anglaise ... ca marche  
maintenant reste a savoir comment transformer une date au format FR en format anglais .... autre probleme :'( lol


Message édité par RavenShadoW1 le 31-05-2006 à 09:22:45
Reply

Marsh Posté le 31-05-2006 à 08:51:04   

Reply

Marsh Posté le 31-05-2006 à 08:58:29    

Reply

Marsh Posté le 31-05-2006 à 09:06:26    

regarde du coté de la fonction FORMAT si tu es sous Access, sinon un équivalent pour l'sgbd que tu utilises

Reply

Marsh Posté le 31-05-2006 à 09:56:28    

2 zones de textes en Date, réduit
Une table avec un champ Date_tel  format Date, réduit  
je fais une recherche du 01/03/2006  au 04/03/2006  et il l'interprete :  
 
Trier du 03/01/2006 au 03/04/2006  ........  
c'est pas logique ... enfin, si les champs de saisie et les champs d'une table sont au meme format, pourquoi il complique la chose ... ??  
merci en tout cas antho pour le lien, mais c'est du php la, et jfé un formulaire sous access 2000 :)

Reply

Marsh Posté le 31-05-2006 à 10:09:18    

Reply

Marsh Posté le 31-05-2006 à 11:17:30    

[RESOLU] !!!
 
ca y est, je viens enfin de résoudre mon probleme !!!
:
 
SQL = SQL & "And (CONSOTEL!Date BETWEEN #" & Format(Me.txtRechDate, "mm/dd/yyyy" ) & "# AND #" & Format(Me.txtRechDate2, "mm/dd/yyyy" ) & "# )"
 
Merci a tous pour vos aides précieuses ;)

Reply

Marsh Posté le 31-05-2006 à 11:23:15    

de rien. bonne continuation

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed