Problème requete SQL date between [Résolu]

Signaler
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008
-
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008
-
Bonjour à tous, j'ai un problème sur une requete et je ne trouve pas la solution. J'ai chercher sur le site mais je n'ai pas trouvé la solution...

Cette requete ne retourne rien alors qu'il y a des enregistrements à retourner :

RecTemp.Open ("SELECT TEMP.DATE_OPE, TEMP.SOCIETE, TEMP.ETAT, TEMP.[CLIENT/FRN], TEMP.LIBELLE, TEMP.NUM_FACT, TEMP.DEBIT, TEMP.CREDIT, TEMP.SOLDE " _
                            & " FROM TEMP " _
                            & " WHERE (((TEMP.DATE_OPE) BETWEEN #" & DateDebut & "# AND #" & DateFin & "#)) " _
                            & " ORDER BY TEMP.DATE_OPE, TEMP.SOLDE"), CnnBdd

DateDebut et DateFin sont 2 variables Date nourries par un DTPicker.

Ne n'y comprend plus rien...

Merci beaucoup pour votre aide.

20 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
(Ouf, enfin une question qui ne porte pas sur les # d'encadrement des dates)

Question : Ton champ "TEMP.DATE_OPE" est-il bien déclaré en type "Date Générale" dans ta DB ?
Question : Quelle format de DB : Access ?
C'est surement dû au fait que les dates stockées sous Access le sont sous le format américain, c'est à dire Mois/Jour/Année
Pour ma part, j'ai résolu le problème en demandant à Access de transformer la date en utilisant DateValue :
Essaye ça :
   & " WHERE [TEMP.DATE_OPE] BETWEEN " & _
                 "DateValue('" & DateDebut & "') AND " & _
                 "DateValue('" & DateFin & "') " _
Tu noteras que DateValue est placé à l'intérieur des " et la fonction sera calculée par Access, pas par ton programme VB.

PS : L'abus de parenthèses est nuisible à la clarté (Jack, tome II, verset 4012)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

J'ai trouvé...

Le type de mes champs numériques de ma BDD Access n'étaient pas bien déclarés.

La solution : Réel Double à 2 décimales...

Allez savoir pourquoi?!
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
encore et toujours les memes erreurs, au moins une fois par jour...
ca devient fatiguant...
le forum dispose d'une fonction de recherche, tu sais ?

Les dates dans les requêtes se formattent ainsi, comme l'a dit Jack
MM/DD/YYYY
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Merci beaucoup pour ta réponse jack.

En fait j'ai formaté mon champ date dans la base de données en format date agrégée.

Le problème était bien là !

Merci beaucoup.
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Rebonjour, j'ai un autre petit problème :

dans mon programme, je calcule des soldes de banque avec des écritures bancaires.

Lorsque je le programme calcule, à chaque ligne j'ai des variations de 0,01 ? maximum. Je ne comprends pas. Les valeurs entrées (débit, crédit) sont à 2 décimales.

D'où peut venir le problème? Mes champs de ma BDD doivent être de quel type?

Merci beaucoup de votre aide.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
je mettrais mes variables en Single
pour la bdd, je ne pense pas qu'il y ait 36 solutions
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Merci pour ta réponse rapide.

Je vais tester demain matin.
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

En single ça ne marche toujours pas.

Je ne sais pas d'ou peut venir le problème.

Ce ne sont pourtant que des additions et soustractions de chiffres à 2 décimales...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
pourrais tu reexpliquer précisément le soucis que tu as ? (avec du code, peut etre)
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

RecTemp.MoveFirst
While Not RecTemp.EOF
RecVisu.AddNew
RecVisu![SOCIETE] = RecTemp![SOCIETE]
RecVisu![CLIENT/FRN] = RecTemp![CLIENT/FRN]
RecVisu![LIBELLE] = RecTemp![LIBELLE]
RecVisu![NUM_FACT] = RecTemp![NUM_FACT]
RecVisu![CREDIT] = RecTemp![CREDIT]
RecVisu![DEBIT] = RecTemp![DEBIT]
RecVisu![DATE_OPE] = RecTemp![DATE_OPE]
RecVisu![ETAT] = RecTemp![ETAT]
SolSocSelCon = SolSocSelCon + RecTemp![CREDIT] - RecTemp![DEBIT]
RecVisu![Solde] = SolSocSelCon
RecVisu.Update
RecTemp.MoveNext
Wend

La variable SolSocSelcon est définie en sigle (comme tu m'as dis).
Tout le reste est des champs de la base de données Access.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
pas sur que ce soit indispensable de stocker le solde, si ? (ca se recalcule facilement)
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

J'ai toujours le même problème !

On "dirait" que ce phénomène apparaît lorsque mon recordset a un nombre conséquent d'enregistrements...

Je n'y comprend plus rien...
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Merci tout de même à tous !
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
c'était déclaré comment ?
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

C'était déclaré en réel simple et décimale Auto.

J'ai un autre problème avec cette requête :

RecCon.Open ("SELECT * FROM TRESORERIE WHERE [DATE_OPE] < #" & Date & "# AND [ETAT] = 'P' ORDER BY [SOCIETE], [DATE_OPE]"), CnnBdd

La comparaison ne se fait pas !

J'ai bon tourner...???

Merci.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
YYYY/MM/DD

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Je dois mettre ma date en format YYY/MM/DD.

C'est ça?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
essaye, tu seras fixe :p

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Trouvé !

Merci Renfield.

C'était YYYY/DD/MM...
Messages postés
18
Date d'inscription
dimanche 20 janvier 2008
Statut
Membre
Dernière intervention
12 avril 2008

Bonjour,


Je souhaiterai savoir s'il il existe une fonction qui indique qu'un
datagrid a été mis à jour par l'utilisateur (si l'on a modifié un
enregistrement).


Merci.