DTPicker :please help!

Signaler
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Rebonjour,

Voilà je me suis rendu compte lors de mon projet, lorsque je voulais déterminer un intervalle de temps à l'aide de deux DTPicker, cela ne fonctionnais pas du tout.

Voici ce que j'avvais écris:
strReq= "Left (StartDate,10) >=' " & DTPIcker1.Value & " ' And Left (StartDate,10) <= ' " & DTPicker2.Value & " ' "

StartDate est un champ de ma base de donnée

En fait, cela ne calcule pas la différence entre mes deux DTPicker.
Exemple:  
DTPicker1=  01/06/2006
DPPicker2= 01/07/2006
Il ne m'affiche rien alors qu'entre ses deux dates j'ai plusieurs enregistrements.
 
Par contre si je mets:
DTPicker1= 01/06/2006
DTPicker2= 22/06/2006
La il m'affiche des enregistrements entre ses deux dates. Je pense qu'il fait la soustraction entre 22 et 1.

Comment dois-je m'y prendre pour faire la différence entre les années, les mois et les jours

SVP là je ne pourrais pas m'en sortir toute seule car je ne vois pas du tout comment faire
Merci d'avance

16 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

remplace peut-être les apostrophes par les dièses (#) de chaque côté des dates

++
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Salut Mortalini,


J'ai essayé et ça ne fonctionne pas, il n'y a rien qui change
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Excuse!  Mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Pas de prob,

et désolé mais je ne suis pas spécialiste en requête. Je sais juste qu'il y a une histoire de Dièse qque part.

Attend un peu, qqun d'autre t'aidera certainement. ;)

++
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Est-ce-que tu pourrais me dire s'il existe une fonction où je pourrais récupérer des caractères dans mon StartDate
Du genre:

?????????(StartDate, 3 to 10)
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Oui, avec Mid

Exemple :

MaVariable = "Bonjour"
MsgBox Mid(MaVariable, 4, 4)

--> tu auras en message "jour"

++
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Merci, je vais essayer qqch et je te tiens au courant
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Voilà j'ai voulu extraire les jours les mois et les années mais sans succès. Peut-être que j'ai fait une erreur voudrais-tu bien m'aider

strReqDate1 = " (Mid(Startdate,6,4)>='" & DTPicker2.Year & "' And Mid(Startdate,6,4)<='" & DTPicker3.Year & " ') Or ((Mid(Startdate,6,4)>='" & DTPicker2.Year & "' And Mid(Startdate,6,4)<='" & DTPicker3.Year & " ') And (Mid(Startdate,4,2)>='" & DTPicker2.Month & "' And Mid(Startdate,4,2)<='" & DTPicker3.Month & " ')) Or ((Mid(Startdate,6,4)>='" & DTPicker2.Year & "' And Mid(Startdate,6,4)<='" & DTPicker3.Year & " ') And (Mid(Startdate,4,2)>='" & DTPicker2.Month & "' And Mid(Startdate,4,2)<='" & DTPicker3.Month & " ') And (Mid(Startdate,1,2)>='" & DTPicker2.Day & "' And Mid(Startdate,1,2)<='" & DTPicker3.Day & " '))"
 strReqDate = strReqDate1

Un peu long mais STP aide moi
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Peu etre peu tu essayer la clause BETWEEN
strReq"StartDate BETWEEN '" & DTPIcker1.Value & "' AND '" & DTPicker2.Value & "'"> ATTENTION J'ai supprimer les escpaces ta requete mettais '_21/09/2006_' (avec espace = _ ) peu etre que cela peu aussi venir de la.

Sinon je suppose que c'est une requete SQL, peu etre pourrais tu nous donner la requete COMPLETE car la ceci a juste l'air d'etre la clause WHERE
   
@+,   Ju£i?n
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

En effet voici la requête SQL:

strReqBase = "SELECT StartDate,EndDate,WinderNum,RecipeNum,RecipeName,LotName,ShiftNum,YarnEff,MachEff,ARUCNT,DefCNT,DefTIM,WindTIM,YbCNT,YbDefTIM,DoffCNT,DoffTIM,YarnLgth,AntiLoopCNT,AntiLoopTIM,MatEmptyCNT,MatEmptyTIM FROM ShiftReport"
strReqWhere = " WHERE"


If optSelectDate(1).Value = True Then
            bReqWhere = True
            bReqDate = True
           
            strReqDate1 = " ((Mid(Startdate,6,4)>='" & DTPicker2.Year & "' And Mid(Startdate,6,4)<='" & DTPicker3.Year & " ')) Or ((Mid(Startdate,6,4)>='" & DTPicker2.Year & "' And Mid(Startdate,6,4)<='" & DTPicker3.Year & " ') And (Mid(Startdate,4,2)>='" & DTPicker2.Month & "' And Mid(Startdate,4,2)<='" & DTPicker3.Month & " ')) Or ((Mid(Startdate,6,4)>='" & DTPicker2.Year & "' And Mid(Startdate,6,4)<='" & DTPicker3.Year & " ') And (Mid(Startdate,4,2)>='" & DTPicker2.Month & "' And Mid(Startdate,4,2)<='" & DTPicker3.Month & " ') And (Mid(Startdate,1,2)>='" & DTPicker2.Day & "' And Mid(Startdate,1,2)<='" & DTPicker3.Day & " '))"
            strReqDate = strReqDate1
End If


If bReqWhere = True Then
        strReq = strReqBase & strReqWhere
Else
        strReq = strReqBase    
End If
   


If bReqDate = True Then
            strReq = strReq & strReqDate
End If

Par contre je n'ais pas saisi le problème des espaces
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

salut julien j'ai essayé avec le beetween mais ça ne passe pas!!


J'ai oublier de préciser que le StartDate donne une date en ASCII. Est-ce-que ça joue avec la valeur des DTPicker?
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Coucou ya qqn, personne ne vraiment m'aider????
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Salut,


Je pense (suis certain) que tu dois changer le format de tes dates pour
le format anglais. SQL ne peut rien faire avec des formats autres que
l'anglais.

De cette façon, Between devrait marcher.

Et >= et <= devraient aussi marcher.


Sinon, tu devras modifier tes dates pour un format du genre aaaammjj

En faisant de la sorte avec un champ numérique simple, donc sans séparateur, tu trouveras ton bonheur.

L'important, dans ce cas-ci, c'est de bien mettre l'année en premier à
4 chiffres, puis le mois à 2 chiffres, puis le jour à 2 chiffres
Tes dates auront toujours 8 chiffres et ces chiffres seront toujours croissants à mesure que les dates avancent.

MPi
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Que cela soit du cote SQL ou du COte VB tu peux aussi essayer les Fonction Day, Month, Year => (verifier les equivalent sous SQL)

@+,   Ju£i?n
Messages postés
197
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
17 novembre 2006

Salut Julien,


J'ai essayé avec les fonctions Date, Month et Year mais ça na rien donné
Est-ce-que je peu t'envoyer mon code source?


 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,


Si tu veux. => [mailto:epsylon9@gmail.com epsylon9@gmail.com]


En revanche donne bien tout si tu peux. => je n'ai pas la base de données... D'ailleurs c'est quoi comme base de données






@+,   Ju£i?n