OVH Cloud OVH Cloud

recuperer la partie 'date' d'un champ date complète

12 réponses
Avatar
leeloo
Bonjour,
J'ai un soucis pour selectionner dans une requete sur un champ
date/heure les enregs d'un jour donné.

Je comptais utiliser :
--------------------------
PartDate("d";[Formulaires]![logs]![date]) Et
PartDate("m";[Formulaires]![logs]![date]) Et
PartDate("aaaa";[Formulaires]![logs]![date])
--------------------------
Mais Access le transforme en :
--------------------------
PartDate("\d";[Formulaires]![logs]![date]) Et
PartDate("m";[Formulaires]![logs]![date]) Et
PartDate("""yyyy""";[Formulaires]![logs]![date])
--------------------------
et bien sur Access se plante sur expression trop complexe :)

Y a-t-il plus simple ?
Merci de votre aide

Leeloo

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

tu peux utiliser
SELECT table1.* FROM table1
WHERE table1.Ladate = Date();

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"leeloo" a écrit dans le message de
news:
Bonjour,
J'ai un soucis pour selectionner dans une requete sur un champ
date/heure les enregs d'un jour donné.

Je comptais utiliser :
--------------------------
PartDate("d";[Formulaires]![logs]![date]) Et
PartDate("m";[Formulaires]![logs]![date]) Et
PartDate("aaaa";[Formulaires]![logs]![date])
--------------------------
Mais Access le transforme en :
--------------------------
PartDate("d";[Formulaires]![logs]![date]) Et
PartDate("m";[Formulaires]![logs]![date]) Et
PartDate("""yyyy""";[Formulaires]![logs]![date])
--------------------------
et bien sur Access se plante sur expression trop complexe :)

Y a-t-il plus simple ?
Merci de votre aide

Leeloo



Avatar
leeloo
Raymond [mvp] a écrit:
Bonjour.

tu peux utiliser
SELECT table1.* FROM table1
WHERE table1.Ladate = Date();

Date() renvoie la date systeme, donc du jour, non ?

Je voudrais faire la recherche sur une date (sans l'heure) quelconque...
Me suis-je mal fait comprendre :)

Leeloo

Avatar
Raymond [mvp]
Tu remplace date() par un paramètre ou un champ de formulaire
pour tes essais remplaces date() par [Entrer la date]

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"leeloo" a écrit dans le message de
news:


Raymond [mvp] a écrit:
Bonjour.

tu peux utiliser
SELECT table1.* FROM table1
WHERE table1.Ladate = Date();

Date() renvoie la date systeme, donc du jour, non ?

Je voudrais faire la recherche sur une date (sans l'heure) quelconque...
Me suis-je mal fait comprendre :)

Leeloo




Avatar
leeloo
Raymond [mvp] a écrit:
Tu remplace date() par un paramètre ou un champ de formulaire
pour tes essais remplaces date() par [Entrer la date]

Bon, je crois en effet que je me suis mal exprimée :)

Je récupère (dans un formulaire appliqué à table1) une date (format
date+heure) dont je voudrais récupérer la partie date seulement (sans
l'heure) comme critère d'une requête sur un champ d'une table2 (format
date+heure) pour sélectionner toutes les opérations qui ont eu lieu à
cette date indépendamment de l'heure (ouf :-)

Quelle fonction pour récupérer juste la partie date ?

Merci

Leeloo

Avatar
Raymond [mvp]
Format(monchampdate;"jj/mm/aaaa" ou tout autre format selon ta version.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"leeloo" a écrit dans le message de
news:


Raymond [mvp] a écrit:
Tu remplace date() par un paramètre ou un champ de formulaire
pour tes essais remplaces date() par [Entrer la date]

Bon, je crois en effet que je me suis mal exprimée :)

Je récupère (dans un formulaire appliqué à table1) une date (format
date+heure) dont je voudrais récupérer la partie date seulement (sans
l'heure) comme critère d'une requête sur un champ d'une table2 (format
date+heure) pour sélectionner toutes les opérations qui ont eu lieu à
cette date indépendamment de l'heure (ouf :-)

Quelle fonction pour récupérer juste la partie date ?

Merci

Leeloo




Avatar
leeloo
Raymond [mvp] a écrit:
Format(monchampdate;"jj/mm/aaaa" ou tout autre format selon ta version.

Cette fonction ne renvoie pas un format texte ?

Toujours est-il que ça ne me retourne rien dans la requête...
si je l'inclue dans ValDate() ou DateValue(), ça marche pas non plus...

En outre, c'est que ces histoires de format...
l'aide me donne ça :
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
et pour que ça marche il faut que je mette des ';'

Bon, j'ai la tête comme une bassine ce soir, j'arrête...
Merci pour tout

Leeloo

Avatar
Raymond [mvp]
Ta requête doit être exactement comme ceci pour que ça marche:
SELECT table1.* FROM table1
WHERE Format([madate],"dd/mm/yyyy")=[entrer la date];

si un enregistrement a comme valeur 25/01/2004 17:35:45 dans le champ madate
et que tu tapes 25/01/2004 dans le paramètre demandé il sera sélectionné par
la requête.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"leeloo" a écrit dans le message de
news:


Raymond [mvp] a écrit:
Format(monchampdate;"jj/mm/aaaa" ou tout autre format selon ta version.

Cette fonction ne renvoie pas un format texte ?

Toujours est-il que ça ne me retourne rien dans la requête...
si je l'inclue dans ValDate() ou DateValue(), ça marche pas non plus...

En outre, c'est que ces histoires de format...
l'aide me donne ça :
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
et pour que ça marche il faut que je mette des ';'

Bon, j'ai la tête comme une bassine ce soir, j'arrête...
Merci pour tout

Leeloo




Avatar
Maxence HUBICHE
Essaie

PARAMETERS [Quelle Date ?] DateTime;
SELECT *
FROM LaTable
WHERE Format([ChampDate],"yyyymmdd")=Format([Quelle Date ?],"yyyymmdd")

--
----------------------------------------------------------------
Maxence HUBICHE
Formateur et développeur indépendant
Modérateur/rédacteur sur http://www.developpez.com
Site perso : http://perso.club-internet.fr/mhubiche (en cours de
construction)
"leeloo" a écrit dans le message de news:



Raymond [mvp] a écrit:
Format(monchampdate;"jj/mm/aaaa" ou tout autre format selon ta version.

Cette fonction ne renvoie pas un format texte ?

Toujours est-il que ça ne me retourne rien dans la requête...
si je l'inclue dans ValDate() ou DateValue(), ça marche pas non plus...

En outre, c'est que ces histoires de format...
l'aide me donne ça :
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
et pour que ça marche il faut que je mette des ';'

Bon, j'ai la tête comme une bassine ce soir, j'arrête...
Merci pour tout

Leeloo




Avatar
leeloo
Merci Raymond
La nuit m'a en effet porté conseil. C'est fou comme des fois on peut se
bloquer sur des betises :)
J'oserais bien une dernière question...
Comme la table peut changer (table1, table2 par exemple) existe-t-il un
moyen pour qu'Access demande sur quelle table porte la requête, voire
aille chercher le nom dans un champ d'une table de données générales ?
Ce serait vraiment trop fort :-)

Leeloo

Raymond [mvp] a écrit:
Ta requête doit être exactement comme ceci pour que ça marche:
SELECT table1.* FROM table1
WHERE Format([madate],"dd/mm/yyyy")=[entrer la date];

si un enregistrement a comme valeur 25/01/2004 17:35:45 dans le champ madate
et que tu tapes 25/01/2004 dans le paramètre demandé il sera sélectionné par
la requête.


Avatar
Raymond [mvp]
Bonjour.

c'est faisable mais pas dans la requête elle-même. Tu dois construire le
texte sql dans une variable texte ( tu en profites pour rajouter le contrôle
de ta date ) et ensuite tu l'exécutes.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"leeloo" a écrit dans le message de
news:
Merci Raymond
La nuit m'a en effet porté conseil. C'est fou comme des fois on peut se
bloquer sur des betises :)
J'oserais bien une dernière question...
Comme la table peut changer (table1, table2 par exemple) existe-t-il un
moyen pour qu'Access demande sur quelle table porte la requête, voire
aille chercher le nom dans un champ d'une table de données générales ?
Ce serait vraiment trop fort :-)


1 2