Вы можете помочь пользователям правильно вводить данные в классические базы данных Access, подключив маски ввода к полям, имеющим строго определенный формат значений, например номера телефонов.
Маска влияет только на ввод значений в Access: она не меняет способ их хранения, который записи от типа данных поля и других свойств. Дополнительные сведения о хранении данных в Access см. в статье Введение в типы данных и свойства полей.
В этой статье
Общие сведения о масках ввода
Маска ввода — это строка символов, указывающая формат допустимых значений входных данных. Маски ввода можно использовать в полях таблиц или запросов, а также в элементах управления форм и отчетов. Маска ввода хранится в свойствах объекта.
Маску ввода рекомендуется использовать, когда вводимые значения должны иметь единый формат, например для полей с номерами телефонов из десяти цифр. Если пользователь введет номер, не указав код города, данные не будут приняты в Access, пока пользователь не добавит код города.
Три компонента маски ввода
Маски ввода состоят из одного обязательного и двух необязательных компонентов, разделенных точками с запятой. Назначение каждого из компонентов описано ниже.
-
Первый компонент является обязательным. Он представляет собой знак или строку (последовательность знаков) маски с заполнителями и литералами, например круглыми скобками, точками и дефисами.
-
Второй компонент не является обязательным и определяет способ хранения встроенных знаков маски в поле. Если для этого компонента задано значение 0, знаки сохраняются вместе с данными, а если 1, то знаки отображаются без сохранения. Выбрав значение 1, можно сэкономить место для хранения базы данных.
-
Третий компонент маски ввода также не является обязательным и определяет знак, используемый в качестве заполнителя. По умолчанию в Access используется знак подчеркивания (_). Чтобы задать другой знак, введите его в третьем компоненте маски.
Пример маски ввода для телефонных номеров в формате России: (999) 000-00-00;0;-:
-
В маске используются два заполнителя — 9 и 0. Заполнитель 9 обозначает необязательные цифры (код города можно не вводить), а 0 — обязательные.
-
Значение 0 во втором компоненте маски ввода указывает на то, что знаки маски следует хранить вместе с данными.
-
Третий компонент маски ввода указывает на то, что вместо знака подчеркивания (_) в качестве заполнителя будет использоваться дефис (-).
Знаки, определяющие маски ввода
В приведенной ниже таблице перечислены заполнители и литералы, используемые в масках ввода, и описано их влияние на ввод данных.
Знак |
Описание |
---|---|
0 |
Пользователь должен ввести цифру (от 0 до 9). |
9 |
Пользователь может ввести цифру (от 0 до 9). |
# |
Пользователь может ввести цифру, пробел, знак "плюс" или "минус". Если ничего не ввести, будет вставлен пробел. |
L |
Пользователь должен ввести букву. |
? |
Пользователь может ввести букву. |
A |
Пользователь должен ввести букву или цифру. |
a |
Пользователь может ввести букву или цифру. |
& |
Пользователь должен ввести какой-либо знак или пробел. |
C |
Пользователь может ввести знаки или пробелы. |
. , : ; - / |
Разделитель целой и дробной части, групп разрядов, значений дат и времени. Выбираемый знак зависит от региональных параметров Windows. |
> |
Все последующие знаки будут переведены в верхний регистр. |
< |
Все последующие знаки будут переведены в нижний регистр. |
! |
Маска ввода заполняется слева направо, а не справа налево. |
\ |
Знаки, следующие непосредственно за обратной косой чертой, отображаются без изменений. |
"" |
Знаки, заключенные в двойные кавычки, отображаются без изменений. |
Когда следует избегать использования масок ввода в Access
Маски ввода — это полезный инструмент, но он уместен не во всех случаях. Не используйте маски ввода, если верно одно из следующих утверждений.
-
Иногда может потребоваться ввести данные в формате, не соответствующему маске. Маска ввода не допускает исключений.
-
Планируется использовать элемент управления "Выбор даты" с полем даты и времени. Маски ввода несовместимы с таким элементом управления.
Добавление маски ввода в поле таблицы с помощью мастера масок ввода
Маски ввода можно использовать для полей с типом данных "Текстовый", "Числовой" (кроме кода репликации), "Денежный" и "Дата/время".
Примечание: Если применить маску ввода к полю с типом данных "Дата/время", для этого поля невозможно будет использовать элемент управления Выбор даты.
-
В области навигации щелкните таблицу правой кнопкой мыши и выберите в контекстном меню команду Конструктор.
-
Выберите поле, к которому необходимо применить маску ввода.
-
В разделе Свойства поля на вкладке Общие щелкните поле свойства Маска ввода.
-
Нажмите кнопку Сборка , чтобы запустить мастер маски ввода.
-
Выберите нужный тип маски ввода из списка.
-
Щелкните поле Проба и введите данные, чтобы проверить работу маски.
-
Чтобы оставить маску ввода без изменений, нажмите кнопку Далее.
-
Выберите способ хранения данных.
-
Чтобы сохранить изменения, нажмите кнопку Готово.
Добавление маски ввода в запрос
-
В области переходов щелкните правой кнопкой мыши запрос, который требуется изменить, и выберите в контекстном меню команду Конструктор.
-
В бланке запроса установите курсор в столбец поля, которое требуется изменить.
Курсор можно поместить в любую строку для этого поля.
-
Нажмите клавишу F4, чтобы открыть окно свойств поля.
-
В разделе Свойства поля на вкладке Общие щелкните поле свойства Маска ввода.
-
Нажмите кнопку Сборка , чтобы запустить мастер маски ввода, а затем следуйте инструкциям мастера.
Добавление маски ввода в элемент управления формы или отчета
-
В области переходов щелкните правой кнопкой мыши форму или отчет, которые требуется изменить, и выберите в контекстном меню команду Конструктор.
-
Щелкните правой кнопкой мыши элемент управления, который требуется изменить, а затем выберите в контекстном меню команду Свойства.
-
На вкладке Все щелкните поле свойства Маска ввода.
-
Нажмите кнопку Сборка , чтобы запустить мастер маски ввода, а затем следуйте инструкциям мастера.
Создание настраиваемых масок ввода
В мастере предусмотрены маски ввода для наиболее распространенных вариантов форматирования, однако в некоторых случаях требуется настроить маску под особые нужды. Чтобы сделать это, можно либо изменить одну из предопределенных масок мастера ввода, либо вручную задать свойство "Маска ввода" для соответствующего поля.
Настройка масок ввода в мастере
-
Откройте объект в конструкторе и щелкните поле, к которому нужно добавить настраиваемую маску ввода.
-
Щелкните Сборка , чтобы запустить мастер маски ввода.
-
Нажмите кнопку Изменить список.
Откроется диалоговое окно Настройка масок ввода.
-
Перейдите к новой записи в этом окне и введите новое описание в поле Описание.
-
В поле Маска ввода введите символы и заполнители с помощью разрешенных знаков из списка таблицы.
-
Щелкните стрелку списка Тип маски: и выберите подходящий тип маски.
-
Нажмите кнопку Закрыть. В списке появится новая маска ввода.
Настройка масок ввода в свойстве поля
-
В области навигации щелкните объект правой кнопкой мыши и выберите в контекстном меню команду Конструктор.
-
Выберите поле, для которого необходимо создать настраиваемую маску ввода.
-
В области "Свойства поля" щелкните поле Маска ввода и введите собственную маску.
-
Чтобы сохранить изменения, нажмите сочетание клавиш CTRL+S.
Для полей числового и денежного типов определение маски ввода задается вручную.
Примеры масок ввода
В таблице ниже приведены примеры использования масок ввода.
Маска ввода |
Обеспечивает ввод значения в виде |
Примечания |
---|---|---|
(000) 000-0000 |
(206) 555-0199 |
В данном случае пользователи должны вводить код города, так как в соответствующем разделе маски (000 в скобках) используется заполнитель 0. |
(999) 000-0000! |
(206) 555-0199 ( ) 555-0199 |
В этом случае в области междугородного кода используется местозаполнитель 9, поэтому междугородные коды необязательны. Кроме того, восклицательный знак (!) обусловливает заполнение маски слева направо. |
(000) AAA-AAAA |
(206) 555-ТЕЛЕ |
Предоставляется возможность заменить буквами четыре последних цифры телефонного номера в формате США. Обратите внимание на местозаполнитель 0 в области кода города, который делает междугородный код обязательным. |
#999 |
-20 2000 |
Любое положительное или отрицательное число, включающее не более четырех знаков и не имеющее разделителей тысяч и дробной части. |
>L????L?000L0 |
ЗЕЛЕНЫЙ339М3 МАЙ Р 452Б7 |
Сочетание обязательных (L) и необязательных (?) букв и обязательных цифр (0). Знак "больше" требует вводить все буквы в верхнем регистре. Чтобы использовать маску ввода этого типа, необходимо задать для типа данных поля таблицы значение Текстовый или Поле МЕМО. |
00000-9999 |
98115- 98115-3007 |
Обязательный почтовый индекс и необязательная область четырехзначного расширения. |
>L<?????????????? |
Мария Вадим |
Имя или фамилия, первая буква которой автоматически вводится заглавной. |
ISBN 0-&&&&&&&&&-0 |
ISBN 1-55615-507-7 |
Учетный номер книги с текстовой константой, обязательными первой и последней цифрами и произвольной комбинацией букв и знаков между ними. |
>LL00000-0000 |
БД51392-0493 |
Сочетание обязательных букв и цифр, все в верхнем регистре. Данный тип маски ввода помогает, например, правильно вводить инвентарные номера или заполнять другие формы складского учета. |
Использование масок ввода для адресов электронной почты
Поскольку адреса электронной почты могут быть самой разной длины, маски ввода не подходят для их проверки при вводе. Вместо масок ввода рекомендуется использовать свойства Правило проверки и Сообщение об ошибке.
Условие на значение, приведенное в таблице ниже, гарантирует, что адрес электронной почты будет состоять из одного или нескольких знаков, знака "@", еще одного или нескольких знаков, точки и еще одного или нескольких знаков. Например, адрес proverka@example.com будет правильным, а proverka@example,com или proverka@example — нет. Если ввести адрес электронной почты, не соответствующий условию на значение, введенные данные будут отклонены и появится сообщение, указанное в свойстве Сообщение об ошибке. Если свойство Сообщение об ошибке не задано, будет выведено стандартное сообщение.
Свойство |
Параметр |
---|---|
Правило проверки |
Is Null Or ((Like "*?@?*.?*") And (Not Like "*[ ,;]*")) |
Сообщение об ошибке (необязательно) |
Введите адрес электронной почты со знаком "@" и полным именем домена (пример: frank@contoso.com). |
Дополнительные сведения о применении правил проверки, а также пошаговые инструкции см. в статье Ограничение ввода данных с помощью правил проверки.