Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester le contenu du champ précédent dynamiquement

4 réponses
Avatar
JMH
Bonjour

Je ne sais pas si le terme est exact.

Mais voilà mon problème:

J'ai des champs sur un formulaire dont certains vont par paire.

Dans un champ précis Sur focus(par exemple)
j'aimerai récupérer le nom du champ précédent (selon l'ordre de tabulation),
ce n'est pas nécessairement le PreviousControl

Ensuite je testerai la valeur de ce champ avec Me(NomDuChampTrouve).value =
"Merci pour la réponse"

Merci d'avance pour vos réponses.

Jean-Michel H.

4 réponses

Avatar
3stone
Salut,

"JMH"
| J'ai des champs sur un formulaire dont certains vont par paire.
|
| Dans un champ précis Sur focus(par exemple)
| j'aimerai récupérer le nom du champ précédent (selon l'ordre de tabulation),
| ce n'est pas nécessairement le PreviousControl
|
| Ensuite je testerai la valeur de ce champ avec Me(NomDuChampTrouve).value | "Merci pour la réponse"


Tu dis: ce n'est pas nécessairement le "PreviousControl"...

Ce PreviousControl est la controle qui a le focus précédement et n'a
rien à voir avec l'ordre de tabulation...

As-tu pensé que l'on peut "sauter" ou l'on veut dans une formulaire ?
et que, en dehors du controle précédent *ayant le focus* cette
expression ne veut pas dire grand chose ?

Je pense que tu devrais plutôt te tourner vers un événement plus
approprié et en rapport avec ce que tu cherches à faire...
comme par exemple utiliser l'événement "AfterUpdate" de la zone
de texte (celle que tu considère comme précédente... ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
JMH
Bonjour

En fait mon problème est que pour gagner des intructions à mettre partout,
je voulais passer par une fonction,

J'ai des champs:

A B
C D
E F
G H
I J

Tous les champs de droites sont des champs de dates
Tous les champ de gauches sont des champ de Noms, remplis ou pas.

Exemple
Quand j'arrive sur un champ de droite "B", je teste si le champ de gauche
"A" est Null, si OUI on va au champ suivant
Si le champ de gauche n'est pas NULL, pas de traitement.

Quand j'arrive dans le champ de droite "B", je pars dans un formulaire
calendrier (MSCalender)
Celui-ci me renvoie la date choisie dans le champ "B"
Je récupère la valeur au moyen d'une variable globale mise à jour dans le
formulaire Calendrier.


La version simple:
Mettre les noms exacts et gérer 2 événements pour toute la mise à jour
J'en ai 12 et je pensais que passer par une fonction allait me faire gagner
du temps.

Version Compliquée:
Evenement du champ B: if me(ActiveValue).name) index-1 (champ précédent)
est NULL, exit (ici c'est la valeur champ précédent que je ne sais
comment avoir)
globalVariable =
me(activeControle).Name

Routine calendrier
traitement
globalVariable = me(activeControle).name
etc.


Bon c'est aussi faisable en version simple.

A+



"3stone" a écrit dans le message de news:
%
Salut,

"JMH"
| J'ai des champs sur un formulaire dont certains vont par paire.
|
| Dans un champ précis Sur focus(par exemple)
| j'aimerai récupérer le nom du champ précédent (selon l'ordre de
tabulation),
| ce n'est pas nécessairement le PreviousControl
|
| Ensuite je testerai la valeur de ce champ avec
Me(NomDuChampTrouve).value > | "Merci pour la réponse"


Tu dis: ce n'est pas nécessairement le "PreviousControl"...

Ce PreviousControl est la controle qui a le focus précédement et n'a
rien à voir avec l'ordre de tabulation...

As-tu pensé que l'on peut "sauter" ou l'on veut dans une formulaire ?
et que, en dehors du controle précédent *ayant le focus* cette
expression ne veut pas dire grand chose ?

Je pense que tu devrais plutôt te tourner vers un événement plus
approprié et en rapport avec ce que tu cherches à faire...
comme par exemple utiliser l'événement "AfterUpdate" de la zone
de texte (celle que tu considère comme précédente... ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Avatar
3stone
Salut,

"JMH"
| En fait mon problème est que pour gagner des intructions à mettre partout,
| je voulais passer par une fonction,
|
| J'ai des champs:
|
| A B
| C D
| E F
| G H
| I J
|
| Tous les champs de droites sont des champs de dates
| Tous les champ de gauches sont des champ de Noms, remplis ou pas.


Plutôt bizarre pour un formulaire...
Bien que tu ne dise pas ce que tu cherches à gérer de la sorte, on
sent nettement la "manière Excel" dans la méthode ;-)
Ce qui par ailleurs laisse à penser que tu as un problème de conception
au niveau des tables. Cette répétition de données devrait plutôt se
retrouver dans un sous-formulaire en mode continu.
Mais sans plus de détails...


| Exemple
| Quand j'arrive sur un champ de droite "B", je teste si le champ de gauche
| "A" est Null, si OUI on va au champ suivant
| Si le champ de gauche n'est pas NULL, pas de traitement.
|
| Quand j'arrive dans le champ de droite "B", je pars dans un formulaire
| calendrier (MSCalender)
| Celui-ci me renvoie la date choisie dans le champ "B"
| Je récupère la valeur au moyen d'une variable globale mise à jour dans le
| formulaire Calendrier.

Si vraiment...
Tu peux t'aider en donnant un nom générique aux zones de texte, dans
le style 'txtNom1' et 'txtDate1', puis 'txtNom2' et 'txtDate2'
En entrée de ton formulaire calendrier, tu récupère le nom de la zone
actuelle (currentcontrol) et tu en déduis facilement la zone nom dans
une seule et même fonction...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
jmh
Salut 3stone
Je te remercie pour tes explications.
En fait j'ai traité par une fonction dans laquelle je passe les noms des
champs (actuel et -1) et la le traitement est le même pour tous.
Donc mon problème est résolu.

Merci encore.


"3stone" a écrit dans le message de
news:%23O%
Salut,

"JMH"
| En fait mon problème est que pour gagner des intructions à mettre
partout,
| je voulais passer par une fonction,
|
| J'ai des champs:
|
| A B
| C D
| E F
| G H
| I J
|
| Tous les champs de droites sont des champs de dates
| Tous les champ de gauches sont des champ de Noms, remplis ou pas.


Plutôt bizarre pour un formulaire...
Bien que tu ne dise pas ce que tu cherches à gérer de la sorte, on
sent nettement la "manière Excel" dans la méthode ;-)
Ce qui par ailleurs laisse à penser que tu as un problème de conception
au niveau des tables. Cette répétition de données devrait plutôt se
retrouver dans un sous-formulaire en mode continu.
Mais sans plus de détails...


| Exemple
| Quand j'arrive sur un champ de droite "B", je teste si le champ de
gauche
| "A" est Null, si OUI on va au champ suivant
| Si le champ de gauche n'est pas NULL, pas de traitement.
|
| Quand j'arrive dans le champ de droite "B", je pars dans un formulaire
| calendrier (MSCalender)
| Celui-ci me renvoie la date choisie dans le champ "B"
| Je récupère la valeur au moyen d'une variable globale mise à jour dans
le
| formulaire Calendrier.

Si vraiment...
Tu peux t'aider en donnant un nom générique aux zones de texte, dans
le style 'txtNom1' et 'txtDate1', puis 'txtNom2' et 'txtDate2'
En entrée de ton formulaire calendrier, tu récupère le nom de la zone
actuelle (currentcontrol) et tu en déduis facilement la zone nom dans
une seule et même fonction...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)