Bonsoir @ tous,
Voilà quelques jours déjà que je me creuse la tête, que je fais des tests croisés, et que je n'y comprends toujours rien... je viens donc en faire appel à vos bonnes idées...
Voilà l'histoire, je fais simple (avec une base test), sinon ce serait trop compliqué à expliquer :
Dans une table (nommée A) j'ai (entre autres) 2 champs (nommés B et C). Ces champs contiennent des nombres. Ces nombres seront majorés ou minorés (selon le cas) au moment de faire la requête par des nombres saisis dans des contrôles dans un formulaire (pour mon essai, j'ai remplacé celà par du +2). Je cherche à faire une requête qui va me montrer les enregistrements qui correspondent à un critère que va saisir l'utilisateur dans un formulaire (nommé Formulaire1). L'utilisateur va saisir un nombre, et je souhaite que ce nombre (on va le nommer Texte0, comme le nom du contrôle de Formulaire1) soit compris entre ceux des champs B et C. pour faire simple : B<Texte0>C ou C<Texte0>B.
Donc, je fais ma requête comme suit :
Et là, j'obtiens des réponses complètement farfelues ! Parfois c'est bon, parfois je n'ai aucun résultat (alors qu'il devrait y en avoir) et parfois j'ai trop de résultats (s'y trouvent des enregistrements qui ne devraient pas y être)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT A.N°, A.Désignation, [B]+2 AS B2, [c]+2 AS C2 FROM A WHERE ((([B]+2)>=[Formulaires]![Formulaire1]![Texte0]) AND (([c]+2)<=[Formulaires]![Formulaire1]![Texte0])) OR ((([B]+2)<=[Formulaires]![Formulaire1]![Texte0]) AND (([c]+2)>=[Formulaires]![Formulaire1]![Texte0]));
Dans mes tests, tout refonctionne impeccable lorsque :
- je ne fais plus appel au champ calculé (que je prends B et C sans calcul),
- ou bien que je remplace la référence au contrôle Texte0 par un nombre au hasard,
- ou bien lorsque je supprime les signes < et >
Quelqu'un a t'il une idée de comment résoudre ce problème ?
Par avance, merci pour vos réponses...
Bonne soirée,
Lionel
Partager