Маска ввода. Выбор между форматом и маской ввода
В Microsoft Access существует два свойства полей, изменение которых приводит к похожим результатам: свойство Формат поля и свойство Маска ввода.
Свойство Формат поля используется для отображения данных в постоянном формате. Например, если свойство Формат поля для полей типа Дата/Время установлен на Средний формат даты, то все вводимые данные будут отображаться в следующем формате: 12-янв-96. Если же пользователь базы данных введет число в виде 12.01.96 (или в другом определенном виде), то при сохранении записи формат даты будет преобразован в Средний формат даты.
При установке свойства Формат поля изменяется только отображение значения, однако данное свойство никак не влияет на хранение значения в таблице. Изменения в формате отображения применяются только после сохранения введенных данных, до этого момента определить, в каком формате были введены данные в поле, невозможно. Если же вводом данных необходимо управлять, в дополнение к формату отображения данных или вместо него следует использовать маску ввода. Если же требуется, чтобы данные отображались так, как они были введены, устанавливать свойство Формат поля не следует.
Для числовых, денежных, логических полей, а также полей Дата/время и Счетчика существуют встроенные форматы отображения. Для данных типов полей можно также установить специальные форматы. Для текстовых полей встроенных форматов нет, но для них можно указать специальные форматы.
Маска ввода обеспечивает соответствие данных определенному формату, а также заданному типу значений, вводимых в каждую позицию. Если для поля определены как формат отображения, так и Маска ввода, то при добавлении и редактировании данных используется маска ввода, а параметр Формат поля определяет отображение данных при сохранении записи. Если используется как свойство Формат поля, так и свойство Маска ввода, то следует следить за тем, чтобы результаты их действий не противоречили друг другу.
|
Синтаксис масок ввода
Описание маски ввода может состоять из трех разделов, разделенных знаком точка с запятой, например, (999) 000-0000!;0;" ".
Раздел | Значение |
Первый | Сама маска ввода. |
Второй | Указывает, следует ли сохранять текстовые символы. 0 - текстовые символы сохраняются вместе с введенными значениями. 1 или пустое значение - сохраняются только введенные символы. |
Третий | Символ, выводящийся в маске ввода на месте пустых символов. Допускается использование любого символа; для отображения пробела, следует ввести " " (прямые кавычки, пробел, прямые кавычки). Если данный раздел описания оставить пустым, то для представления пустых символов используется символ подчеркивания (_). |
В приведенной ниже таблице указано, как Microsoft Access интерпретирует символы, содержащиеся в первой части описания в свойстве Маска ввода. Чтобы включить в маску текстовые константы, отличные от представленных в таблице, в том числе символы и пробелы, следует просто ввести их в нужную позицию. Чтобы включить один из следующих символов в качестве текстовой константы, необходимо перед ним ввести символ обратной косой черты \.
Символ | Описание |
Цифра (от 0 до 9, ввод обязателен; символы плюс [+] и минус [-] не допускаются). | |
Цифра или пробел (ввод не обязателен; символы плюс и минус не допускаются). | |
# | Цифра или пробел (ввод не обязателен; пустые символы преобразуются в пробелы, допускаются символы плюс и минус). |
L | Буква (от A до Z или от А до Я, ввод обязателен). |
? | Буква (от A до Z или от А до Я, ввод не обязателен). |
A | Буква или цифра (ввод обязателен). |
a | Буква или цифра (ввод необязателен). |
& | Любой символ или пробел (ввод обязателен). |
C | Любой символ или пробел (ввод необязателен). |
.,:; - / | Десятичный разделитель и разделители тысяч, значений дат и времени. (Отображаемый символ зависит от настроек языка и стандартов на панели управления Windows.) |
< | Указывает перевод всех следующих символов на нижний регистр. |
> | Указывает перевод всех следующих символов на верхний регистр. |
! | Указывает заполнение маски ввода справа налево, а не слева направо. Заполнение маски символами всегда происходит слева направо. Восклицательный знак в маске ввода можно помещать в любую позицию. |
\ | Указывает ввод любого следующего символа в качестве текстовой константы. Используется для отображения всех перечисленных в данной таблице символов как текстовых констант (например, \A выводится как символ «A»). |
Пароль | Значение Пароль, заданное для свойства Маска ввода (InputMask), создает поле для ввода пароля. Любой символ, введенный в поле, сохраняется как символ, но отображается как звездочка (*). |
|
Если пользователь определяет маску ввода и одновременно задает для того же поля значение свойства Формат поля, то при выводе данных приоритет имеет свойство Формат поля. Это означает, что при форматировании данных сохраненная маска ввода игнорируется. Данные в базовой таблице при этом не изменяются; свойство Формат поля определяет только режим отображения данных.
|
Примеры масок ввода
В приведенной ниже таблице указаны описания некоторых масок ввода и примеры значений, которые в них могут быть введены. В конце данного раздела снова обратитесь к таблице за сведениями о кодах, используемых для создания масок ввода.
Описание маски ввода | Примеры значений |
(000) 000-0000 | (206) 555-0248 |
(999) 999-9999! | (206) 555-0248 |
() 555-0248 | |
(000) AAA-AAAA | (206) 555-TELE |
#999 | -20 |
>L????L?000L0 | GREENGR339М3 |
МАЙ Р 452Ю7 | |
>L0L 0L0 | Т2Ф 8М4 |
00000-9999 | 98115- |
98115-3007 | |
>L<?????????????? | Мария |
Иван | |
ISBN 0-&&&&&&&&&-0 | ISBN 1-55615-507-7 |
ISBN 0-13-964262-5 | |
>LL00000-0000 | DB51392-0493 |
Создание маски ввода для управления вводом данных
Свойство Маска ввода можно установить только в режиме конструктора таблицы, режиме конструктора запроса или режиме конструктора формы. В большинстве случаев свойства устанавливаются для полей в режиме конструктора таблицы. В таком случае установленные свойства применяются к полю в режиме конструктора запросов, а также к элементам управления в формах и отчетах, присоединенных к данному полю (действует после установления свойств в режиме конструктора таблицы при создании элементов управления).