Control data entry formats with input masks

When you have several people entering data in your Access database, you can define how users must enter data in specific fields to help maintain consistency and to make your database easier to manage. For example, you can set an input mask for a form so that users can only enter telephone numbers in the Swedish format or addresses in the French format. You can set a specific format for the input mask, and select another format so that the same data is displayed differently.

This article will help you learn more about input masks, when to use them, and how to create them.

In this article

About input masks

Let's start with where and when you might want to use input masks. You can add input masks to table fields, queries, and to form and report controls.

For example, you can add an input mask to a Date/Time field in a table, or to a text box control on a form that you bind to a Date/Time field. You can also add input masks to form controls, such as text boxes, that you bind to table fields that are set to those data types. If you are unfamiliar with data types, see the article Introduction to data types and field properties.

Input masks provide a set format for data entry in a field by using characters and symbols. When you apply an input mask to a field, anyone who inputs data in that field must follow the specific pattern defined by the input mask. For example, if the database user enters a phone number without the area code, in this particular mask, (___) 555-0187 xt. ___ the user will be unable to save the data until the area code data is added. The exact behavior depends on the how the database designer sets up the input mask.

Input masks provide a large amount of data validation and prevent users from entering invalid data (such as a phone number in a date field). Input masks can also help ensure that users enter data in a consistent way. That consistency can make data easier to find and make it easier to maintain your database.

Remember that you define input masks to control the format in which data is entered in the database but you can apply another format to the same data to change how the data is displayed. For example, your input mask can define dates to be entered in a format such as YYYY.MM.DD, but have the date appear as DD-MMM-YYYY.

The three parts of an input mask

Input masks are made up one mandatory part and two optional parts, and each part is separated by a semicolon. The purpose of each part is as follows:

The first part is mandatory. It includes the mask characters or string (series of characters) along with placeholders and literal data such as, parentheses, periods, and hyphens.

The second part is optional and refers to the embedded mask characters and how they are stored within the field. If the second part is set to 0, the characters are stored with the data, and if it is set to 1, the characters are only displayed and not stored. Setting the second part to 1 can save database storage space.

The third part of the input mask is also optional and indicates a single character or space that is used as a placeholder. By default, Access uses the underscore (_). If you want to use another character, enter it in the third part of your mask.

For example, this is an input mask for a telephone numbers in the U.S. format: (999) 000-000;0;-:

The mask uses two placeholder characters, 9 and 0. The 9 indicates an optional digit (which makes it optional to enter an area code), and each 0 indicates a mandatory digit.

The 0 in the second part of the input mask indicates that the mask characters will be stored along with the data.

The third part of the input mask specifies that a hyphen (-) instead of the underscore (_) is to be used as the placeholder character.

Add an input mask to a table field

You can use input masks with fields that are set to the Text, Number (except ReplicationID), Currency, and Date/Time data types.

Note: If you use an input mask for a Date/Time field, the Date Picker control becomes unavailable for that field.

In the Navigation Pane, right-click the table and click Design View on the shortcut menu.

Click the field where you want to add the input mask.

Under Field Properties, on the General tab, click the Input Mask property box.

Click the Build button
to start the Input Mask Wizard.

In the Input Mask list, select the type of mask that you want to add.

Click Try it and enter data to test how the mask displays.

To keep the input mask without any changes, click Next.

Select an option for how you want the data to be stored.

Click Finish and save your changes.

Add an input mask to a query

In the Navigation Pane, right-click the query that you want to change and click Design View on the shortcut menu.

In the query design grid, place the pointer in the column for the field you want to change.

You can place the cursor in any row for that field.

Press F4 to open the property sheet for the field.

Under Field Properties, on the General tab, click the Input Mask property box.

Click the Build button
to start the Input Mask Wizard, and then follow the instructions in the wizard.

Add an input mask to a form or report control

In the Navigation Pane, right-click the form or report that you want to change and click Design View on the shortcut menu.

Right-click the control that you want to change, and then click Properties on the shortcut menu.

On the All tab, click the Input Mask property box.

Click the Build button
to start the Input Mask Wizard, and then follow the instructions in the wizard.

Create custom input masks

While the Input Mask Wizard provides input masks for most common formatting needs, you may sometimes want to customize input masks to better suit your needs. Input masks can be customized by either changing the predefined masks from the Input Mask Wizard or by manually changing the Input Mask property for a field where you want the mask applied.

Customize input masks from the Input Mask Wizard

Open the object in Design View, and click the field where you want to add the custom input mask.

Click the Build
to start the Input Mask Wizard.

Click Edit List.

The Customize Input Mask Wizard dialog box appears.

Enter a new description in the Description text box using characters and placeholders from the table.

Click the Mask Type down arrow and select a suitable mask type.

Click Close. The new input mask displays in the list.

Customize input masks from the field property setting

In the Navigation Pane, right-click the object and click Design View on the shortcut menu.

Click the field where you want to create the custom input mask.

In the Field Properties area, click the Input Mask text box, and then type your custom mask.

Press CTRL+S to save your changes.

For more information about how to define an input mask, click the Input Mask property box, and then press F1. You must manually type the input mask definition for Number and Currency fields.

Consider the usage before applying an input mask

It is usually a good idea to consider how data entry needs might change as your database grows and here are several general questions that you can start with:

Will the mask prevent users from entering necessary data? For example, will users ever need to enter phone in a format from another region?

Does the mask interfere with the display format settings? For example, switch to Design view and, in the Format property of the field that contains your input mask, type this format string: (&&&) @@@-@@@@. When you view the field in Datasheet view, you see something like this: (425() 5) 55--1212.

Do you plan on using the Date Picker on a Date/Time field? If you do, then you cannot apply an input mask to that field.

Examples of input masks

The examples in the following table demonstrate some ways that you can use input masks.

This input mask

Provides this type of value

Notes

(000) 000-0000

(206) 555-0199

In this case, you must enter an area code because that section of the mask (000, enclosed in parentheses) uses the 0 placeholder.

(999) 000-0000!

(206) 555-0199( ) 555-0199

In this case, the area code section uses the 9 placeholder, so area codes are optional. Also, the exclamation point (!) causes the mask to fill in from left to right.

(000) AAA-AAAA

(206) 555-TELE

Allows you to substitute the last four digits of a U.S. style phone number with letters. Note the use of the 0 placeholder in the area code section, which makes the area code mandatory.

#999

-202000

Any positive or negative number, no more than four characters, and with no thousands separator or decimal places.

>L????L?000L0

GREENGR339M3 MAY R 452B7

A combination of mandatory (L) and optional (?) letters and mandatory numbers (0). The greater-than sign forces users to enter all letters in uppercase. To use an input mask of this type, you must set the data type for the table field to Text or Memo.

00000-9999

98115-98115-3007

A mandatory postal code and an optional plus-four section.

>L<??????????????

MariaPierre

A first or last name with the first letter automatically capitalized.

ISBN 0-&&&&&&&&&-0

ISBN 1-55615-507-7

A book number with the literal text, mandatory first and last digits, and any combination of letters and characters between those digits.

>LL00000-0000

DB51392-0493

A combination of mandatory letters and characters, all uppercase. Use this type of input mask, for example, to help users enter part numbers or other forms of inventory correctly.

About using input masks for email addresses

Because email addresses vary widely in the number of characters they contain, input masks are not a good tool for ensuring that email addresses are entered correctly. Instead, we recommend using the Validation Rule and Validation Text properties.

The validation rule shown in the following table ensures that the email address is entered with one or more characters, then an “@” sign, then one or more characters, then a period, and then one or more characters. For example, tom@example.com would be allowed, but tom@example,com or tom@example would not. If you enter an email address that doesn’t match the validation rule, Access doesn’t accept the input and displays the message in the Validation Text property. If no text is entered in the Validation Text property box, Access displays a generic message.

Property

Setting

Validation Rule

Is Null Or ((Like "*?@?*.?*") And (Not Like "*[ ,;]*"))

Validation Text(optional)

Please enter the email address with an '@' sign and the full domain name (for example, 'frank@contoso.com').