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

Effacer une zone de texte

5 réponses
Avatar
catherine.soranzo
Bonjour à tous,

Je ne trouve pas d'infos sur le forum qui puisse résoudre mon problème
:

A la saisie d'un n° de cde dans un formulaire, un Msgbox apparaît pour
signaler à l'utilisateur que le n° saisi est faux et pour lui demander
s'il souhaite ressaisir un nouveau N° de Cde (Msgbox via VBA).
Ce que je voudrais, c'est connaître le bout de code qui permettrait
selon le choix de l'utilisateur :

1/ si oui : d'effacer le mauvais n° saisi après que l'utilisateur ait
cliqué sur le bouton OK du MsgBox pour lui permettre de ressaisir un
nouveau n°

2/ si non : d'annuler l'enregistrement créé

Merci d'avance à celui ou celle qui répondra.
A+
Catherine

5 réponses

Avatar
Raymond
Bonjour.

essaie cette fonction ( qui ne fonctionne qu'à partir de A2000)
Private Sub No_Cde_BeforeUpdate(Cancel As Integer)
If Me.No_Cde= "mauvais" Then 'ici la condition
If MsgBox("n° de commande faux" & vbCrLf & "Resaisir ?", vbYesNo,
"saisie N° commande") = vbYes Then
Me.No_Cde.Undo
Cancel = True
Else
Me.Undo
End If
End If
End Sub

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Medinlu" a écrit dans le message de
news:
Bonjour à tous,

Je ne trouve pas d'infos sur le forum qui puisse résoudre mon problème
:

A la saisie d'un n° de cde dans un formulaire, un Msgbox apparaît pour
signaler à l'utilisateur que le n° saisi est faux et pour lui demander
s'il souhaite ressaisir un nouveau N° de Cde (Msgbox via VBA).
Ce que je voudrais, c'est connaître le bout de code qui permettrait
selon le choix de l'utilisateur :

1/ si oui : d'effacer le mauvais n° saisi après que l'utilisateur ait
cliqué sur le bouton OK du MsgBox pour lui permettre de ressaisir un
nouveau n°

2/ si non : d'annuler l'enregistrement créé

Merci d'avance à celui ou celle qui répondra.
A+
Catherine


Avatar
catherine.soranzo
Bonjour Raymond,

Merci pour ta réponse ; mais le problème c'est que je suis en A97 ???
N'y aurait-il pas de solution alors ??

Merci d'avance
Catherine


"Raymond" wrote in message news:...
Bonjour.

essaie cette fonction ( qui ne fonctionne qu'à partir de A2000)
Private Sub No_Cde_BeforeUpdate(Cancel As Integer)
If Me.No_Cde= "mauvais" Then 'ici la condition
If MsgBox("n° de commande faux" & vbCrLf & "Resaisir ?", vbYesNo,
"saisie N° commande") = vbYes Then
Me.No_Cde.Undo
Cancel = True
Else
Me.Undo
End If
End If
End Sub

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Medinlu" a écrit dans le message de
news:
Bonjour à tous,

Je ne trouve pas d'infos sur le forum qui puisse résoudre mon problème
:

A la saisie d'un n° de cde dans un formulaire, un Msgbox apparaît pour
signaler à l'utilisateur que le n° saisi est faux et pour lui demander
s'il souhaite ressaisir un nouveau N° de Cde (Msgbox via VBA).
Ce que je voudrais, c'est connaître le bout de code qui permettrait
selon le choix de l'utilisateur :

1/ si oui : d'effacer le mauvais n° saisi après que l'utilisateur ait
cliqué sur le bouton OK du MsgBox pour lui permettre de ressaisir un
nouveau n°

2/ si non : d'annuler l'enregistrement créé

Merci d'avance à celui ou celle qui répondra.
A+
Catherine




Avatar
Raymond
Bonsoir.

sur 97 tu changes Me.No_Cde.Undo en Me.No_Cde = "" et tu peux remplacer le
me.undo par un sendkeys de 2 Echap et ça fera la même chose. vérifie quand
même que me.undo n'existe pas sur 97, la mémoire humaine est fragile.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Medinlu" a écrit dans le message de
news:
Bonjour Raymond,

Merci pour ta réponse ; mais le problème c'est que je suis en A97 ???
N'y aurait-il pas de solution alors ??

Merci d'avance
Catherine


Avatar
catherine.soranzo
Bonsoir,

En fait Me.No_Cde.undo ne fonctionne pas ; un message d'erreur
apparaît : la valeur du champs ne respecte pas les règles de
validation pour l'enregistrement ou le champs .....

Par contre en mettant me.undo, ca marche (même en retirant la ligne
"cancel = True").

Du coup, que l'on choisisse "OUI" ou "NON", le résultat est le même :
le n° de cde est effacer et l'utilisateur peut saisir un autre n° de
cde. Et là, je m'aperçoit que dans ma question j'ai oublié de préciser
un petit détail très important : mon formulaire comporte un numero
auto. Et le truc, c'est que je ne voudrais pas que le numero auto
change lorsque l'utilisateur choisit l'option "OUI". Je voudrais
simplement que seul le mauvais n° s'efface pour que l'utilisateur en
saisisse un nouveau !!

Donc, j'ai modifié un peu le code (voir ci-dessous) : le n° auto ne
change pas mais le mauvais n° reste et l'utilisateur est obligé de
l'effacer manuellement !
If IsNull(Me![SR_Cdes]![Pays]) Then
If MsgBox("LE N° DE CDE SAISI EST INCORRECT" & vbCrLf & "SAISIR UN
AUTRE N° DE CDE ?", vbYesNo, "ERREUR SAISIE") = vbYes Then
Cancel = False
Else
Me.Undo
End If
End If

Désolée pour cet oubli. Avez-vous une idée ?

Merci d'avance
Catherine



"Raymond" wrote in message news:<uFe4gz$...
Bonsoir.

sur 97 tu changes Me.No_Cde.Undo en Me.No_Cde = "" et tu peux remplacer le
me.undo par un sendkeys de 2 Echap et ça fera la même chose. vérifie quand
même que me.undo n'existe pas sur 97, la mémoire humaine est fragile.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Medinlu" a écrit dans le message de
news:
Bonjour Raymond,

Merci pour ta réponse ; mais le problème c'est que je suis en A97 ???
N'y aurait-il pas de solution alors ??

Merci d'avance
Catherine




Avatar
Raymond
Par contre en mettant me.undo, ca marche (même en retirant la ligne
"cancel = True").

laisse le cancel = True pour que le formulaire reste en place, sinon selon

la touche enfoncée tu changeras d'enregistrement.

c'est que je ne voudrais pas que le numero auto
change lorsque l'utilisateur choisit l'option "OUI".
je fais un copier/coller de la réponse de Pierre il y a 30 minutes:


Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des
enregistrements.
Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la
fonction de domaine "DMax"
Voir l'aide à ce sujet.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Medinlu" a écrit dans le message de
news:
Bonsoir,

En fait Me.No_Cde.undo ne fonctionne pas ; un message d'erreur
apparaît : la valeur du champs ne respecte pas les règles de
validation pour l'enregistrement ou le champs .....

Par contre en mettant me.undo, ca marche (même en retirant la ligne
"cancel = True").

Du coup, que l'on choisisse "OUI" ou "NON", le résultat est le même :
le n° de cde est effacer et l'utilisateur peut saisir un autre n° de
cde. Et là, je m'aperçoit que dans ma question j'ai oublié de préciser
un petit détail très important : mon formulaire comporte un numero
auto. Et le truc, c'est que je ne voudrais pas que le numero auto
change lorsque l'utilisateur choisit l'option "OUI". Je voudrais
simplement que seul le mauvais n° s'efface pour que l'utilisateur en
saisisse un nouveau !!

Donc, j'ai modifié un peu le code (voir ci-dessous) : le n° auto ne
change pas mais le mauvais n° reste et l'utilisateur est obligé de
l'effacer manuellement !
If IsNull(Me![SR_Cdes]![Pays]) Then
If MsgBox("LE N° DE CDE SAISI EST INCORRECT" & vbCrLf & "SAISIR UN
AUTRE N° DE CDE ?", vbYesNo, "ERREUR SAISIE") = vbYes Then
Cancel = False
Else
Me.Undo
End If
End If

Désolée pour cet oubli. Avez-vous une idée ?

Merci d'avance
Catherine



"Raymond" wrote in message
news:<uFe4gz$...

Bonsoir.

sur 97 tu changes Me.No_Cde.Undo en Me.No_Cde = "" et tu peux remplacer
le


me.undo par un sendkeys de 2 Echap et ça fera la même chose. vérifie
quand


même que me.undo n'existe pas sur 97, la mémoire humaine est fragile.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Medinlu" a écrit dans le message de
news:
Bonjour Raymond,

Merci pour ta réponse ; mais le problème c'est que je suis en A97 ???
N'y aurait-il pas de solution alors ??

Merci d'avance
Catherine