OVH Cloud OVH Cloud

Date dans une requête

3 réponses
Avatar
Samban
Bonjour à tous et toutes,
J'ai quelques problèmes de compréhension sur l'utilisation des dates dans
une requête sur formulaire.
J'utilise un formulaire de requête trouvé sur le WEB que j'adapte à mon
usage (www.devellopez.com "Recherche multi-critères")
Cela fonctionne bien, jusqu'au moment ou je veux faire une recherche sur un
critètre de date.
Pour cela sur mon formulaire, j'ai créé une liste déroulante indépendante
(cmbOperateur) qui comporte les opérateurs pouvant être saisi avant la date
(=;<;>;=<;=>).
Puis une zone de texte indépendante (txtOperateur) permettant la saisie de
la date :
format : Date, abrégé
masque : 00/00/0000;0;_

J'utilise le code VBA suivant pour filter ma requête:

SQL = SQL & "And T_PERSONNEL!date_embauche like '*" & Me.txtOperateur & "*'"

Cela fonctionne !!!! ;-)) car je n'ai pas inclus l'opérateur choisi à
partir de la liste déroulante (cmbOperateur). Pour l'instant je ne peut donc
entrer comme critère qu'une date fixe.
Quel est le bon code à associer devant like '*" & Me.txtOperateur & "*'"
pour que le critère tient compte de l'opérateur choisi ( opérateur +
Date )???

Merci d'avance pour toutes les solutions......;-)

3 réponses

Avatar
Raymond [mvp]
Bonjour.

tu ne peux pas utiliser like * avec une date sauf à formater ta date des
deux cotés.

T_PERSONNEL.date_embauche
SELECT format(T_PERSONNEL.date_embauche;"aaaamm") like "*" &
format(Formulaires![Formulaire1]![Madate]; "aaaamm") & "*"

ou dans to formulaire:
SQL = SQL & " And format(T_PERSONNEL.date_embauche;"aaaamm") like ""*" &
format(Me.txtOperateur, "yyyymm") & "*'"

il serait préférable d'utiliser deux dates et faire une comparaison entre...
et.....

j'espère n'avoir rien oublié !
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


" Samban" a écrit dans le message de
news:4018eca5$0$6974$
Bonjour à tous et toutes,
J'ai quelques problèmes de compréhension sur l'utilisation des dates dans
une requête sur formulaire.
J'utilise un formulaire de requête trouvé sur le WEB que j'adapte à mon
usage (www.devellopez.com "Recherche multi-critères")
Cela fonctionne bien, jusqu'au moment ou je veux faire une recherche sur
un

critètre de date.
Pour cela sur mon formulaire, j'ai créé une liste déroulante indépendante
(cmbOperateur) qui comporte les opérateurs pouvant être saisi avant la
date

(=;<;>;=<;=>).
Puis une zone de texte indépendante (txtOperateur) permettant la saisie de
la date :
format : Date, abrégé
masque : 00/00/0000;0;_

J'utilise le code VBA suivant pour filter ma requête:

SQL = SQL & "And T_PERSONNEL!date_embauche like '*" & Me.txtOperateur &
"*'"


Cela fonctionne !!!! ;-)) car je n'ai pas inclus l'opérateur choisi à
partir de la liste déroulante (cmbOperateur). Pour l'instant je ne peut
donc

entrer comme critère qu'une date fixe.
Quel est le bon code à associer devant like '*" & Me.txtOperateur & "*'"
pour que le critère tient compte de l'opérateur choisi ( opérateur +
Date )???

Merci d'avance pour toutes les solutions......;-)




Avatar
Samban
Merci raymond pour cette réponse....mais ;-)) je n'ai pas tout compris...

En fait j'utilise LIKE dans ma requête SQL, parce que cela fonctionne (il
est vrai que je n'en comprend pas tout le sens.).

En fait ma question, en plus simple (j'espère), est simplement de pouvoir
associer un opérateur de type (égale à , supérieur à, inférieur à,
..........) avec une zone de texte représentant ma date, et ainsi obtenir
une expression qui puisse me permettre de filtrer ma requête à partir de mon
formulaire. Afficher tous les enregistrements dont la date d'embauche est
supérieur et égale au 01/10/2002 par exemple et ceci de facon dynamique par
le code suivant:

SQL = SQL & "And T_PERSONNEL!date_embauche = ' " & (MonOpérateur + MaDate)

La partie Opérateur venant de Me.cmbOperateur et MaDate venant de
Me.txtOperateur

En espérant avoir été un plus plus clair dans mes explications.

Peut-on m'expliquer, comment obtenir cette expression en VBA >= 01/10/2002.
Merci d'avance
Avatar
Raymond [mvp]
c'est plus clair.
pour indiquer des dates prises dans un contrôle ou un champ et placées en
dur dans ta requête il faut les indiquer en mode US et entre #.

= 01/10/2002
= #10/01/2002# pour le 1er octobre
= #01/10/2004# pour le 10 janvier


pour un champ date :
.......>= " & "#" & format(madate, "mm/dd/yyyy") & "#"

& (MonOpérateur + MaDate) c'est quoi cette addition ?

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


" Samban" a écrit dans le message de
news:40193205$0$6968$
Merci raymond pour cette réponse....mais ;-)) je n'ai pas tout compris...

En fait j'utilise LIKE dans ma requête SQL, parce que cela fonctionne (il
est vrai que je n'en comprend pas tout le sens.).

En fait ma question, en plus simple (j'espère), est simplement de pouvoir
associer un opérateur de type (égale à , supérieur à, inférieur à,
..........) avec une zone de texte représentant ma date, et ainsi obtenir
une expression qui puisse me permettre de filtrer ma requête à partir de
mon

formulaire. Afficher tous les enregistrements dont la date d'embauche est
supérieur et égale au 01/10/2002 par exemple et ceci de facon dynamique
par

le code suivant:

SQL = SQL & "And T_PERSONNEL!date_embauche = ' " & (MonOpérateur + MaDate)

La partie Opérateur venant de Me.cmbOperateur et MaDate venant de
Me.txtOperateur

En espérant avoir été un plus plus clair dans mes explications.

Peut-on m'expliquer, comment obtenir cette expression en VBA > 01/10/2002.
Merci d'avance