Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONTROLE TEXTBOX AVEC PROPRIETES DE MASQUE DE SAISIE, PLUS D'OPTIONS QUE INPUTMASK DE ACCESS


Information sur la source

Catégorie :Control Classé sous : textebox, masque Niveau : Initié Date de création : 05/09/2005 Vu / téléchargé: 10 145 / 1 359

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Mon idée est de créer un contrôle qui a toutes les propriétés, méthodes et évènements d'un TEXTBOX mais qui permette aussi une saisie par masque de saisie. En bref de reproduire le contrôle "Zone de Texte" d'ACCESS, mais avec encore plus de possibilités.

Donc il s'agit d'un contrôle TEXTBOX doté de 3 nouvelles propriétés:
- MasqueSaisie (Il s'agit de la syntaxe du masque saisie)
- SauveLitteraux (Permet de définir si le résultat retourne les littéraux du masque de saisie)
- IndZoneSaisie (Caractère permettant d'indiquer une zone de saisie, uniquement pour affichage)

Description de la syntaxe
-------------------------------------
0 : Chiffre (0 à 9, saisie obligatoire; signes plus [+] et moins [-] non autorisés).
9 : Chiffre ou espace (saisie facultative; signes plus et moins non autorisés).
# : Chiffre ou espace (saisie facultative; blancs convertis en espaces, signes plus et moins autorisés).
L : Lettre (A à Z, saisie obligatoire).
? : Lettre (A à Z, saisie facultative).
A : Lettre ou chiffre (saisie obligatoire).
a : Lettre ou chiffre (saisie facultative).
& : Tout caractère ou espace (saisie obligatoire).
C : Tout caractère ou espace (saisie facultative).
< : Implique la conversion en minuscules de tous les caractères qui suivent.
> : Implique la conversion en majuscules de tous les caractères qui suivent.
[ : Implique les caractères entre crochets comme possibilités à cette position (*option que n'a pas ACCESS)
\ : Implique l'affichage du caractère qui suit comme caractère d'affichage littéral. Sert à afficher tout caractère compris dans ce tableau comme caractère d'affichage littéral (par exemple, \A s'affiche sous la simple forme A).
' ou " : Implique l'affichage des caractères entre côtes ou guillemets comme caractères d'affichage littéral
Tous autre chose : Implique l'affichage du caractère comme caractère d'affichage littéral.

Je commence en précisant mon idée parce que c'est la première fois que je réalise un OCX, j'ai été guidé en consultant le contenu de quelques uns download sur ce site, si quelqu'un a la doc là dessus (référence site) ça me sera utile.

Le code est facilement compréhensible parce que tout est presque géré par une classe.


 

Source

  • 'Tout est dans le ZIP
'Tout est dans le ZIP

Conclusion

Toutes les critiques sont les bienvenues, veuiller me signaler des bugs si vous en trouvez, ainsi que des propositions d'améliorations.

Asimengo
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de asimengo le 07/09/2005 11:36:11

Voici quelques utilisations de la propriétés MasqueSaisie

.MasqueSaisie = "99[/]99[/]9999" pour les dates
.MAsqueSaisie = "[oOnN]" pour un champ booléen (Oui ou Non)
.MAsqueSaisie = "(9) 00-00-00-00" pour un numéro de téléphone
.MAsqueSaisie = ">58LLL000" pour un texte commençant par 58, puis 3 lettres et 3 chiffres.
.MAsqueSaisie = "CCCCCCCCCCCCC" pour un texte quelconque de 10 caractères.
.MAsqueSaisie = "# 999999" pour un chiffre signé inférieur en valeur absolue à 1 000 000.

Merci de mettre vos commentaires et faites moi un mail afin de recevoir la plus recente mise à jour de mes sources.

Asimengo

signaler à un administrateur
Commentaire de asimengo le 22/09/2005 22:13:28

ça ne sert à rien de mettre une note (surtout pas bonne) sans commentaire. Le but pour moi en publiant c'est de pouvoir avoir des critiques bonnes ou mauvaises afin de faire mieux et de produire une mise à jour plus convenable.

Dommage y'a jamais de commentaire sur mes sources, tout seul j'y arriverai quand même.

signaler à un administrateur
Commentaire de ScSami le 28/09/2005 04:30:39

Pour tout dire je n'ai pas testé ce code et je ne saurais dire s'il est utile sou Access (ou autre) n'utilisant pas ce dernier.
Mais tout ce que je peux dire c'est qu'il faut continuer à nous faire partagé tes sources qui sont d'assez bonne facture pour l'instant ^v^
Note cependant que le manque de commentaires n'est pas à lier à un quelconque manque d'intéret de la part des codesourciens! En effet, note que ta source a déjà été vue plus de 600 fois! Mais elle est sans doute un peu trop spécifique et utile pour générer des comments.
Si tu veux beaucoup de commentaires, fait un truc totalement courant et purement inutile du style : "Chiffres Premiers Sans 'For'" ou encore "Afficher du texte sans police" ;-)

Sinon, le code a l'air visiblement soigné, propre et, de ce que j'en ai vu, clair. Cependant, un OCX digne de ce nom se doit de posséder une gestion d'erreur!!!

Property Set/Let|Get MaPropriete(...) ...
  On Error Goto GestionDesErreurs
  ...
  'Dans le cas d'un Let/Set
  If argumentTransmit IsNot dansLesValeursAdmisesMini THEN
  'P.Ex. :  If vMaPropriete < 1 OR vMaPropriete > 147 Then
  'Génère une erreur qui est renvoyée...
  Err.Raise 508  'Valeur Incorrecte!
  ...
Exit Property
GestionDesErreurs:
  ...
  Err.Raise vbObjectError + 513, Err.Source, "Mon Erreur Perso vient de l'erreur intrinsèque : " & Err.Description
End Property

Dans ton projet teste, il faut jouer avec l'une des 3 options de gestion d'erreur de ton VB (Menu Outils > Options ...) afin de voir la réaction réèle du VB face à ces erreurs!

Sinon le reste, ça va ;-)

@++ lors de prochaines sources ^_~

signaler à un administrateur
Commentaire de asimengo le 28/09/2005 10:08:54

Merci ScSAMI c'est reconfortant et encourageant, en effet voilà une information capitale (la gestion d'erreur que je prends en compte). Néanmoins pour certaines erreurs j'utilise "ERR.RAISE <N° erreur>" qui déclenche une erreur VB.

A+

signaler à un administrateur
Commentaire de asimengo le 11/05/2006 10:32:47

Pour info, VB possède un contrôle presque aux mêmes fonctionnalités "Microsoft Masked Edit Control 6.0 (SP3)" avec comme chemin d'accès "$System32\msmask32.ocx", sauf qu'il a une limitation de 64 caractères.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Masque pour les optionbutton [ par Brodeur ] Bonjour, j'ai besoin d'aide. J'utilise des optionbuttons dans un programme, mais j'ai mis une image de fond. Le probleme est que les optionbutton gard Probleme de taille avec les TexteBOX [ par KoZo ] kan j'ouvre un fichier texte ds un textbox et que ce fichier texte est trop grans ou gros ya un msg d'erreur comment eviter ce msg et ainsi permettra masque binaire en VB [ par Rurouni ] bonjoury a t il moyen de faire un masque binaire en VB?Y a des fonctions qui font ca?Merci Aide pour réaliser un masque de saisie sous VBA EXCEL [ par Metos ] Besoin de réaliser des masques de saisies merci masque de saisie sur un formulaire utilisateur excel [ par bubulle ] salutje suis entrain de créer un formulaire utilisateur de saisie sur excel. Pour un de mes textbox je dois définir un format horaire (hh:mm) avec un Comment executer une commande dans un texteBox [ par MEGATRIX ] Je voudrai executer plusieurs commandes dans un textbox du style:Form.width=1000Label1.caption="Bonjours" Créer un masque de saisie ss vb à la manière d'Access... [ par Emka ] J'aurai besoin d'un cou pde main pour trouver le code qui permet de créer des masques de saisie dans une textbox pour la saisie de date.Au début : __/ rechercher une date quelconque dans un textebox [ par firewaller ] Hello, je voudrais savoir comment on fait pour rechercher une date non définie dans un textBox.est-ce que ca peut marcher avec InStr()?????MErciFiReWa masque binaire [ par Repie ] je vous explik ma situation:G 1 nombre decimal représentant du binaire (genre 90, 90=2+8+16+64 donc 0101101 en binaire)je voudrais vérifier rapide men instruction pour sauvegarder [ par daerlnaxe ] Bon, je debute et honnetement jusque la j'ai réussi a me demerder mais la je craque car je sais pas quoi chercher en fait...Bon dans mon programme y'


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.