
Why No InputMask Property in VB6?
The Microsoft mask edit control does the same functionality for text boxes.
Add in in the Project\Components
<<
Well, it's something, and I'm glad to know about it (thanks!), but it's a
pathetically weak sister of the InputMask in Access. That one can tie into
the system-defined date formats (e.g., "Short Date", "Medium Date", etc.),
has nice, pre-defined formats for phone numbers, social security numbers,
and zip codes, and permits the definition of custom masks using all kinds of
special characters. I've appended the Access help file entry on InputMask.
InputMask Property
You can use the InputMask property to make data entry easier and to control
the values users can enter in a text box control. Read/write String.
expression.InputMask
expression Required. An expression that returns one of the objects in the
Applies To list.
Remarks
Input masks are helpful for data-entry operations such as an input mask for
a Phone Number field that shows you exactly how to enter a new number: (___)
___-____. It is often easier to use the Input Mask Wizard to set the
property for you.
The InputMask property can contain up to three sections separated by
semicolons (;).
Section Description
First Specifies the input mask itself; for example, !(999) 999-9999.
For a list of characters you can use to define the input mask, see the
following table.
Second Specifies whether Microsoft Access stores the literal display
characters in the table when you enter data. If you use 0 for this section,
all literal display characters (for example, the parentheses in a phone
number input mask) are stored with the value; if you enter 1 or leave this
section blank, only characters typed into the control are stored.
Third Specifies the character that Microsoft Access displays for the
space where you should type a character in the input mask. For this section,
you can use any character; to display an empty string, use a space enclosed
in quotation marks (" ").
In Visual Basic you use a string expression to set this property. For
example, the following specifies an input mask for a text box control used
for entering a phone number:
Forms!Customers!Telephone.InputMask = "(###) ###-####"
When you create an input mask, you can use special characters to require
that certain data be entered (for example, the area code for a phone number)
and that other data be optional (such as a telephone extension). These
characters specify the type of data, such as a number or character, that you
must enter for each character in the input mask.
You can define an input mask by using the following characters.
Character Description
0 Digit (0 to 9, entry required, plus [+] and minus [-] signs not
allowed).
9 Digit or space (entry not required, plus and minus signs not
allowed).
# Digit or space (entry not required; spaces are displayed as blanks
while in Edit mode, but blanks are removed when data is saved; plus and
minus signs allowed).
L Letter (A to Z, entry required).
? Letter (A to Z, entry optional).
A Letter or digit (entry required).
a Letter or digit (entry optional).
& Any character or a space (entry required).
C Any character or a space (entry optional).
. , : ; - / Decimal placeholder and thousand, date, and time
separators. (The actual character used depends on the settings in the
Regional Settings Properties dialog box in Windows Control Panel).
< Causes all characters to be converted to lowercase.
> Causes all characters to be converted to uppercase.
! Causes the input mask to display from right to left, rather than
from left to right. Characters typed into the mask always fill it from left
to right. You can include the exclamation point anywhere in the input mask.
\ Causes the character that follows to be displayed as the literal
character (for example, \A is displayed as just A).
Note Setting the InputMask property to the word "Password" creates a
password-entry control. Any character typed in the control is stored as the
character but is displayed as an asterisk (*). You use the Password input
mask to prevent displaying the typed characters on the screen.
For a control, you can set this property in the control's property sheet.
For a field in a table, you can set the property in table Design view (in
the Field Properties section) or in Design view of the Query window (in the
Field Properties property sheet).
You can also set the InputMask property by using a macro or Visual Basic.
When you type data in a field for which you've defined an input mask, the
data is always entered in Overtype mode. If you use the BACKSPACE key to
delete a character, the character is replaced by a blank space.
If you move text from a field for which you've defined an input mask onto
the Clipboard, the literal display characters are copied, even if you have
specified that they not be saved with data.
Note Only characters that you type directly in a control or combo box are
affected by the input mask. Microsoft Access ignores any input masks when
you import data, run an action query, or enter characters in a control by
setting the control's Text property in Visual Basic or by using the SetValue
action in a macro.
When you've defined an input mask and set the Format property for the same
field, the Format property takes precedence when the data is displayed. This
means that even if you've saved an input mask, the input mask is ignored
when data is formatted and displayed. The data in the underlying table
itself isn't changed; the Format property affects only how the data is
displayed.
--
Greg Dunn
Quote:
> The Microsoft mask edit control does the same
> functionality for text boxes. Add in in the
> Project\Components
> >-----Original Message-----
> >hey! i'm glad they left masks out. if masks was included
> i
> >would be tempted to use them. now i can make my own.
> >and don't tell me the Access masks work good. they are
> >terrible!
> >lloyd
> >>-----Original Message-----
> >>Coming from a background of VBA in Microsoft Access, I
> am
> >surprised to find the InputMask property (which makes it
> >easy to ensure proper formats for user-entered dates,
> >phone numbers, social security numbers, etc.) missing
> from
> >textbox and combobox controls in VB6. This seems like a
> >major omission, as the alternatives are all rather clumsy
> >by comparison.
> >>Can anyone speak to why this property is missing from
> >these controls in VB6? What do you do as an alternative
> >to ensure the proper format of input for such items?
> >>Thanks
> >>--
> >>Greg Dunn
> >.