|
| sevm | Posté le 21/04/2004 @ 12:41 |
Petit astucien
3 Messages
| Bonjour à tous!
Je travaille sur une base Access 2000 dejà existante et que je dois ameliorer
J'ai créé une liste pour afficher les resultats d'une recherche.
Je propose plusieurs choix de recherche:
- a une date donnee (unedate)
- a partir d'une date (datedeb)
- jusqu'a une date (datefin)
- entre deux dates (= cases datedeb et datefin remplies)
Seulement voilà... ca ne marche pas!
Si je me sert seulement de la case "unedate" alors pas de probleme avec le critere suivant:
[code]IIf(Not [unedate] Is Null;[unedate];[ANSWER DATE])[/code]
càd je selectionne les enregistrements dont la date de réponse correspond à "unedate".
et pour ajouter le reste (les autres cases), voici ce que j'ai fait:
[code]
IIf(Not [unedate] Is Null;[unedate];[ANSWER DATE])
OR
IIf((Not [datedeb] Is Null And IsNull [datefin]);[ANSWER DATE]>=[datedeb];
IIf([IsNull [datedeb] And (Not [datefin] Is Null);[ANSWER DATE]<=[datefin];
IIf(Not [datedeb] Is Null And Not [datefin] Is Null;[ANSWER DATE] Between [datedeb] And [datefin];[HISTORY]![ANSWER DATE])))
[/code]
Comme je travaille avec l'assistant, le OR signifie que j'ai mis la deuxieme partie du code sur la ligne OR des criteres.
Au final, je n'ai rien... rien de rien! [boom]
J'ai essayé en ne conservant que le test de "datedeb" mais ca ne marche pas non plus.
Je pense que l'absence de resultat vient d'une erreur qqpart dans la selection du type
[code][ANSWER DATE]<=[datefin][/code]
Une petite idée?
Peut etre que je suis completement a coté de la plaque et qu'il y a mieux et plus simple... qui sait!
Merci beaucoup [chinois]
|
| |
| |
| Publicité |
|
|
| aiecaramba | Posté le 22/04/2004 à 13:55 |
Petit astucien
11 Messages
|
D'après moi, tu te prends la tete pour rien !
Il te suffit de faire des requêtes du style :
select champ1, champ2 FROM TABLE WHERE (date = unedate) AND (...)
Tu comprens ?
|
| |
|
| sevm | Posté le 22/04/2004 à 14:13 |
Petit astucien
3 Messages
| Oui mais (Answer date=une date) ca ne me donne pas les resultats qui suivent.
Comment exprimer le "entre deux dates" ou "apres telle date" ou "avant telle date"?
apparement les simboles < > et "between" ne fonctionnent pas ou je ne les utilise pas comme il faut.
Les IIf servent à tester si la case est remplie dans le formulaire. donc je dois faire ce test apres le WHERE, tu vois?
Merci merci d'essayer de m'aider c'est Super important [happy] |
| |
|
| aiecaramba | Posté le 22/04/2004 à 14:22 |
Petit astucien
11 Messages
| sevm a écrit :
Oui mais (Answer date=une date) ca ne me donne pas les resultats qui suivent.
Comment exprimer le "entre deux dates" ou "apres telle date" ou "avant telle date"?
apparement les simboles < > et "between" ne fonctionnent pas ou je ne les utilise pas comme il faut.
Les IIf servent à tester si la case est remplie dans le formulaire. donc je dois faire ce test apres le WHERE, tu vois?
Merci merci d'essayer de m'aider c'est Super important [happy]
|
Moi je ne connais pas ce que ont les "IIf", j'en ai jamais utilisé, je ne savais meme pas que ça existait....
Je ferais :
- select ... from ... where date_champ between date1 and date2
- if (date > date1) and (date < date2) then ....
je suis bien heureuse d'essayer de t'aider, en espérant y réussir
[langue] |
| |
|
|
| Haut de la page |