Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Access 2003 + SQL SELECT WHERE BETWEEN

7 réponses
Avatar
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

7 réponses

Avatar
Sylvain Lafontaine
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" wrote in message
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



Avatar
guyguy
Bonjour Sylvain,

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

Merci!


gugguy




"Sylvain Lafontaine" a écrit dans le
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" wrote in message
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







Avatar
Sylvain Lafontaine
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" wrote in message
news:
Bonjour Sylvain,

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

Merci!


gugguy




"Sylvain Lafontaine" a écrit dans le
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" wrote in message
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











Avatar
Blaise Cacramp
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" a écrit dans le
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" wrote in message
news:
Bonjour Sylvain,

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

Merci!


gugguy




"Sylvain Lafontaine" a écrit dans le
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" wrote in message
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















Avatar
guyguy
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" a écrit dans le message de 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



Avatar
Sylvain Lafontaine
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" wrote in message
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" a écrit dans le message de 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







Avatar
guyguy
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" a écrit dans le
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" wrote in message
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" a écrit dans le message de 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