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

Valeur de champ vasé sur une fonction

4 réponses
Avatar
Domi
Bonjour,

Dans un formulaire, j'ai 10 champs contenant des %, issus d'une table/requête.

Pour faciliter la saisie, j'ai essayé d'utiliser cette fonction trouvée ici :

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#SaisiePourcent

Le code (dans un module standard) :

Public Static Function SaisiePourcentage(varNum As Variant) As Single
'Appelée par une procédure événementielle AfterUpdate, par exemple
TauxTVA_AfterUpdate
Dim varDonnée As Single
' Intercepte l'erreur due à une utilisation invalide de Null
If IsNull(varNum) Then Exit Function
If varNum > 1 Then ' Usagers qui préfèrent saisir sous la forme 7,5

varDonnée = varNum / 100
Else ' Usagers qui préfèrent saisir sous la forme calcul 0,075
varDonnée = varNum
End If
SaisiePourcentage = varDonnée
End Function

Je l'appelle sur l'événement After Update de mes champs. Jusque-là, pas de
problème, le conversion s'effectue très bien.

Mais comment réattribuer la valeur obtenue au champ source. Je n'y arrive
pas et je sèche depuis un moment la-dessus.

Si quelqu'un peu m'éclairer, grand merci.

Domi

4 réponses

Avatar
Patrice
bonjour,

If not IsNull(varNum) Then me![nom du champ]=SaisiePourcentage(me![nom du
champ])


Bonjour,

Dans un formulaire, j'ai 10 champs contenant des %, issus d'une table/requête.

Pour faciliter la saisie, j'ai essayé d'utiliser cette fonction trouvée ici :

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#SaisiePourcent

Le code (dans un module standard) :

Public Static Function SaisiePourcentage(varNum As Variant) As Single
'Appelée par une procédure événementielle AfterUpdate, par exemple
TauxTVA_AfterUpdate
Dim varDonnée As Single
' Intercepte l'erreur due à une utilisation invalide de Null
If IsNull(varNum) Then Exit Function
If varNum > 1 Then ' Usagers qui préfèrent saisir sous la forme 7,5

varDonnée = varNum / 100
Else ' Usagers qui préfèrent saisir sous la forme calcul 0,075
varDonnée = varNum
End If
SaisiePourcentage = varDonnée
End Function

Je l'appelle sur l'événement After Update de mes champs. Jusque-là, pas de
problème, le conversion s'effectue très bien.

Mais comment réattribuer la valeur obtenue au champ source. Je n'y arrive
pas et je sèche depuis un moment la-dessus.

Si quelqu'un peu m'éclairer, grand merci.

Domi



Avatar
Domi
Bonjour et merci pour ta réponse.

Effectivement, j'ai déjà essayé quelque chose de semblable, à savoir
redéfinir la valeur du champ à la fin de la fonction et cela fonctionne très
bien.

Le problème, c'est qu'avec cette méthode, il me faudra autant de fonctions
que de champs, donc 10. Et j'aimerais autant éviter...

Domi


bonjour,

If not IsNull(varNum) Then me![nom du champ]=SaisiePourcentage(me![nom du
champ])


Bonjour,

Dans un formulaire, j'ai 10 champs contenant des %, issus d'une table/requête.

Pour faciliter la saisie, j'ai essayé d'utiliser cette fonction trouvée ici :

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#SaisiePourcent

Le code (dans un module standard) :

Public Static Function SaisiePourcentage(varNum As Variant) As Single
'Appelée par une procédure événementielle AfterUpdate, par exemple
TauxTVA_AfterUpdate
Dim varDonnée As Single
' Intercepte l'erreur due à une utilisation invalide de Null
If IsNull(varNum) Then Exit Function
If varNum > 1 Then ' Usagers qui préfèrent saisir sous la forme 7,5

varDonnée = varNum / 100
Else ' Usagers qui préfèrent saisir sous la forme calcul 0,075
varDonnée = varNum
End If
SaisiePourcentage = varDonnée
End Function

Je l'appelle sur l'événement After Update de mes champs. Jusque-là, pas de
problème, le conversion s'effectue très bien.

Mais comment réattribuer la valeur obtenue au champ source. Je n'y arrive
pas et je sèche depuis un moment la-dessus.

Si quelqu'un peu m'éclairer, grand merci.

Domi





Avatar
Patrice
A la place de me!nomduchamp, tu peux utiliser
screen.activecontrol
If not IsNull(varNum) Then
screen.activecontrol=SaisiePourcentage(screen.activecontrol)



Bonjour et merci pour ta réponse.

Effectivement, j'ai déjà essayé quelque chose de semblable, à savoir
redéfinir la valeur du champ à la fin de la fonction et cela fonctionne très
bien.

Le problème, c'est qu'avec cette méthode, il me faudra autant de fonctions
que de champs, donc 10. Et j'aimerais autant éviter...

Domi


bonjour,

If not IsNull(varNum) Then me![nom du champ]=SaisiePourcentage(me![nom du
champ])


Bonjour,

Dans un formulaire, j'ai 10 champs contenant des %, issus d'une table/requête.

Pour faciliter la saisie, j'ai essayé d'utiliser cette fonction trouvée ici :

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#SaisiePourcent

Le code (dans un module standard) :

Public Static Function SaisiePourcentage(varNum As Variant) As Single
'Appelée par une procédure événementielle AfterUpdate, par exemple
TauxTVA_AfterUpdate
Dim varDonnée As Single
' Intercepte l'erreur due à une utilisation invalide de Null
If IsNull(varNum) Then Exit Function
If varNum > 1 Then ' Usagers qui préfèrent saisir sous la forme 7,5

varDonnée = varNum / 100
Else ' Usagers qui préfèrent saisir sous la forme calcul 0,075
varDonnée = varNum
End If
SaisiePourcentage = varDonnée
End Function

Je l'appelle sur l'événement After Update de mes champs. Jusque-là, pas de
problème, le conversion s'effectue très bien.

Mais comment réattribuer la valeur obtenue au champ source. Je n'y arrive
pas et je sèche depuis un moment la-dessus.

Si quelqu'un peu m'éclairer, grand merci.

Domi







Avatar
Domi
Top. :-))

Merci pour ton aide et bonne journée.

Domi


A la place de me!nomduchamp, tu peux utiliser
screen.activecontrol
If not IsNull(varNum) Then
screen.activecontrol=SaisiePourcentage(screen.activecontrol)



Bonjour et merci pour ta réponse.

Effectivement, j'ai déjà essayé quelque chose de semblable, à savoir
redéfinir la valeur du champ à la fin de la fonction et cela fonctionne très
bien.

Le problème, c'est qu'avec cette méthode, il me faudra autant de fonctions
que de champs, donc 10. Et j'aimerais autant éviter...

Domi


bonjour,

If not IsNull(varNum) Then me![nom du champ]=SaisiePourcentage(me![nom du
champ])


Bonjour,

Dans un formulaire, j'ai 10 champs contenant des %, issus d'une table/requête.

Pour faciliter la saisie, j'ai essayé d'utiliser cette fonction trouvée ici :

http://mypage.bluewin.ch/w.stucki/Formulaires.htm#SaisiePourcent

Le code (dans un module standard) :

Public Static Function SaisiePourcentage(varNum As Variant) As Single
'Appelée par une procédure événementielle AfterUpdate, par exemple
TauxTVA_AfterUpdate
Dim varDonnée As Single
' Intercepte l'erreur due à une utilisation invalide de Null
If IsNull(varNum) Then Exit Function
If varNum > 1 Then ' Usagers qui préfèrent saisir sous la forme 7,5

varDonnée = varNum / 100
Else ' Usagers qui préfèrent saisir sous la forme calcul 0,075
varDonnée = varNum
End If
SaisiePourcentage = varDonnée
End Function

Je l'appelle sur l'événement After Update de mes champs. Jusque-là, pas de
problème, le conversion s'effectue très bien.

Mais comment réattribuer la valeur obtenue au champ source. Je n'y arrive
pas et je sèche depuis un moment la-dessus.

Si quelqu'un peu m'éclairer, grand merci.

Domi