Vider un maskedbox [Résolu]

cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention - 23 juil. 2008 à 01:44 - Dernière réponse : cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention
- 24 juil. 2008 à 22:54
Bonjour,
Après avoir cherché en vain, je cherche s'il existe un moyen de vider un contrôle maskedbox au format "##/##/####" du type "dd/mm/yyyy. En effet, au moment de le remplir, la donnée précédente subsiste.
D'avance merci.
Afficher la suite 

17 réponses

Répondre au sujet
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 24 juil. 2008 à 18:09
+3
Utile
copie çà dans ta form ou dans un module :
Sub ClearBox(ByRef oMB As MaskEdBox)
    oMB.Text = Replace(oMB.Mask, "#", "_")
End Sub

et ensuite tu appelles cette précédure dans l'évènement que tu as besoin, un click par exemple....
çà donne :
Private Sub Command1_Click()
    ClearBox MaskEdBox1
End Sub

Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 23 juil. 2008 à 02:32
0
Utile
salut,
tazone.text = vbnullstring
Commenter la réponse de PCPT
cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention - 23 juil. 2008 à 09:29
0
Utile
Merci de ta participation mais cela ne fonctionne pas. IL n'y a pas de propriété text sur un contrôle masadbox.
Commenter la réponse de cs_nystul
cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention - 23 juil. 2008 à 09:34
0
Utile
Il fallait lire : il n'y a pas de prorpriété text sur un contrôle maskedbox, bien sûr...
Commenter la réponse de cs_nystul
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 23 juil. 2008 à 10:15
0
Utile
Salut,

je te confirme que si, il y a bien la propriété .Text avec ce contrôle :

Es-tu sûr de bien parler du contrôle Microsoft Masked Edit Control ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 juil. 2008 à 10:17
0
Utile
question idiote : si il n'a pas de propriété text , comment le contrôle peut il en  contenir, du texte????

Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur

/B>
Commenter la réponse de gillardg
cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention - 23 juil. 2008 à 22:47
0
Utile
Pour répondre à Gillardg : il n'y a jamais de questions idiotes, mais là !!! J'ai bien pris la précation de référencer ma question avec un sujet "débutant"
Bref, dès que j'entre la propriété text (elle existe dans le sens où VB me la propose lors de la saisie comme sur la copie d'écran de mortalino) VB buggue avec le message "erreur d'exécution 380 - valeur de propriété non valide"
Je confirme qu'il s'agit bien du contrôle Microsoft Masked Edit Control.
Est-il normal que la propriété text n'apparaisse pas dans la fenêtre propriétés de l'objet maskedbox ?
Par ailleurs, j'ai placé ma routine dans l'évênement "change" du maskedbox. qu'en pensez-vous ?

Merci à tous
Commenter la réponse de cs_nystul
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 juil. 2008 à 23:03
0
Utile
l'évenement Change d'un textbox, qu'il soit masqué ou non , ext éxécuté chaque fois que le text change !!
alors si tu mets une routine (c'est la routine , poutine) dans cet évenement il est bien entendu que si ta routine change le contenu du texte ça REexecute ta routine !

est ce que c'est l'effet désiré??

Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur

/B>
Commenter la réponse de gillardg
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 juil. 2008 à 23:04
0
Utile
et en plus si ta routine fait vider le (zorro)textbox
faut vraiment pas la mettre dans change

Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur

/B>
Commenter la réponse de gillardg
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 23 juil. 2008 à 23:21
0
Utile
Salut,

j'ai vérifié, et il a raison sur l'erreur.
Voici la parade : par exemple, pour une date, en passant par personnalisé (dans les propriétés du contrôle), j'ai mis
##/##/####
Je lance la form, et j'obtiens :
__/__/____

J'ai tenté un :
MaskEdBox1.Text = "__/__/____"
Et là je n'ai plus d'erreur.

Nystul, tente comme dans mon exemple avec ton propre format

@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 23 juil. 2008 à 23:22
0
Utile
... une fois vidée (par le change), un .text=rien quand .texte est déjà = à rien de déclanche pas de _Change, puisqu'il n'y a pas eu de changement

faut tester avant, quand on a un doute
(et parfois même sans doute )
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 23 juil. 2008 à 23:51
0
Utile
j'suis étonné aussi de cette erreur (idem présente après test)

une possibilité, mais pas très propre, est de sélectionner le texte et de le supprimer

With MaskEdBox1
    .SelStart = 0
    .SelLength = Len(.Text)
    .SelText = vbNullString
End With

Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Commenter la réponse de PCPT
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 24 juil. 2008 à 00:07
0
Utile
perso je ne trouve pas ça si étonnant. Car un masque est prédéfini (##/##/####) donc ce maskededitbox attendant ce masque, le vbNullString ne correspond pas au masque.

Par contre, je propose aussi une autre soluce (pense pas que ce soit mieux que PCPT, mais quitte à faire de la combine, autant écourter le code) :
MaskEdBox1.Text = Replace(MaskEdBox1.Mask, "#", "_")

@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 24 juil. 2008 à 00:20
0
Utile
un mask pourrait très bien être fait avec une class. donc rien de réellement visuel.
mais tu as raison. quand la zone est "vide" (par défaut) avec le masque rempli, len(.text) renvoie la taille du mask....

ta toute première proposition était la meilleure ;)
(ou la dernière aussi en fait ^^)

Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Commenter la réponse de PCPT
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 24 juil. 2008 à 00:36
0
Utile
Je dirai qu'entre ta proposition et les miennes, il aura le choix !
Qu'il teste les trois, et qu'il choisisse celle qui le rend plus à l'aise

@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention - 24 juil. 2008 à 17:09
0
Utile
Tout d'abord, merci à tous de vos contributions. Mais vu mon niveau vous me perdez dans les détails. Certains diront qu'il n'a qu'à essayer : et pourtant c'est ce que je fais.
A quel endroit dois-je placer vos routines ? quel évênement doit la générer ?
Concrètement ce qu'il me faut c'est un maskedbox qui se vide dès que je veux modifier (ou éventuellement créer) un nouvel enregistrement. Le maskedbox étant lié à un datacontrole.

Merci à tous.
Commenter la réponse de cs_nystul
cs_nystul 7 Messages postés mercredi 17 août 2005Date d'inscription 24 juillet 2008 Dernière intervention - 24 juil. 2008 à 22:54
0
Utile
Voila !
Merci à tous et particUlèrement à PCPT
Commenter la réponse de cs_nystul

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.