Access 2003 + SQL SELECT WHERE BETWEEN

Le
guyguy
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise une
commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon une
lecture que j'ai faite sur Internet, c'est Access qui est sensé exécuter la
commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sylvain Lafontaine
Le #20098271
Problème d'arrondissement ou d'heure pour les champs DateTime.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise une
commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon une
lecture que j'ai faite sur Internet, c'est Access qui est sensé exécuter
la commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy



guyguy
Le #20098571
Bonjour Sylvain,

J'aurais besoin d'un peu plus d'explications.

Merci!


gugguy




"Sylvain Lafontaine" message de news:
Problème d'arrondissement ou d'heure pour les champs DateTime.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise une
commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux
limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon
une lecture que j'ai faite sur Internet, c'est Access qui est sensé
exécuter la commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy







Sylvain Lafontaine
Le #20098871
Vous devez d'abord donner un peu plus d'explication sur le problème que vous
rencontrez. Dans votre premier message, il n'y a aucun détail sur le code
VB6 utilisé ni sur la structure exacte des tables (en ce qui a trait aux
champs concernés) des valeurs utilisées qui ne retournent pas le résultat
attendu.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Sylvain,

J'aurais besoin d'un peu plus d'explications.

Merci!


gugguy




"Sylvain Lafontaine" message de news:
Problème d'arrondissement ou d'heure pour les champs DateTime.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise
une commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux
limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon
une lecture que j'ai faite sur Internet, c'est Access qui est sensé
exécuter la commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy











Blaise Cacramp
Le #20105811
Selon : Bonjour ou bonsoir

Il y a une grosse différence entre date() et now()
date() est un nombre entier (jj/mm/aaaa)
Now() est la date plus sa fraction d'heure (jj/mm/aaaa hh:mm:ss)

si tu veux prendre des champs 'now' entre 1er et le 31 juillet, la première
syntaxe est 'between #01/07/2009# and #01/08/2009#'
Cela veut dire entre le 01/07/2009 00:00:00 et le 01/08/2009 00:00:00
Cela fonctionne à condition qu'il n'y ait pas d'évènement à 01/08/2009
00:00:00

Sinon, transformer le champ 'now()' en cdate(ent([champ]))

Cdt, Blaise
---- ---- ----


"Sylvain Lafontaine" message de news: O%
Vous devez d'abord donner un peu plus d'explication sur le problème que
vous rencontrez. Dans votre premier message, il n'y a aucun détail sur le
code VB6 utilisé ni sur la structure exacte des tables (en ce qui a trait
aux champs concernés) des valeurs utilisées qui ne retournent pas le
résultat attendu.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Sylvain,

J'aurais besoin d'un peu plus d'explications.

Merci!


gugguy




"Sylvain Lafontaine" message de news:
Problème d'arrondissement ou d'heure pour les champs DateTime.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs,
svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise
une commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner
les enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux
limites.

Or, quand j'exécute mon application, les enregistrements égaux à
Valeur1 sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont
pas. Selon une lecture que j'ai faite sur Internet, c'est Access qui
est sensé exécuter la commande SELECT selon sa méthode, et non pas
Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy















guyguy
Le #20118931
Bonjour Sylvain et Blaise,

Vous m'avez mis sur la piste en parlant d'heure. Il suffisait effectivement
de rajouter 00:00:00 après la date de début et 23:59:59 après la date de fin
et mon problème a été résolu.

Merci beaucoup!

guyguy



"guyguy"
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise une
commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon une
lecture que j'ai faite sur Internet, c'est Access qui est sensé exécuter
la commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy



Sylvain Lafontaine
Le #20123771
Pas nécessairement toujours suffisant d'utiliser 23:59:59 à cause de la
possibilité des milli-secondes. Si possible, il est préférable de mettre
plus petit que la journée suivante.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Sylvain et Blaise,

Vous m'avez mis sur la piste en parlant d'heure. Il suffisait
effectivement de rajouter 00:00:00 après la date de début et 23:59:59
après la date de fin et mon problème a été résolu.

Merci beaucoup!

guyguy



"guyguy"
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise une
commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux
limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon
une lecture que j'ai faite sur Internet, c'est Access qui est sensé
exécuter la commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy







guyguy
Le #20140811
Bonjour Sylvain,

Merci pour la précision. Ce n'est pas utile dans le cas qui me préoccupait,
mais peut-être dans un autre cas.


guyguy


"Sylvain Lafontaine" message de news:
Pas nécessairement toujours suffisant d'utiliser 23:59:59 à cause de la
possibilité des milli-secondes. Si possible, il est préférable de mettre
plus petit que la journée suivante.

--
Sylvain Lafontaine, ing.
MVP pour « Windows Live Platform »
Courriel: sylvain2009 sylvainlafontaine com (remplissez les blancs, svp.)
Consultant indépendant et programmation à distance pour Access et
SQL-Server.


"guyguy" news:
Bonjour Sylvain et Blaise,

Vous m'avez mis sur la piste en parlant d'heure. Il suffisait
effectivement de rajouter 00:00:00 après la date de début et 23:59:59
après la date de fin et mon problème a été résolu.

Merci beaucoup!

guyguy



"guyguy"
Bonjour Groupe,

J'ai créé une application avec Visual Basic 6 qui utilise une base de
données Access 2003. Cette application ouvre un recordset qui utilise
une commande SQL du genre SELECT * WHERE FieldDate BETWEEN Valeur1 AND
Valeur2.

Selon l'aide de Access, le mot-clé BETWEEN serait sensé sélectionner les
enregistrements égaux à Valeur1 et Valeur2, donc inclure les deux
limites.

Or, quand j'exécute mon application, les enregistrements égaux à Valeur1
sont sélectionnés mais ceux ceux égaux à Valeur2 ne le sont pas. Selon
une lecture que j'ai faite sur Internet, c'est Access qui est sensé
exécuter la commande SELECT selon sa méthode, et non pas Visual Basic.

Que faut-il en penser?

Merci à l'avance pour toute aide.


guygguy











Publicité
Poster une réponse
Anonyme