Маски ввода

Как вы уже знаете, БД ценят непротиворечивость данных. Если у вас есть поле Height (рост), лучше использовать в нем значения, заданные в одних и тех же единицах измерения,

 

в противном случае ваши данные и ломаного гроша стоить не будут. Аналогично, если у вас есть поле PhoneNumber (номер телефона), лучше убедиться в том, что у всех номеров один и тот же формат. Если одни телефонные номера записаны с дефисами, пробелами и скобками (например, (844) 547-1123), в то время как другие несколько отличаются (скажем, 847-547-1123), а третьи вообще пропускают междугородний код (547-1123), у вас появится небольшая проблема. Из-за недостатка согласованности вам будет трудно обрабатывать такие данные (например, искать конкретный телефонный номер или отсортировать телефонные номера в зависимости от междугороднего кода).

Рис, 4.8. Вверху: показано поле PhoneNumber с маской, готовое принимать данные. К этому моменту пользователь, вводящий данные, еще не ввел ни одного символа. В поле PhoneNumber автоматически выводится текст, содержащий символы-заполнители. Внизу: маска форматирует номера по мере их ввода. Если вы введете 1234567890 в данную маску телефонного номера, то увидите следующий текст: (123) 456-7890. В файле БД данные хранятся как 1234567890, а на листе данных представлены с привлекательным внешним оформлением. Это оформление и есть маска

Для облегчения обработки значений, имеющих фиксированный шаблон, — например, телефонных номеров — вы можете воспользоваться маской ввода. Маска ввода (или маска для краткости) предоставляет возможность сообщить программе Access, какой шаблон или образец должны использовать ваши данные. Основываясь на этом образце, Access изменяет

 

способ ввода и редактирования значений, делая их более понятными и менее подверженными ошибкам. На рис. 4.8 показано, как маска позволяет программе Access форматировать последовательность символов в процессе их ввода в поле.

Вы можете добавить маску для любого поля с текстовым типом данных. По сравнению с обычным текстом маски обладают рядом достоинств,

¦ Маски управляют элементом ввода. Будучи пустым, шаблон маски отображает символы-заполнители, на место которых должны попасть значения. В пустой маске телефонного номера отображается текст (_ _ _)_ _ _ – _ _ _ , ясно обозначающий вид необходимых

данных.

¦ Маски помогают понять смысл данных. Гораздо легче читать множество значений, представленных определенным образом. Большинство людей быстрее найдут нужные номера социального обеспечения, если они будут представлены как (012-86-7180), не как (012867180).

¦ Маски предупреждают ошибки. Они отбрасывают символы, не соответствующие шаблону. Если вы пользуетесь маской для ввода номеров телефонов, то не сможете ввести буквы.

¦ Маски устраняют путаницу. Одни и те же данные многих типов можно представить несколькими способами. Вы можете ввести номера телефонов с междугородним кодом и
без него. Используя маску с символами-заполнителями для междугороднего кода, выдаете понять, что эта информация обязательна (а также показываете, где она должна располагаться). Очевидно, что вам не нужно набирать скобки или дефисы для разделения номеров, поскольку эти детали уже стоят в нужном месте. Такие же преимущества маски   дают   при   вводе   дат,   которые   можно   ввести   разнообразными   способами (Год/Месяц/День, Месяц-День-Год и т. д.).

Маски подходят как нельзя лучше для сортировки числовой информации в текстовом поле. Этот сценарий реализуется с самыми разными данными, включая номера кредитных карт, почтовые индексы и номера телефонов. Данные этих типов не следует хранить в числовых полях, поскольку они не должны интерпретироваться как единый номер. Их следует воспринимать как последовательность цифр. (Если вы допустите ошибку и сохраните номер телефона в числовом поле, то обнаружите, что пользователи могут ввести совершенно бессмысленные номера, такие как 0 или -14, поскольку это примеры корректных чисел, несмотря на то, что их нельзя считать допустимыми номерами телефонов. Маска в текстовом поле вылавливает с легкостью подобные ошибки.)

Маска не помогает бороться с более сложными проблемами, такими как значения с переменной длиной или хитроумными шаблонами. Например, маска не поможет определить неправильный адрес электронной почты.

 

 

Примечание

Маски поддерживают только типы данных Текстовый и Дата/время.

 

 

Применение готовых масок

Легче всего начать использование масок с применения одной из разнообразных подготовленных масок, предлагаемых программой Access. Это замечательный способ, т. к. не требует изучения таинственного искусства создания масок.

 

Далее перечислены действия, необходимые для выбора встроенной маски.

1.    В Конструкторе выберите текстовое поле, в котором вы хотите применить маску.
В данном примере используйте поле PhoneNumber.

2.    Найдите свойство поля Маска ввода (Input Mask), щелкните кнопкой мыши в поле этого свойства.

В этот момент у правого края поля появится маленькая кнопка (…) со скругленными углами, показанная на рис. 4.9.

Рис. 4.12. В завершающем окне мастера можно выбрать способ хранения данных в вашем поле — с символами маски или без них

8.  Укажите, как вы хотите хранить значение в данном поле.

Обычно хранятся только вводимые символы (другими словами, все, что вы вводите в поле). Если вы выбираете этот вариант, символы-заполнители в поле не включаются. Например, телефонный номер (416) 123-4567 хранится как 4161234567. Этот вариант экономит немного дискового пространства и позволяет вам изменить маску в дальнейшем для несколько иного представления данных.

Вы могли бы сохранить маску полностью со всеми дополнительными символами. В этом случае номер телефона хранился бы с дефисами, знаками подчеркивания и пробелами, например, (416) 123-4567. Это менее гибкий подход, поскольку не позволяет изменять маску впоследствии.

9.  Щелкните мышью кнопку Готово.

Окончательная маска выводится в поле свойства Маска ввода (Input Mask). Прежде чем двигаться дальше, возможно, вы хотите убедиться в том, что зарезервированная длина поля соответствует маске. В примере с номером телефона Размер поля должен быть 10, если выбрано хранение неформатированного значения (поскольку в номере 10 цифр), или 14, если выбрано хранение полной маски вместе с заполнителями (один дефис, один пробел и две скобки).

 

10. Перейдите снова в Режим таблицы и щелкните мышью кнопку Да, когда программа Access предложит сохранить изменения. Теперь ваша маска ввода подготовлена.

 

 

Примечание

Программа Access использует информацию маски ввода для управления способом ввода данных в таблицу. Но маску можно перехитрить и ввести данные по-другому. Вы могли бы создать форму (как описано в части IV) и отключить маску. Маска не обеспечивает стопроцентной защиты от некорректных данных, если вам нужна полная гарантия, вместо маски нужно применять правило верификации (validation rule).

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100