Vider un maskedbox

Résolu
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008 - 23 juil. 2008 à 01:44
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008 - 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.
A voir également:

17 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juil. 2008 à 18:09
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  
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 juil. 2008 à 02:32
salut,
tazone.text = vbnullstring
0
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008
23 juil. 2008 à 09:29
Merci de ta participation mais cela ne fonctionne pas. IL n'y a pas de propriété text sur un contrôle masadbox.
0
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008
23 juil. 2008 à 09:34
Il fallait lire : il n'y a pas de prorpriété text sur un contrôle maskedbox, bien sûr...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 juil. 2008 à 10:15
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"
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
23 juil. 2008 à 10:17
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>
0
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008
23 juil. 2008 à 22:47
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
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
23 juil. 2008 à 23:03
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>
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
23 juil. 2008 à 23:04
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>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 juil. 2008 à 23:21
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"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 juil. 2008 à 23:22
... 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 )
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 juil. 2008 à 23:51
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  
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juil. 2008 à 00:07
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"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juil. 2008 à 00:20
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  
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juil. 2008 à 00:36
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"
0
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008
24 juil. 2008 à 17:09
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.
0
cs_nystul Messages postés 7 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 24 juillet 2008
24 juil. 2008 à 22:54
Voila !
Merci à tous et particUlèrement à PCPT
0
Rejoignez-nous