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

[WD55b] Problème de comparaison de date avec Base Access

4 réponses
Avatar
Frédéric QUINTANA
Bonjour !

J'ai un probleme de récupération de données sur Base Access 97. J'exécute
une requête de type "SELECT" sur la base Access pour récupérer les données
du jour. Sur la base Access le champ DATETIME à comparer avec mon champ
"s_date" est de la forme "28/10/03 17:06:00". Je n'arrive pas à comparer mon
champ de saisie "s_date" de format AAAAMMJJ sous Windev avec celui d'Access.
Quelle norme faut-il utiliser pour comparer des dates ? J'ai vraiment tout
essayé mais là je suis à cours d'idée. En plus sous Base Access 2000 la
comparaison avec des "#" fonctionne mais pas dans ce cas là. SELECT .....
WHERE DATETIME >= #DateDebut# AND DATETIME <= #DateFin# sous Access 2000 ça
marche mais pas sous Access 97 ????? Quelle mer2 !!!

Merci d'avance pour vos réponses.

4 réponses

Avatar
Gégé
> J'ai un probleme de récupération de données sur Base Access 97. J'exécute
une requête de type "SELECT" sur la base Access pour récupérer les données
du jour. Sur la base Access le champ DATETIME à comparer avec mon champ
"s_date" est de la forme "28/10/03 17:06:00". Je n'arrive pas à comparer mon
champ de saisie "s_date" de format AAAAMMJJ sous Windev avec celui d'Access.
Quelle norme faut-il utiliser pour comparer des dates ? J'ai vraiment tout
essayé mais là je suis à cours d'idée. En plus sous Base Access 2000 la
comparaison avec des "#" fonctionne mais pas dans ce cas là. SELECT .....
WHERE DATETIME >= #DateDebut# AND DATETIME <= #DateFin# sous Access 2000 ça
marche mais pas sous Access 97 ????? Quelle mer2 !!!

Merci d'avance pour vos réponses.



C'est le pb de compatibilité sur les champs DATETIME. Tu dois faire la
conversion soit
- par code avec les fonctions Gauche, Droite ou Milieu
- si tu utilises des champs avec la propriété Valeur de retour au format
AAAAMMJJ
Il faut que tu passes cela comme une chaîne
... WHERE Date >= '"+TaDate+"' ...
Avatar
Jean-Paul Lequeu
Frédéric QUINTANA wrote:
Bonjour !

J'ai un probleme de récupération de données sur Base Access 97.
J'exécute une requête de type "SELECT" sur la base Access pour
récupérer les données du jour. Sur la base Access le champ DATETIME à
comparer avec mon champ "s_date" est de la forme "28/10/03 17:06:00".
Je n'arrive pas à comparer mon champ de saisie "s_date" de format
AAAAMMJJ sous Windev avec celui d'Access. Quelle norme faut-il
utiliser pour comparer des dates ? J'ai vraiment tout essayé mais là
je suis à cours d'idée. En plus sous Base Access 2000 la comparaison
avec des "#" fonctionne mais pas dans ce cas là. SELECT ..... WHERE
DATETIME >= #DateDebut# AND DATETIME <= #DateFin# sous Access 2000 ça
marche mais pas sous Access 97 ????? Quelle mer2 !!!

Merci d'avance pour vos réponses.


Bonjour,
De mémoire sous Access97, lorqu'on utilise les fonctions SQL, il faut
formater la date sous le format MMJJAA tout
en n'oubliant pas de précéder la variable par # et d'ajouter à la fin de la
variable #
Je pense que la fonction qui permet de formater la date sous Access est :
Format(NomVariable, "mm/dd/yy").

J'espère avoir pu vous aider.
Jean-Paul
Avatar
Fabrice Burghgraeve
Bonjour.

"Jean-Paul Lequeu" a écrit dans le message de
news:3f9f8679$0$16229$
Frédéric QUINTANA wrote:
> Bonjour !
>
> J'ai un probleme de récupération de données sur Base Access 97.
> J'exécute une requête de type "SELECT" sur la base Access pour
> récupérer les données du jour. Sur la base Access le champ DATETIME à
> comparer avec mon champ "s_date" est de la forme "28/10/03 17:06:00".
> Je n'arrive pas à comparer mon champ de saisie "s_date" de format
> AAAAMMJJ sous Windev avec celui d'Access. Quelle norme faut-il
> utiliser pour comparer des dates ? J'ai vraiment tout essayé mais là


(...)
Bonjour,
De mémoire sous Access97, lorqu'on utilise les fonctions SQL, il faut
formater la date sous le format MMJJAA tout
en n'oubliant pas de précéder la variable par # et d'ajouter à la fin de


la
variable #
Je pense que la fonction qui permet de formater la date sous Access est :
Format(NomVariable, "mm/dd/yy").

J'espère avoir pu vous aider.
Jean-Paul




theoriquement (tout est la), on peut passer du SQL standard a un driver
ODBC.

Perso, quand j'ai un probleme de syntaxe SQL, je me refere a la doc de la
base de donnees qu'on utilise :
PostgreSQL

Cette base a ceci de bien qu'elle tend vers le standard SQL92, et en tout
cas la doc est bien faite,
quand les instructions different de la norme, ou sont des extensions, c'est
indique.

Donc meme sans utiliser cette BD, je conseille a ceux qui ont des problemes
de syntaxe SQL de s'y referrer.

Pour le format de date, il me semble que le format standard est ISO, soit :
AAAA-MM-JJ

voila ce que dit la doc de postgresql :
(attention : c'est un copier-coller du tableau. la je voies un beau tableau,
mais j'espere que ce sera lisible en reception.
Toutes mes excuses si ce ne l'est pas. Allez alors vous plaindre a Bill
Gates de son outlook.)


Table 5-15. Date/Time Output Styles

Style Specification Description Example
ISO ISO 8601/SQL standard 1997-12-17 07:37:16-08
SQL traditional style 12/17/1997 07:37:16.00 PST
PostgreSQL original style Wed Dec 17 07:37:16 1997 PST
German regional style 17.12.1997 07:37:16.00 PST

The SQL style has European and non-European (U.S.) variants, which
determines whether month follows day or vice versa. (See Section 5.5.1 for
how this setting also affects interpretation of input values.) Table 5-16
shows an example.

Table 5-16. Date Order Conventions

Style Specification Description Example
European day/month/year 17/12/1997 15:37:16.00 MET
US month/day/year 12/17/1997 07:37:16.00 PST





Cela dit, access, c'est microsoft.
Ca ne m'etonnerait qu'a moitie si il n'avaient pas suivi le standard, pour
emmerder le monde.
Mais c'est a verifier.

Peut-etre est-ce aussi possible de forcer le format de la date retourne par
la base suivant un certain standard.
De memoire, en Oracle, il y a la commande :
SET DATESTYLE TO ISO;
(ou un truc comme ca)

--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
Avatar
Eric L.
Je crois (fin sans être sûr à 100%) que comme le type date stocke une date +
une
heure dans access, pour être sûr que ça marche, il faut faire quelque chose
de la sorte :

WHERE DATETIME >= #01/12/2003 00:00:00#
AND DATETIME <= #31/12/2003 23:59:59#

par contre je ne me rappelle plus du format à utiliser pour la date
(JJ/MM/AAA ou
MM/JJ/AAAA)...

bon courage ;)
Eric L.

"Frédéric QUINTANA" a écrit dans le message
de news:bnnu9c$3dm$
Bonjour !

J'ai un probleme de récupération de données sur Base Access 97. J'exécute
une requête de type "SELECT" sur la base Access pour récupérer les données
du jour. Sur la base Access le champ DATETIME à comparer avec mon champ
"s_date" est de la forme "28/10/03 17:06:00". Je n'arrive pas à comparer


mon
champ de saisie "s_date" de format AAAAMMJJ sous Windev avec celui


d'Access.
Quelle norme faut-il utiliser pour comparer des dates ? J'ai vraiment tout
essayé mais là je suis à cours d'idée. En plus sous Base Access 2000 la
comparaison avec des "#" fonctionne mais pas dans ce cas là. SELECT .....
WHERE DATETIME >= #DateDebut# AND DATETIME <= #DateFin# sous Access 2000


ça
marche mais pas sous Access 97 ????? Quelle mer2 !!!

Merci d'avance pour vos réponses.