Создание собственной маски
Мастер создания масок ввода предоставляет очень ограниченный набор вариантов масок. Если вы хотите применять маску для ваших данных особого вида (например, специальный код клиента, применяемый на вашем предприятии), вы должны создать собственную маску.
Создать маску очень легко, но придется потратить немного времени, прежде чем вы добьетесь желаемого результата. У вас есть два основных варианта:
■ наберите или отредактируете маску непосредственно в поле свойства Маска ввода;
■ запустите Мастер создания масок ввода, выберите одну из масок как отправную точку (как описано в предыдущем разделе) и затем перейдите во второе окно мастера. Достоинство этого варианта в возможности тестирования вашей маски в поле Проба до того, как вы сохраните ее как часть своей таблицы.
В любой маске есть три типа символов:
■ заполнители указывают вам, куда вводить символ;
■ специальные символы сообщают программе Access о способе интерпретации части маски;
■ литералы и любые другие символы служат элементами оформления, которое облегчает трактовку значения.
В предыдущем примере маска номера телефона — !(999) 000-000. Символы 9 и 0 — заполнители: они указывают, куда вводить цифры номера телефона. Скобки, пробел и дефис — просто средства форматирования — литералы. И всего один специальный символ — восклицательный знак. Он сообщает Access о том, что символы должны вводиться в маску слева направо, стандартный и единственный имеющий смысл в случае телефонного номера вариант.
Для того чтобы разложить все по полочкам, обратите внимание на следующие таблицы, В табл. 4.2 приведены все заполнители, которые можно использовать в масках ввода. В табл. 4.3 перечислены другие специальные символы. Все остальное автоматически относится к литералам.
Таблица 4.2. Символы-заполнители для масок ввода
Символ | Описание |
Обязательная цифра (от 0 до 9) | |
Необязательная цифра (от 0 до 9) | |
# | Необязательная цифра, знак плюс (+) или знак минус (—) |
Символ | Описание |
L | Обязательная буква |
? | Необязательная буква |
А | Обязательные буква или цифра |
а | Необязательные буква или цифра |
& | Обязательный символ любого типа (включая буквы, цифры, знаки пунктуации и т. д.) |
С | Необязательный символ любого типа (включая буквы, цифры знаки пунктуации и т. д.) |
Таблица 4.2. (окончание)
Таблица 4.3. Специальные символы для масок ввода
Символ | Описание |
! | Обозначает направление заполнения маски слева направо при вводе. Это направление выбрано по умолчанию, поэтому данный символ не требуется (но во встроенные маски он включен) |
< | Преобразует все следующие за ним символы в строчные |
> | Преобразует все следующие за ним символы в прописные |
\ | Указывает на то, что следующий символ надо интерпретировать как литерал. Например, у символа # специальное назначение в масках. Поэтому если вы хотите обычный символ # включить в маску, следует ввести \#. Иногда этот символ применяется перед заполнителем, даже когда он не нужен. Вы можете встретить маску телефонного номера, содержащую последовательность \- вместо просто знака -. Оба эти варианта равнозначны |
Пароль (Password) | Создает поле пароля. Любой символ, который вы вводите в поле, хранится как символ, но отображается как звездочка (*). С помощью варианта можно вставить в маску и что-то другое |
Далее приведено несколько примеров масок, чтобы помочь вам взяться за дело.
■ (000) 000-000. В телефонный номер обязательно должны быть включены цифры междугороднего кода. Эта маска отличается от маски телефонного номера предлагаемой Мастером создания масок. В последней первые три 0 заменены 9, что делает междугородний код необязательным.
■ 00000-9999. Американский почтовый индекс, который состоит из пяти обязательных цифр, за которыми следуют дефис и (иногда) четыре дополнительные цифры.
■ L0L 0L0. Британский или канадский почтовый код, который формируется из шести символов с чередованием букв и цифр, например, M6S ЗН2.
■ 99:00:00 >LL. Маска для ввода времени в поле типа Дата/время. Она формируется из двух цифр для часов и двух цифр для минут. Последние два символа (благодаря наличию символа >) всегда отображаются как прописные и предназначены для обозначения половины суток AM или РМ. (Технически эта маска не препятствует вводу в эти позиции других символов. Но если вы введете время, такое как 12:30 GM, программа Access
пожалуется на то, что не может преобразовать ваше значение в тип данных Дата/время, как того требует поле.)
■ 099.099.099.099. IP-адрес, идентифицирующий компьютер в сети. Он записан как четыре значения, разделенные точками. В каждой части адреса должна быть, как минимум, одна цифра, а как максимум — три. Такой шаблон в маске отображается комбинацией 099 (одна обязательная цифра, за которой следуют две необязательные).
■ Пароль (Password). Маска, допускающая ввод обычного текста разной длины с одной лишь разницей, все символы отображаются звездочками (*) и скрыты от любопытных глаз.
Маски могут заканчиваться двумя необязательными элементами, разделенными точкой с запятой (;).
Вторая составляющая маски — число, сообщающее программе Access, должна ли она сохранять литеральные символы маски в записи БД. (Это последний вопрос, который задает Мастер создания масок.) Если этот фрагмент маски пропустить или использовать цифру 1, Access сохраняет только символы, которые вводит пользователь. Если же вы примените цифру 0, программа сохранит весь текст вместе с литералами.
В третьей составляющей маски содержится символ-заполнитель. Если этот компонент маски пропустить, программа Access применяет знакомый знак подчеркивания.
Далее приведена маска, в которую включены оба дополнительных компонента:
(000) 000-000;1;#
Во второй части стоит 1, а в третей — #. Маска предназначена для ввода телефонных номеров и сохранения их в БД вместе с литералами маски (в данном случае двумя скобками, пробелом и дефисом), в ней вместо знака подчеркивания в качестве заполнителя используется знак номера (#).
Рис. 4.13. Для добавления вашей собственной маски используйте кнопки переходов между записями (расположенные у нижнего края этого окна) для перехода в конец. Это окно можно использовать и для изменения маски. Например, встроенная маска телефонного номера не требует обязательного включения междугороднего кода. Если это свобода, которой вы не хотите пользоваться, замените маску более строгой версией (000) 000-0000