Déselection d'une zone de texte

Le
Jac
Bonjour à tous,

dans un formulaire, j'ai une zone de texte (CentreCout) qui devrait me
permettre de faire une sélection : j'écris un critère dans la zone de
texte et quand je clique sur un bouton, j'ouvre un état dont le filtre
intègre la saisie de la façon suivante :
Comme "*" & [Forms]![MenuGeneral]![CentreCout] & "*"

Mais le problème c'est qu'entre la saisie dans de la zone de texte et
le clic sur le bouton qui lance l'état filtré, ni l'évènement "Si
modification", ni l'évènement "Sur perte de focus" ne se déclenchent.
Et tant que je n'ai pas validé la saisie de la zone de texte, la
nouvelle valeur n'est pas prise en compte par mon filtre.

Quand il s'agit d'une liste déroulante, une procédure "Si modification"
se déclenche et me permet de changer le focus, donc de valider le choix
fait dans la liste. Donc ça marche à tous le coups. Mais là, rien ne
bouge

Merci d'avance à qui pourrait me mettre sur la voie.

Jac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #17452411
Salut,

"Jac"
| dans un formulaire, j'ai une zone de texte (CentreCout) qui devrait me
| permettre de faire une sélection : j'écris un critère dans la zone de
| texte et quand je clique sur un bouton, j'ouvre un état dont le filtre
| intègre la saisie de la façon suivante :
| Comme "*" & [Forms]![MenuGeneral]![CentreCout] & "*"
|
| Mais le problème c'est qu'entre la saisie dans de la zone de texte et
| le clic sur le bouton qui lance l'état filtré, ni l'évènement "Si
| modification", ni l'évènement "Sur perte de focus" ne se déclenchent.
| Et tant que je n'ai pas validé la saisie de la zone de texte, la
| nouvelle valeur n'est pas prise en compte par mon filtre.


Je ne vois pas où est ton problème...

La ZdT et le bouton sont sur le même formulaire, je suppose ?
et la zone de texte est indépendante je présume ?

Si oui, le clic sur le bouton qui ouvre l'état, le focus quitte la ZdT
pour aller sur le bouton, il n'en faut pas plus pour pouvoir "lire"
la valeur de la zone de texte!

Si non, écris :
Comme "*" & [Forms]![MenuGeneral]![CentreCout].Text & "*"

PS: Fais tout de même le test du Null pour éviter une erreur.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jac
Le #17453351
Bonjour 3Stone,

tu supposes et présumes bien... Mais sur Access 2002, le clic qui ouvre
l'état ne fait pas perdre le focus à la zone de texte. J'ai beau
essayer, il y a toujours le curseur clignottant dans la zone. Donc la
requête ne voit toujours pas la valeur.

Si je rajoute ".Text" à mon expression comme tu le proposes, Access
rajoute des crochets carrés autour de "Text" et la requête ne voit
quand même pas la valeur saisie.

Merci de t'être penché sur ce problème peu soluble.

Salut,

"Jac"
dans un formulaire, j'ai une zone de texte (CentreCout) qui devrait me
permettre de faire une sélection : j'écris un critère dans la zone de
texte et quand je clique sur un bouton, j'ouvre un état dont le filtre
intègre la saisie de la façon suivante :
Comme "*" & [Forms]![MenuGeneral]![CentreCout] & "*"

Mais le problème c'est qu'entre la saisie dans de la zone de texte et
le clic sur le bouton qui lance l'état filtré, ni l'évènement "Si
modification", ni l'évènement "Sur perte de focus" ne se déclenchent.
Et tant que je n'ai pas validé la saisie de la zone de texte, la
nouvelle valeur n'est pas prise en compte par mon filtre.




Je ne vois pas où est ton problème...

La ZdT et le bouton sont sur le même formulaire, je suppose ?
et la zone de texte est indépendante je présume ?

Si oui, le clic sur le bouton qui ouvre l'état, le focus quitte la ZdT
pour aller sur le bouton, il n'en faut pas plus pour pouvoir "lire"
la valeur de la zone de texte!

Si non, écris :
Comme "*" & [Forms]![MenuGeneral]![CentreCout].Text & "*"

PS: Fais tout de même le test du Null pour éviter une erreur.


3stone
Le #17453651
re,

"Jac"
| tu supposes et présumes bien... Mais sur Access 2002, le clic qui ouvre
| l'état ne fait pas perdre le focus à la zone de texte. J'ai beau
| essayer, il y a toujours le curseur clignottant dans la zone. Donc la
| requête ne voit toujours pas la valeur.
|
| Si je rajoute ".Text" à mon expression comme tu le proposes, Access
| rajoute des crochets carrés autour de "Text" et la requête ne voit
| quand même pas la valeur saisie.


Donc, le bouton et la ZdT sont sur le même formulaire...

Si tu ajoutes en début du code "Sur clic" du bouton:

MsgBox [LaZoneDeTexte]

et que tu saisis "toto" dans la zone de texte, puis que tu cliques...
on t'affiche quoi ??

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jac
Le #17455601
> re,

"Jac"
tu supposes et présumes bien... Mais sur Access 2002, le clic qui ouvre
l'état ne fait pas perdre le focus à la zone de texte. J'ai beau
essayer, il y a toujours le curseur clignottant dans la zone. Donc la
requête ne voit toujours pas la valeur.

Si je rajoute ".Text" à mon expression comme tu le proposes, Access
rajoute des crochets carrés autour de "Text" et la requête ne voit
quand même pas la valeur saisie.




Donc, le bouton et la ZdT sont sur le même formulaire...

Si tu ajoutes en début du code "Sur clic" du bouton:
MsgBox [LaZoneDeTexte]
et que tu saisis "toto" dans la zone de texte, puis que tu cliques...
on t'affiche quoi ??



Je saisis "aaaa" puis Enter. Le msgbox me renvoie "aaaa".
Je saisis "toto" sans faire Enter. Le msgbox me renvoie toujours
"aaaa".
3stone
Le #17458821
re,

"Jac"
| >> tu supposes et présumes bien... Mais sur Access 2002, le clic qui ouvre
| >> l'état ne fait pas perdre le focus à la zone de texte. J'ai beau
| >> essayer, il y a toujours le curseur clignottant dans la zone. Donc la
| >> requête ne voit toujours pas la valeur.
| >>
| >> Si je rajoute ".Text" à mon expression comme tu le proposes, Access
| >> rajoute des crochets carrés autour de "Text" et la requête ne voit
| >> quand même pas la valeur saisie.
| >
| >
| > Donc, le bouton et la ZdT sont sur le même formulaire...
| >
| > Si tu ajoutes en début du code "Sur clic" du bouton:
| > MsgBox [LaZoneDeTexte]
| > et que tu saisis "toto" dans la zone de texte, puis que tu cliques...
| > on t'affiche quoi ??
|
| Je saisis "aaaa" puis Enter. Le msgbox me renvoie "aaaa".
| Je saisis "toto" sans faire Enter. Le msgbox me renvoie toujours
| "aaaa".


Le Enter sur une zone de texte indépendante ne signifie pas grand
chose, puisque qu'il n'y a pas de "transmission" de données, de mise
à jour...

Sur Access 2000 et 2003, le fonctionnement est ce que j'ai décrit.

Je sens le petit détail que tu ne dis pas ;-)

PS: Je n'ai jamais installé Access2k2 !

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jac
Le #17465711
> re,

"Jac"
tu supposes et présumes bien... Mais sur Access 2002, le clic qui ouvre
l'état ne fait pas perdre le focus à la zone de texte. J'ai beau
essayer, il y a toujours le curseur clignottant dans la zone. Donc la
requête ne voit toujours pas la valeur.

Si je rajoute ".Text" à mon expression comme tu le proposes, Access
rajoute des crochets carrés autour de "Text" et la requête ne voit
quand même pas la valeur saisie.




Donc, le bouton et la ZdT sont sur le même formulaire...

Si tu ajoutes en début du code "Sur clic" du bouton:
MsgBox [LaZoneDeTexte]
et que tu saisis "toto" dans la zone de texte, puis que tu cliques...
on t'affiche quoi ??



Je saisis "aaaa" puis Enter. Le msgbox me renvoie "aaaa".
Je saisis "toto" sans faire Enter. Le msgbox me renvoie toujours
"aaaa".




Le Enter sur une zone de texte indépendante ne signifie pas grand
chose, puisque qu'il n'y a pas de "transmission" de données, de mise
à jour...

Sur Access 2000 et 2003, le fonctionnement est ce que j'ai décrit.

Je sens le petit détail que tu ne dis pas ;-)

PS: Je n'ai jamais installé Access2k2 !



Version 10 / Sp3 affichée comme 2002 / Mais j'ai installé depuis un cd
2003 qui s'affiche en version 2002 dans la fenêtre A propos...
Je pense qu'il y a eu 2002 pour le mac, mais moi, je suis sur pc donc
c'est impossible... quoi que... Non, il n'y a pas Access dans office
Mac. Je ne comprends plus rien !

Pour ce qui est du petit détail, tu pensais à quoi ?
3stone
Le #17465991
Salut,

"Jac"
[...]
| > Le Enter sur une zone de texte indépendante ne signifie pas grand
| > chose, puisque qu'il n'y a pas de "transmission" de données, de mise
| > à jour...
| >
| > Sur Access 2000 et 2003, le fonctionnement est ce que j'ai décrit.
| >
| > Je sens le petit détail que tu ne dis pas ;-)
| >
| > PS: Je n'ai jamais installé Access2k2 !
|
| Version 10 / Sp3 affichée comme 2002 / Mais j'ai installé depuis un cd
| 2003 qui s'affiche en version 2002 dans la fenêtre A propos...
| Je pense qu'il y a eu 2002 pour le mac, mais moi, je suis sur pc donc
| c'est impossible... quoi que... Non, il n'y a pas Access dans office
| Mac. Je ne comprends plus rien !


On s'est mal compris...

Je ne voulais pas dire que Access 2002 n'a pas ou n'existe pas;
mais simplement que je ne l'ai jamais installé ou utilisé.

J'ai fait le saut d'Access 2000 à 2003 ;-)

C'était pour dire qu'il serait étonnant qu'Access 2002 se comporte
différemment que ces deux versions quant au focus.


|
| Pour ce qui est du petit détail, tu pensais à quoi ?
|

La zone de texte et le bouton se trouve sur le même formulaire,
et pas l'un des deux ailleurs, dans un sous-formulaire ou autre.
D'accord ?

En cliquant sur le bouton, le focus quitte la zone de texte pour
aller au bouton (le focus ne peut être aux deux endroits)
On doit donc pouvoir "lire" la valeur de la zone de texte, sauf...
si les conditions ne sont pas celle-là.

Je viens encore de le retester, et cela fonctionne farpaitement.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jac
Le #17466081
> Salut,

"Jac"
[...]
Le Enter sur une zone de texte indépendante ne signifie pas grand
chose, puisque qu'il n'y a pas de "transmission" de données, de mise
à jour...

Sur Access 2000 et 2003, le fonctionnement est ce que j'ai décrit.

Je sens le petit détail que tu ne dis pas ;-)

PS: Je n'ai jamais installé Access2k2 !



Version 10 / Sp3 affichée comme 2002 / Mais j'ai installé depuis un cd
2003 qui s'affiche en version 2002 dans la fenêtre A propos...
Je pense qu'il y a eu 2002 pour le mac, mais moi, je suis sur pc donc
c'est impossible... quoi que... Non, il n'y a pas Access dans office
Mac. Je ne comprends plus rien !




On s'est mal compris...

Je ne voulais pas dire que Access 2002 n'a pas ou n'existe pas;
mais simplement que je ne l'ai jamais installé ou utilisé.

J'ai fait le saut d'Access 2000 à 2003 ;-)

C'était pour dire qu'il serait étonnant qu'Access 2002 se comporte
différemment que ces deux versions quant au focus.

Pour ce qui est du petit détail, tu pensais à quoi ?



La zone de texte et le bouton se trouve sur le même formulaire,
et pas l'un des deux ailleurs, dans un sous-formulaire ou autre.
D'accord ?

En cliquant sur le bouton, le focus quitte la zone de texte pour
aller au bouton (le focus ne peut être aux deux endroits)
On doit donc pouvoir "lire" la valeur de la zone de texte, sauf...
si les conditions ne sont pas celle-là.

Je viens encore de le retester, et cela fonctionne farpaitement.



Ben chez moi, pas moyen : le click sur le bouton ne fait pas perdre le
focus à la zone de texte, car de toute façon le bouton ne prend pas le
focus. Rien ne matérialise le fait que l'on a cliqué sur tel ou tel
bouton. Contrairement à une zone de saisie.

Donc j'ai imaginé une solution alternative : quand la zone de texte
prend le focus, j'affiche un rectangle qui masque le bouton. Quand elle
perd le focus, suite à enter ou à un clic sur une cible qui prend le
focus (liste déroulante, autre zone de texte) je masque le rectangle.
Donc si le bouton est masqué, il faudra faire quelque chose pour qu'il
réapparaisse. Donc plus de problème.
3stone
Le #17466161
re,

"Jac"
| Ben chez moi, pas moyen : le click sur le bouton ne fait pas perdre le
| focus à la zone de texte, car de toute façon le bouton ne prend pas le
| focus. Rien ne matérialise le fait que l'on a cliqué sur tel ou tel
| bouton. Contrairement à une zone de saisie.


Comment cela, le clic ne fait pas perdre le focus ??
Lorsque l'on clique sur un bouton, le focus se matérialise par le "cadre"
en pointillé qui se dessine autour du texte du bouton!

Tu es sûr de ne pas utiliser les thèmes ou autre artifice "fun" Windows ?

| Donc j'ai imaginé une solution alternative : quand la zone de texte
| prend le focus, j'affiche un rectangle qui masque le bouton. Quand elle
| perd le focus, suite à enter ou à un clic sur une cible qui prend le
| focus (liste déroulante, autre zone de texte) je masque le rectangle.
| Donc si le bouton est masqué, il faudra faire quelque chose pour qu'il
| réapparaisse. Donc plus de problème.

Aïe, mes cheveux ;-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jac
Le #17466191
> re,

"Jac"
Ben chez moi, pas moyen : le click sur le bouton ne fait pas perdre le
focus à la zone de texte, car de toute façon le bouton ne prend pas le
focus. Rien ne matérialise le fait que l'on a cliqué sur tel ou tel
bouton. Contrairement à une zone de saisie.




Comment cela, le clic ne fait pas perdre le focus ??
Lorsque l'on clique sur un bouton, le focus se matérialise par le "cadre"
en pointillé qui se dessine autour du texte du bouton!

Tu es sûr de ne pas utiliser les thèmes ou autre artifice "fun" Windows ?

Donc j'ai imaginé une solution alternative : quand la zone de texte
prend le focus, j'affiche un rectangle qui masque le bouton. Quand elle
perd le focus, suite à enter ou à un clic sur une cible qui prend le
focus (liste déroulante, autre zone de texte) je masque le rectangle.
Donc si le bouton est masqué, il faudra faire quelque chose pour qu'il
réapparaisse. Donc plus de problème.



Aïe, mes cheveux ;-))



Non, aucun artifice fun... Que du classique...
Je mettrai un exemple sur cjoint d'ici la fin de la semaine. Il se peut
que ça déconne seulement sur ma machine...
Publicité
Poster une réponse
Anonyme