Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа офис.docx
Скачиваний:
16
Добавлен:
09.11.2019
Размер:
4.69 Mб
Скачать

Маска ввода

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

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

Если вам требуется правильный ввод данных, используйте маску ввода. Символы задания маски приведены в табл.2.1. Другие надо приводить буквально. Например, чтобы вывести на экран при вводе номера телефона круглые скобки и дефис, воспользуйтесь маской (999) 000-0000. Для инвентарных номе­ров используйте маску АБООООО. На экране будут видны буквы АБ, а пользователю останется добавить к ним лишь пять цифр. Хотите ввести значение, состоящее из 5 или 9 цифр, - воспользуйтесь маской 000009999.

Таблица 2.1.

Символы задания маски

0

Только цифры от 0 до 9, обязательно.

9

Необязательно, цифра или пробел.

#

Цифра или пробел, включая знаки плюс и минус.

L

Буква, обязательно

?

Буква, необязательно

A

Буква или цифра, необязательно

A

Буква или цифра, необязательно.

&

Любой символ или пробел, обязательно.

C

Любой символ или пробел, необязательно.

.

Десятичный разделитель.

(

Используемые символы разделителей определяются настройками в окне Язык и стандарты панели управления Windows.

,

Разделитель групп разрядов.

)

Используемые символы разделителей определяются настройками в окне Язык и стандарты панели управления Windows.

: ; - /

Разделители времени и даты. Используемые символы разделителей определяются настройками в окне Язык и стандарты панели управления Windows.

<

Переводит все символы справа в нижний регистр (в строчные).

>

Переводит все символы справа в верхний регистр (в заглавные).

!

Символы будут выводиться справа на лево, а не наоборот; может использоваться, только когда символы слева являются необязательными.

\

Показывает следующий символ, даже если он является символом маски ввода (\? выведет на экран &).

Пароль

Выводит на экран для каждого символа звездочку.

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

Часть 1: По умолчанию на диске сохраняются только вводимые вами символы. Все отображаемые символы маски (такие, как круглые скобки и дефис в маске телефонного номера) видны на экране и при печати, но не сохраняются в таблице. И это хорошо, так как экономит место. Однако если вы поместите за маской число 0, как в маске (999) 000-0000,'0, то эти символы также будут сохранены. Для того чтобы указать режим работы по умолчанию, используйте 1.

Часть 2: Вторая, необязательная, часть маски определяет, каким символом заполняются пустые позиции (символ шаблона). По умолчанию используется символ подчеркивания ( _ ), но можно назначить что-нибудь другое. Например, маска 00000-9999; 1;* выведет на экране в поле *****.****. Чтобы указать пробел, заключите его в кавычки (" ").

Б). Мастер по созданию масок ввода

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

На экране появится окно диалога, показанное на рис. 2.7.

Рис. 2.7. Окно диалога.

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

Выбрав тип маски, щелкните на кнопке Далее. Для всех типов масок, за исключением пароля. Access выводит окно диалога, позволяющее отредактировать маску и задать символ шаблона для пустых позиций, показанное на рис. 2.8.

Рис. 2.8. Окно создание масок ввода.

Для маски Пароль появится сразу заключительное окно, так что останется лишь щелкнуть на кнопке Готово. При необходимости внесите нужные изменения в маску или выберите символ шаблона и проверьте, как она работает. Когда вы достигнете желаемого, щелкните на кнопке Далее. В заключительном окне для всех полей, кроме поля даты, мастер спросит, сохранять данные с дополнительными символами или нет. Сделайте ваш выбор и щелкните на кнопке Готово.

В). Задание условия на значение поля

Маски ввода полезны, но таблица все равно может стать жертвой какой-то неожиданной ошибки. Следующая линия защиты - условие на поле. Создайте поле с именем Отправить_По и установите для него следующие свойства:

1. Задайте Размер поля равным 5.

2. Установите значение свойства Формат поля в >, чтобы переводить данные в верхний регистр.

3. Задайте значение по умолчанию UPS.

4. В поле Условие на значение введите правило в виде IN (UPS, FEDEX, DHL, AIR, BOAT).

5. В поле Сообщение об ошибке (Validation Text) введите Должно быть UPS, FEDEX, DHL, AIR, или BOAT.

6. Задайте Да в ячейке Обязательное поле.

Свойство Условие на значение определяет допустимые для Access значения. Правило представляет собой логическое выражение. Если введенное значение удовлетворяет условию, оно принимается. Если же нет, то при попытке перейти в другое поле на экране появляется окно с текстом из поля Сообщение об ошибке. В данном случае правило задано с использованием оператора IN, который проверяет, включено ли ваше значение в список. В нашем случае допустимы значения UPS, FEDEX, DHL, AIR или BOAT. Вводить можно и в нижнем регистре, так как в соответствии с форматом введенное значение будет преобразовано в верхний регистр.

Для проверки численного значения используются перечисленные ниже операторы:

Например, если вы вводите значение в поле Ставка, содержащее почасовую ставку оплаты труда, то неплохо было бы позаботиться, чтобы пользователь не ввел 75,0 вместо 7,50. Чтобы избежать подобных неприятностей, используйте условие <10: это даст гарантию, что в таблице не окажется ставок, превышающих 10. Для задания некоторого диапазона значений используется оператор BETWEEN ... AND (между ... и). Вот пример его использования: BETWEEN 5 AND 8,25. Если тип поля определен как Дата/время, то условие может использо­ваться для сравнения дат. Надо лишь заключить даты между символами #, например, так: ># 10.22.96. Можете не сомневаться, дат ранее 22 октября 1996 года в вашей таблице не будет.

Поля MEMO и Текстовое предоставляют еще большие возможности контроля за вводом. Можно проверить позиции конкретных символов или ограничить их набор. Для этого служит оператор LIKE и шаблоны? (любой символ, но только один), * (произвольное количество любых символов) и # (цифра). Выражение с оператором LIKE означает, что вводимое значение следует сравнивать с образцом.

Это аналогично маске ввода, но с возможностью вывода дополнительного сообщения об ошибке. Например, если вы используете для ввода почтового индекса маску ввода, то при ошибке Access сообщит нечто маловразумительное. Можно задать условие LIKE "# # # # #" OR LIKE "# # # # # -# # # #", которое предполагает, что введенное значение должно состоять либо из пяти цифр, либо из пяти цифр, дефиса и еще четырех цифр. Кроме того, неплохо задать текст сообщения об ошибке, например, «Введите 5- или 9-значный почтовый индекс».

Чтобы ограничить набор вводимых символов (если этого нельзя сделать с помощью маски ввода), заключите допустимые символы в квадратные скобки. Например, предположим, что для определения местонахождения изделия на складе вы используете специальный код. Он начинается с букв А, Б, В или Г, обозначающих сектор, за которым следуют цифры 1, 2, 3 или 4, означающие номер бункера. За ними идет дефис, а за ним - четырехзначное число, определяющее само изделие. В результате получается значение вроде А 1-1234 (изделие 1234 в бункере 1 в секторе А). Вроде бы сложно, но это не так.

Начнем с маски L0-# # # #. Она требует ввода буквы, цифры и числа, а дефис уже указан в маске, и его не надо вводить. Затем вы задаете условие на значение в виде LIKE “[АБВГ][1234]# # # #". Теперь неправильный код ввести будет невозможно: в первой позиции окажутся только буквы А, Б, В или Г, а во второй - цифры 1, 2, 3 или 4.

Чтобы указать значения, которые вводить категорически запрещается, поставьте перед ними восклицательный знак. Условие LIKE [!ЭЮЯ] позволит ввести любой символ кроме Э, Ю или Я.

Г). Пустые строки

Это одно из тех странных свойств, которые требуют особого пояснения. Если вы ничего не ввели в текстовое поле или в поле MEMO в некоторой записи, то что в них будет? Нет. Это звучит наподобие такой фразы: «Если в лесу падает дерево и там никого нет, будет ли шум?» Null - это специальное значение, которое означает, что поле пусто, не заполнено, там ничего нет. А пустая строка - это строка « », строка, в которой ничего нет. Это разные вещи.

Стоит ли их различать? Да. Надо ли вам сейчас ломать над этим голову? Нет.