<<

стр. 5
(всего 10)

СОДЕРЖАНИЕ

>>

10. Закройте форму Клиенты, а затем закройте базу данных.
Microsoft Access 2002. Шаг за шагом
142

Отбор информации
по нескольким критериям
Команды Фильтр по выделенному (Filter By Selection), Фильтр для (Filter For)
Ас2002-5
Ас2002-! и Изменить фильтр (Filter By Form) позволяют легко и быстро извлечь
Ас2002е-: из базы данных нужную информацию, пока фильтры остаются
относительно простыми. Но предположим, что требуется най-
ти сведения о заказах, отправленных в западные штаты в оп-
ределенный период времени одной из двух фирм, занимающих-
ся доставкой. В подобных ситуациях, когда нужно создать
сложный фильтр, содержащий несколько условий отбора или
выражений, можно воспользоваться командой Расширенный фильтр
(Advanced filter/Sort).
Построение расширенного фильтра осуществляется с помощью бланка,
представленного на следующем рисунке.
Список полей таблицы Бланк построения фильтра




Бланк построения может использоваться только для одной таблицы.

Совет. Если простой запрос, созданный в окне фильтра, предполагается
использовать в дальнейшем, сохраните его в виде запроса. Это можно сде-
лать с помощью команды Сохранить как запрос (Save As Query) в меню Файл (File)
или кнопки Сохранить как запрос (Save As Query) на панели инструментов. Мож-
но также щелкнуть правой кнопкой мыши в окне фильтра, а затем щелк-
нуть на команде Сохранить как запрос (Save As Query) в контекстном меню.

GardenCo В этом упражнении вы воспользуетесь командой Расширенный
фильтр (Advanced Filter/Sort), чтобы создать фильтр для отображе-
ния клиентов из двух штатов, а затем поэкспериментируете с
Глава 5. Поиск и отбор информации 143

бланком построения фильтра, чтобы оценить его возможности.
В качестве рабочей будет использоваться папка
SBS\Access\Queries\AdvFilter. Выполните следующие шаги:
1. Откройте базу данных GardenCo, расположенную в рабочей
папке.
2. На панели объектов щелкните на Таблицы (Tables), а затем щел-
кните дважды на таблице Клиенты, чтобы открыть ее в режиме
таблицы.
3. В меню Записи (Records) укажите на команду Фильтр (Filter), а затем
щелкните на Расширенный фильтр (Advanced Filter/Sort). Откроется окно
фильтра со списком полей таблицы Клиенты в верхней части.
4. Если бланк построения не пустой, щелкните на команде Очис-
тить бланк (Clear Grid) в меню Правка (Edit).
5. Щелкните дважды на поле Фамилия, чтобы скопировать его в
ячейку Поле (Reid) первого столбца бланка.
6. Щелкните в ячейке Условие отбора (Criteria) в столбце Фамилия, вве-
дите с* и нажмите на клавишу | E n t e r |. Введенное значение
будет преобразовано к виду: Like "с*".
7. Прокрутите список полей таблицы Клиенты до конца и щелк-
ните дважды на поле Штат, чтобы скопировать его в следующий
свободный столбец бланка.
8. Щелкните в ячейке Условие отбора (Criteria) в столбце Штат, введи-
те Калифорния or Вашингтон и нажмите на клавишу [ Enter |.
Введенное значение будет преобразовано к виду: "Калифор-
ния" Or "Вашингтон", как показано ниже.




Условие отбора определяет теперь клиентов из штатов Кали-
форния и Вашингтон, фамилии которых начинаются с буквы «С».
Microsoft Access 2002. Шаг за шагом
144

9. В меню Фильтр (Filter) щелкните на команде Применить фильтр (Apply
Filter/Sort), чтобы отобразить все записи, удовлетворяющие за-
данным условиям.


41950
Дженни :Сак 198 23-ая Авен! Сан-Францием;Калифорния
" ˜
Питер I Сейдон 19308 Француз* Сан-Францией; Калифорния
;51589
Девид ;Симпсон 145 пл. св. Себ* Сан-Хосе !Калифорния
Нил [Смит 117 пер. Вилкен:Такома [Вашингтон 181653
Розана ^Р.мит i 17331 Пивная; Сиэтл ^Вашингтон
Саманта |Смит ;74 Восточная Хиэтл Вашингтон И1433

'




Совет. Уменьшив размеры окон, можно одновременно видеть фильтр и
таблицу.

10. В меню Записи (Records) укажите на команду Фильтр (Filter), а за-
тем щелкните на Расширенный фильтр (Advanced Filter/Sort), чтобы вер-
нуться в окно фильтра.
11. Щелкните в ячейке Или (Or) в столбце Фамилия, введите в* и
нажмите на клавишу | Enter |. Бланк построения будет выгля-
деть следующим образом.

gjp КпменгыФильтр! : фильтр




Штат
ПоЧТОВЫЙИн,:.


шерТелефсЦ




I "Калифорния" Or ."Bau!
Like вс*"
щц Lite v'2



12. В меню Фильтр (Filter) щелкните на команде Применить фильтр (Apply
Filter/Sort). При построении фильтра условия, заданные в одной
строке, объединяются оператором И (And), а условия, заданные
в разных строках - оператором Или (Or). Поэтому результаты
отбора включают клиентов, проживающих в Калифорнии или
Глава 5. Поиск и отбор информации 145

Вашингтоне, фамилии которых начинаются с буквы «С», и кли-
ентов с фамилиями, начинающимися с буквы «В», независимо
от их местожительства.
13. Вернитесь в окно фильтра, введите Калифорния or Вашин-
гтон в ячейку Или (Or) в столбце Штат и нажмите на клавишу
I Enter |.
14. Снова примените фильтр, чтобы отобразить клиентов толь-
ко из штатов Калифорния и Вашингтон.
15. Закройте таблицу Клиенты без сохранения изменений, а за-
тем закройте базу данных.


Выражения
В Access выражение (expression) представляет собой сочетание операто-
ров, констант, функций и свойств, определяющих конечный результат.
Собственно, это часть формулы, расположенная справа от знака равен-
ства. Выражения используются при определении свойств таблиц и форм,
для вычисления значений в формах или отчетах, при построении запро-
сов и во многих других ситуациях.
Используя выражения, можно создавать сложные критерии, которые
включают несколько условий отбора, объединенных логическими, ариф-
метическими операторами и операторами сравнения.
Наиболее распространенными логическими операторами являются И (And),
Или (Or) и Нет (Not). Если условия отбора объединены оператором И (And), бу-
дут отобраны записи, удовлетворяющие всем условиям. При использова-
нии оператора Или (Or) искомые записи должны соответствовать хотя бы
одному из заданных условий, а оператор Нет (Not) отберет только те запи-
си, которые не отвечают ни одному из условий отбора.
Операторы сравнения включают следующие символы: > (меньше чем), <
(больше чем) и = (равно). Кроме того, часто используются комбинации ос-
новных операторов: <= (меньше или равно), >= (больше или равно) и <>
(не равно). Операторы сравнения иногда используются в сочетании с опе-
ратором Like, который проверяет значения полей на соответствие образцу.
Арифметические операторы (сложение (+), вычитание (-), умножение (*)
и деление (/)) используются для действий над числами. Близкий к ним
оператор & используется для сцепления (текстовый аналог сложения)
двух текстовых строк.
146 Microsoft Access 2002. Шаг за шагом


Создание запроса в режиме конструктора
Ас2002-3-2 Пользоваться сортировкой и фильтрацией очень удобно, но при
Ас2002-5-2 работе с несколькими таблицами их возможностей недостаточ-
но. В таких случаях применяются запросы. Самый распростра-
ненный тип запросов отображает записи, удовлетворяющие
определенным условиям, но существуют и другие типы, при-
веденные ниже.
• Запрос на выборку извлекает данные из одной или нескольких таблиц
и представляет их в табличном виде. Этот тип запроса можно исполь-
зовать для группировки записей, вычисления сумм, средних величин
и других итоговых значений. Работая с результатами запроса, можно
одновременно редактировать данные из нескольких таблиц.
• Параметрический запрос запрашивает ввод параметров (например,
начальную и конечную дату). Этот тип запросов часто используется
для получения отчетов за определенный период времени.
• Перекрестный запрос выполняет расчеты и группирует данные для
анализа информации. Для элементов, расположенных в левом столбце
и в верхней строке результатов запроса, могут вычисляться итоговые
значения (сумма, количество или средняя величина). Ячейки на пересе-
чении строк и столбцов также содержат вычисляемые значения.
• Запрос на действие вносит множественные изменения за одну операцию.
Собственно, это запрос на выборку, который выполняет определенные
действия над результатами отбора. Возможны четыре типа действий:
обновление, удаление и добавление записей и создание таблицы. В двух
последних случаях результаты запроса на выборку либо добавляются в
существующую таблицу, либо для них создается новая таблица.

Совет. Access включает также запросы SQL, но в этой книге они не рас-
сматриваются.



Фильтры, сортировка и запросы
Основные различия между применением фильтрации и сортировки и ис-
пользованием запросов состоят в следующем:
• фильтрация и сортировка выполняются быстрее, чем запросы;
• фильтры и условия сортировки хранятся временно. Запрос можно со-
хранить на диске и использовать в дальнейшем;
Глава 5. Поиск и отбор информации 147

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

Запрос можно создать вручную или с помощью мастера. При этом созда-
ется выражение, описывающее критерий, которому должны соответство-
вать данные в указанных таблицах. В результате выполнения запроса
записи, отвечающие заданным условиям, отобразятся в табличном виде.
В этом упражнении вы создадите форму для ввода заказов,
GardenCo
полученных по телефону. Форма базируется на запросе, содер-
жащем сведения из таблиц Сведения о заказе и Товары. Запрос со-
здает таблицу, в которой перечислены все товары с указанием
их цен, количества, скидок и стоимости покупки. Поскольку
стоимость не хранится в базе данных, ее нужно вычислить пря-
мо в запросе. В качестве рабочей будет использоваться папка
SBS\Access\Queries\QueryDs. Выполните следующие шаги.
1. Откройте базу данных GardenCo, расположенную в рабочей
папке.
2. На панели объектов щелкните на Запросы (Queries).
3. Щелкните дважды на команде Создание запроса в режиме конструк-
тора (Create query in Design View). Откроется окно запроса и диалого-
вое окно Добавление таблицы (Show Table), как показано на следую-
щем рисунке.

II
:
Ш-Ш-%-*^


Область
таблиц



Бланк
запроса
Клиенты
Перевозчики
Поставщики
Сведения о заказе
Сотрудники
Типы
Товары
Microsoft Access 2002. Шаг за шагом
148

Воспользуйтесь диалоговым окном Добавление таблицы (Show Table),
чтобы указать таблицы и запросы, которые нужно включить в
данный запрос.
4. На активной вкладке Таблицы (Tables) щелкните дважды на таб-
лицах Сведения о заказе и Товары, чтобы добавить их в окно запро-
са, и закройте диалоговое окно Добавление таблицы (Show Table).
В верхней части окна запроса появятся изображения добавлен-
ных таблиц, содержащие списки полей, как показано на следу-
ющем рисунке.
8
IS Запрос! : запрос на выборку

щ->
••
:...-.... ...

<




Ш
КхицИсам КодТовчи S
КодТовара И; ОгнвдниеТов
Ценз *? Латинское н; .
Количество J*j
№ Km:s ы
ИГ" :' |'
g
М i;
\ И№ тетины:
:
D а си
D
Пнво? (-«'Ч |Щ
||
ШШ; с? )
| |Ш ч а
1
" :: и';!);
! 1 ;^
^
*1Й ' •' . : ;
| | I •: |




Вверху каждого списка полей имеется звездочка, представля-
ющая все поля таблицы. Ключевое поле отображается полу-
жирным шрифтом. Линия, соединяющая поля КодТовара в обеих
таблицах, указывает, что эти поля связаны.

Совет. Чтобы добавить в запрос дополнительные таблицы, откройте диа-
логовое окно Добавление таблицы (Show Table). Для этого щелкните правой кноп-
кой мыши в верхней части окна запроса и воспользуйтесь командой Доба-
вить таблицу (Show Table) в контекстном меню или щелкните на кнопке Отобразить
таблицу (Show Table) на панели инструментов.

Нижняя часть окна запроса занята бланком, предназначенным
для построения условий отбора.
5. Чтобы включить поля в запрос, нужно перетащить их из спис-
ков вверху окна в последовательные столбцы бланка запроса.
Перетащите следующие поля:
Глава 5. Поиск и отбор информации 149

Из таблицы Поле

Сведения о заказе КодЗаказа
Товары ОписаниеТовара
Сведения о заказе Цена
Сведения о заказе Количество
Сведения о заказе Скидка

Совет. Щелкнув дважды на поле, можно скопировать его в свободный стол-
бец бланка. Чтобы скопировать сразу все поля таблицы, выделите нуж-
ный список (щелкнув дважды на его заголовке), а затем перетащите вы-
деленный объект на бланк запроса. Когда вы отпустите кнопку мыши, все
поля разместятся в последовательных столбцах бланка. Можно включить
все поля таблицы в один столбец бланка, перетащив в него звездочку.
Однако если требуется задать условия сортировки или отбора для опре-
деленных полей, нужно перетащить каждое из них в отдельный столбец.

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



КодЗаказа х]
Код Товара ,j КодТовара
Цена ,|
| 'ОписаниеТов;:
Количество |3
| Латинское нг
КодПостзвщг*]

Скидка




Цена
ОписаниеТовара Количество я ВР
М^ :*

Щ
Сведения о заказе
Товары Сведения о заказе Сведения о заказе

а и
0 0



а
:
:*] ^ • -- '•". Щ = . - • •• •'- ^ .. •• "- ,




6. Щелкните на кнопке Запуск (Run), чтобы выполнить запрос и
отобразить результаты в виде таблицы.
Измените запрос таким образом, чтобы упорядочить резуль-
таты по полю КодЗаказа, и добавьте поле для вычисления стоимо-
сти товара, которая определяется умножением цены на коли-
чество за вычетом скидки.
Microsoft Access 2002. Шаг за шагом
150

прос на выборку
,!....,-... S
^^^^ . I
[[Осенний кроку| $18,75
11079; Компост
11083! Компост !
"'11'138[Крыпост^ '"Т' $58,00
11152[Крмпост L
. .....-.
"'$4,50'
I 1 0931 Песок для nepi;
II 1211 Песок для пер* "ЖЖ"
11 132[Песок для nepi[
1 Ш Песок для пер*
1| $4,50




7. Щелкните на кнопке Вид (View), чтобы вернуться в режим кон-
структора. Строка Сортировка (Sort) (третья на бланке) позволяет
указать поле и принцип сортировки (по возрастанию или убы-
ванию).
8. Щелкните в ячейке Сортировка (Sort) в столбце КодЗаказа, щелк-
ните на стрелке и щелкните на По возрастанию (Ascending). Посколь-
ку ни одна из таблиц не содержит стоимость покупки, восполь-
зуйтесь построителем выражений, чтобы вставить в бланк
запроса выражение для расчета стоимости.
9. Щелкните правой кнопкой мыши в ячейке Поле (Reid) первого
пустого столбца бланка (шестого), а затем щелкните на коман-
де Построить (Build) в контекстном меню. Откроется диалоговое окно
Построитель выражений (Expression Builder), приведенное на следующем
рисунке.
Кнопки операторов Поле выражения
I




Ш Таблицы
fi]Запросы
ИЗ Forms
И Reports
ИЗ Функции
CD Константы
СЗ Операторы
CD Общие




Область элементов
Глава 5. Поиск и отбор информации 151

Нужно построить следующее выражение:
<Ссиг([Сведения о заказе].[Цена]*[Количество]*(1-[Скидка])/100)*100>
Функция Ccur, используемая в выражении, преобразует резуль-
таты вычислений в денежный формат.
10. В первом столбце области элементов щелкните дважды на
папке Функции (Functions), а затем щелкните на Встроенные функции
(Build-in Functions). Во втором столбце отобразятся категории встро-
енных функций.
11. Во втором столбце щелкните на категории Преобразование
(Conversion), чтобы ограничить список функций в третьем столб-
це этой категорией. Щелкните дважды на функции Ccur в тре-
тьем столбце.


Построитель выражений
Выражения, используемые в фильтрах или запросах, обычно вводятся
вручную или создаются с помощью функции Построитель выражений
(Expression Builder). Чтобы открыть окно построителя, можно воспользо-
ваться командой Построить (Build) в контекстном меню или щелкнуть на кноп-
ке построителя ... в конце поля, куда нужно ввести выражение.
Построитель выражений не является мастером, то есть, не проводит
пользователя через процедуру построения выражения. Тем не менее он
оказывает существенную помощь, предоставляя иерархические списки,
содержащие большинство элементов (функций, операторов, полей), ко-
торые можно включить в выражение. Выбрав нужный элемент, можно
скопировать его в поле выражения, а затем щелкнуть на кнопке ОК, что-
бы поместить выражение в фильтр или запрос.

на

'*"*.':- . ..I '.:....•.
tcur(«expr>)|




ICUanpocl
I S3 Таблицы
I S3 Запросы
База данных
IS! Forms Дата/время CDate
I S3 Reports СОЫ
DDE/OLE
CDc-c
По подмножеств/
| Q Функции
Обработка ошибок Chr
си
Финансовые
DcardenC СИ
Орд


Microsoft Access 2002. Шаг за шагом
152

Функция преобразования в денежный формат вставлена в поле
выражения. Вместо заполнителя «ехрг», заключенного в скобки,
нужно вставить выражение, вычисляющее число, которое бу-
дет преобразовано в денежный формат.
12. Щелкните на «ехрг», чтобы выделить его. Элемент, который
вы вставите следующим, заменит выделенный фрагмент.
13. Следующий элемент, который нужно вставить в выраже-
ние, — это поле Цена из таблицы Сведения о заказе. Щелкните дваж-
ды на элементе Таблицы (Tables), щелкните на Сведения о заказе, а
затем щелкните дважды на Цена. Окно построителя выражений
выглядит теперь, как показано ниже.




Q Запрос!
И Таблицы
-CD Заказы
Количество
- О Клиенты Скидка
- СЗ Перевозчики
- Q Поставщики

-
-О Сотрудники




В результате последнего действия курсор оказался в конце
выражения, после поля Цена, что и требуется.
14. Теперь нужно умножить значение поля Цена на значение
поля Количество. Щелкните на кнопке * (звездочка) в ряду опера-
торов, расположенном под полем выражения. В выражении
появится знак умножения и очередной заполнитель «Выражение»
(«ехрг»).
15. Щелкните на заполнителе «Выражение» («ехрг»), чтобы выделить
его, и вставьте поле Количество, щелкнув дважды на нем во вто-
ром столбце. Введенное выражение вычисляет стоимость то-
вара, умножая цену на количество. Но, чтобы получить окон-
чательный результат, необходимо вычесть скидки,
предлагаемые на отдельные товары. Скидки указаны в поле
Скидки и составляют 10-20% от стоимости товара. Проще рассчи-
тать процент, который нужно заплатить (80-90% от стоимос-
Глава 5. Поиск и отбор информации 153

ти), чем вычислять скидку, а затем вычитать ее из стоимости
товара.
16. Введите *(!-, щелкните дважды на поле Скидка и введите зак-
рывающую скобку). Окно построителя выражений теперь выг-
лядит как на рисунке (расширьте окно, чтобы отобразить вы-
ражение полностью).


дения о заказеИЦена] * [Сведения о заказе]![Количество] * (1 - [Сведения о заказе]![Скидка])) ii




L3 Запрос! <одЗакам
КодТооара
?}Таблицы
Цена
- С] Заказы
Количество
-О Клиенты
- СЗ Перевозчики
- СЗ Поставщики




О Товары
И Запросы




Хотя поле Скидка определено как процентное, в базе данных оно
хранится в виде чисел от 0 до 1 (то есть, на экране отображает-
ся 10%, а в памяти хранится 0,1). Поэтому, если скидка состав-
ляет 10%, результат выражения (1- Скидка) равняется 0,9. Ина-
че говоря, при 10% скидке стоимость составит 0,9 от
произведения цены на количество.
17. Щелкните на кнопке ОК. Окно построителя выражений зак-
роется, и выражение будет скопировано в ячейку бланка зап-
роса.
18. Нажмите на клавишу | Enter |, чтобы завершить ввод выра-
жения.

Совет. Чтобы быстро подогнать ширину столбца под его содержимое, щел-
кните дважды на правой границе серой полосы вверху столбца.

19. Access присвоил выражению имя Выражение! (Ехрг1). Щелкни-
те на нем дважды, чтобы выделить, и введите более содержа-
тельное имя Окончательная цена.
Microsoft Access 2002. Шаг за шагом
154

20. Щелкните на кнопке Вид (View), чтобы отобразить результа-
ты в режиме таблицы.


ебень ................ [
Ш79|Конпост
1 1 рар: Лжетсуга тиссс]
1108р]Китайс1<ий
1 1Ш1! Золотая листв<




_ ___
1|р84|Цветочная пы/
11084; Ежевика




Заказы теперь отсортированы по полю КодЗаказа, а в последнем
столбце указана вычисленная стоимость товара.
21. Прокрутите таблицу вниз, чтобы просмотреть несколько
записей со скидками. Как видите, стоимость рассчитана пра-
вильно.
22. Закройте окно запроса и щелкните на кнопке Да (Yes) в ответ
на предложение сохранить изменения. Введите Сведения о за-
казе (окончательная цена) в качестве имени запроса и щелк-
ните на кнопке ОК.
23. Закройте базу данных.

Создание запроса с помощью мастера
Ас2002-3-1 Процесс создания простого запроса с помощью мастера Созда-
Ас2002е-3-3 ние запросов (Query Wizard) практически не отличается от создания
формы с помощью мастера. Суть его заключается в выборе по-
лей из существующих таблиц и запросов и добавлении их в но-
вый запрос.
Для эффективной работы с несколькими таблицами необходимо устано-
вить между ними отношения. Поэтому, прежде чем запускать мастер зап-
росов, откройте окно Схема данных (Relationships) и свяжите совпадающие поля
в нужных таблицах.
Глава 5. Поиск и отбор информации 155

GardenCo В этом упражнении вы воспользуетесь мастером, чтобы создать
запрос, извлекающий сведения о заказах из таблиц Клиенты и За-
казы. Записи этих таблиц связаны через поле КодКлиента В каче-
стве рабочей будет использоваться папка SBS\Access\Queries\QueryWiz.
Выполните следующие шаги.
1. Откройте базу данных GardenCo, расположенную в рабочей
папке.
2. На панели объектов щелкните на Запросы (Queries), а затем щел-
кните дважды на команде Создание запроса с помощью мастера (Create
query by using wizard). Откроется первая страница мастера Создание
простых запросов (Simple Query Wizard).
а^й^аяиааакага^^

Совет. Можно также запустить мастер, щелкнув на команде Запросы (Queries)
в меню Вставка (Insert) или щелкнув на кнопке Новый объект (New Object), а затем
щелкнув дважды на Мастер простых запросов (Simple Query Wizard).

3. В списке Таблицы и запросы (Tables/Queries) выделите Таблица: Заказы
(Tables: Orders).

4. Щелкните на кнопке », чтобы переместить все доступные
поля в список Выбранные поля (Selected Reids).
5. В списке Таблицы и запросы (Tables/Queries) выделите Таблица: Клиен-
ты (Tables: Customers).
6. Щелкните дважды на полях Адрес, Город, Штат, ПочтовыйИндекс и
Страна, чтобы переместить их в список Выбранные поля (Selected Reids),
а затем щелкните на кнопке Далее (Next).

Совет. Если взаимосвязь между таблицами не установлена, будет пред-
ложено установить связь, а потом снова запустить мастер.

7. Щелкните на кнопке Далее (Next), чтобы принять подробный
вариант, заданный по умолчанию.
8. Введите имя запроса Запрос на заказы, оставьте выделен-
ным вариант Открыть запрос для просмотра данных (Open Query to view
information) и щелкните на кнопке Готово (finish).
Access выполнит запрос и отобразит результаты в виде табли-
цы. Прокрутите записи, чтобы убедиться, что отображаются
сведения обо всех заказах.
156 Microsoft Access 2002. Шаг за шагом

9. Щелкните на кнопке Вид (View), чтобы переключиться в режим
конструктора. Обратите внимание, что для всех полей выделе-
ны флажки в ячейках Вывод на экран (Show). Очистив флажок, мож-
но отменить отображение поля, которое включено в запрос для
сортировки или создания условия отбора, но не требуется при
просмотре.
10. Очистите флажки Вывод на экран (Show) для полей КодЗаказа,
КодКлиента и КодСотрудника, а затем щелкните на кнопке Вид (View),
чтобы переключиться в режим таблицы. Как видите, все три
поля исключены из результатов запроса.
11. Щелкните на кнопке Вид (View), чтобы вернуться в режим кон-
структора. Этот запрос извлекает все записи из таблицы Заказы.
Можно ограничить просмотр заказами, сделанными в опреде-
ленный период, преобразовав запрос в параметрический, ко-
торый запрашивает диапазон дат при запуске.
12. В столбце ДатаРазмещения щелкните в ячейке Условие отбора
(Criteria) и введите Between [Введите начальную дату:] And [Вве-
дите конечную дату:]. шнйняяяШмРмМ
|| ssa
13. Щелкните на кнопке Запуск (Run), что- :|У
бы выполнить запрос. Access отобразит
следующее диалоговое окно.
14. Введите 1/1/01 и нажмите на клавишу | Enter |.
15. Во втором диалоговом окне Введите значение параметра (Enter
Parameter Value) введите 1/31/01 и нажмите на клавишу | Enter |.
Появятся результаты запроса, содержащие только те заказы,
которые были сделаны в указанный период.
16. Закройте таблицу и щелкните на кнопке Да (Yes), чтобы со-
хранить запрос.
17. Закройте базу данных.

Вычисления в запросе
Ас2002е-3-5 Обычно запросы используются для поиска информации, удов-
летворяющей заданным условиям. В некоторых ситуациях,
однако, пользователя интересуют не столько конкретные дан-
ные, сколько итоговые значения (например, количество зака-
зов, размещенных за год, или их общая стоимость). Проще все-
го получить такого рода сведения, создав запрос, который
Глава 5. Поиск и отбор информации 157

сгруппирует записи и выполнит необходимые вычисления. Это
осуществляется с помощью функций группировки, представ-
ленных в следующей таблице:
Функция Назначение

Sum Вычисляет сумму значений, содержащихся в поле
Avg Вычисляет среднее арифметическое для всех значений поля
Count Определяет число значений поля, не считая пустых (Null) зна-
чений
Min Находит наименьшее значение поля
Мах Находит наибольшее значение поля
StDev Определяет среднеквадратичное отклонение от среднего зна-
чения
Вычисляет дисперсию значений поля
В этом упражнении вы создадите запрос, который вычисляет
число наименований товаров, имеющихся в продаже, среднюю
цену товара и общую стоимость всех товаров. В качестве рабо-
чей будет использоваться папка SBS\Access\Queries\Aggregvate. Вы-
полните следующие шаги.
1. Откройте базу данных GardenCo, расположенную в рабочей
папке.
2. На панели объектов щелкните на Запросы (Queries), а затем щел-
кните дважды на команде Создание запроса в режиме конструктора
(Create query in Design View). Откроется окно запроса и диалоговое
окно Добавление таблицы (Show Table).
3. В диалоговом окне Добавление таблицы (Show Table) щелкните дваж-
ды на Товары, а затем щелкните на кнопке Закрыть (Close). Access
добавит таблицу Товары в окно запроса и закроет диалоговое окно
Добавление таблицы (Show Table).
4. В списке полей таблицы Товары щелкните дважды на КодТовара,
а затем - на Цена. Оба поля переместятся на бланк запроса.
5. Щелкните на кнопке Групповые операции (Totals) на панели инст-
рументов.
На бланке запроса появится дополнительная строка Групповая
операция (Total), как показано ниже.
Microsoft Access 2002. Шаг за шагом
158




6. Щелкните в ячейке Групповая операция (Total) столбца КодТовара,
щелкните на стрелке и выделите из списка Count. В ячейке Груп-
повая операция (Total) появится слово Count. При выполнении запро-
са эта функция вычислит число записей, содержащих значе-
ние в поле КодТовара.
7. В ячейке Групповая операция (Total) столбца Цена задайте значение
Avg-
8. Щелкните на кнопке Запуск (Run). Результаты запроса пред-
ставляют собой одну запись, содержащую число товаров и их
среднюю цену.




9. Щелкните на кнопке Вид (View), чтобы перейти в режим конст-
руктора.
10. В ячейке Поле (Reid) третьего столбца введите = Цена *Мини-
мальныйЗаказ и нажмите на клавишу | Enter |.
Введенный текст будет преобразован в выражение, о чем сви-
детельствует префикс Выражение1: (Ехрг1:). Это выражение умно-
жает цену товара на его количество.
Глава 5. Поиск и отбор информации 159

11. В ячейке Групповая операция (Total) для третьего столбца задай-
те значение Sum, чтобы просуммировать значения, вычислен-
ные с помощью заданного выражения.
12. Выделите текст Выражение! (Ехрг1) и введите Общая стоимость.
13. Снова выполните запрос. Результаты показаны на следую-
щем рисунке.




14. Закройте окно запроса, щелкнув на кнопке Нет (No) в ответ на
предложение сохранить запрос.
15. Закройте базу данных и выйдите из Access.
KB В
Ш Свойства полей Тест : таблице
j
ЧисловоеПоле J Числовой *Ш
\
Дата ! Дата/время
.
;
Дена j Денежный _ J_ _... .. ;
[
1огическоеПоле 'Логический |Й |



Общие
Использование | 1 Л 'О ГИЛИ

типа данных и !•••^•'•'Л ПОЛ*;
МлО.П ВВ.11Д&
свойств полей
для контроля ЩЩ ичепо

вводимых
V'"<!::-,«1U »


S=д«ние г•
значений,
S|^MB:J:T,(:>C'
стр. 162 йндексмрор
5Qs?fme:Si»<«
Не г контрюля^
гревции !М?
«Нет
.Рг»»1 пред)!


Ш Свойства полей Тест : таблица

^•^•eLa^ffl Использование
Макдональд
списков для выбора
Смит
значений,
Февраль
Смит
Март
стр. 177
Апрель
Май
Контроль данных с
Июнь
помощью маски ввода,
Июль
стр.169
Август




Ш Щ ..•••••-. • И :« Щ« , г ' ; - : п - pi I I НН |Ш И'Ш


t iJionQfi'TI, !V!i'K;ry W.ifip-Hi'.^i' .-

.1 М. . I b:.4,i i , : in,' ''.'i'l V.::':: | 1™.ПНС

I ЦИД Данил-..:
!- •• ' 1
Запуск
т
ззшяяяшяш
1
!0:00:00
••:'•;. Длинный формат времени
Щ Краткий формат даты iQ9.27.69
;оо:оо
:. Краткий формат времени
Выборка
;'•; Средний формат времени 112:00
1Перекрестный
я :;,№°sa:::j
Создание таблицы.,.
и Обновление

lil|
il
Добавление...

I-
^ J0|
Удаление
>.
Запрос 5QL —
Использование запросов для обновления
и удаления данных, стр. 1 86
Параметры...
Глава 6
Обеспечение
достоверности данных

Изучив эту главу, вы сможете:
• контролировать ввод информации с помощью типа данных;
• использовать свойства полей для контроля вводимых значений;
• обновлять информацию в таблице;
• удалять данные из таблицы.

Базу данных можно сравнить со старой обувной коробкой или ящиками
письменного стола, куда обычно складывают счета, квитанции и прочие
бумажки, чтобы разобраться с ними позже. Но в отличие от базы данных,
эти «хранилища информации» не способны влиять на собственное содер-
жимое, находить нужные сведения и избавляться от лишних бумаг. И тем
более они не помогут вам в таком деле, как обновление информации, если
она изменилась или устарела.
При создании базы данных в Microsoft Access можно воспользоваться
свойствами полей, чтобы наложить ограничения на вводимые значения,
обеспечив тем самым правильность ввода информации. Так, например,
можно запретить ввод текста в поля, предназначенные для числовых зна-
чений (например, цен), или отменить ввод длинных фрагментов текста
там, где можно ограничиться простым «да» или «нет». К числу свойств,
управляющих вводом данных, относятся следующие: Обязательное (Required),
Нулевая длина (AllowZero Length), Размер поля (Reid Size), Маска ввода (Input Mask) и Усло-
вие на значение (Validation Rule). Назначение двух первых очевидно. Свойство
Обязательное (Required) требует обязательного заполнения поля, а свойство
Нулевая длина (Allow Zero Length) разрешает вводить пустую строку (две кавыч-
ки подряд). Остальные свойства несколько сложнее, поэтому им будет
уделено особое внимание при выполнении упражнений.




6 - Access 2002
162 Microsoft Access 2002. Шаг за шагом


Совет. За дополнительной информацией о свойствах полей обратитесь к
справочной системе Access, воспользовавшись ключом поиска Свойство поля
(field property).

Еще одним способом, обеспечивающим достоверность информации в базе
данных, является использование запросов для оперативного обновления
и удаления записей. Предложим, например, что руководство компании
«Все для сада» решило повысить цены на товары определенной катего-
рии и удалить все сведения о товаре, изъятом из продажи. Применение
запросов для решения подобных задач не только экономит время, но и
устраняет возможность ошибок.
В упражнениях этой главы показано, как с помощью типа дан-
ных и свойств полей наложить ограничения на данные, кото-
рые могут быть введены в таблицу или форму. Изменение
свойств полей в таблицах, которые содержат реальную инфор-
мацию, может привести к нежелательным последствиям и даже
уничтожению данных. Поэтому в первых упражнениях исполь-
зуется новая база данных, предназначенная исключительно для
экспериментов, после чего вы продолжите работу с файлами
базы данных GardenCo в папках DataType, FieldSize, InputMask, ValRules,
Lookup, QueryUp и QueyDel, вложенных в папку SBS/Access/Accurate.

Использование типа данных
для контроля ввода информации
Ас2002-5-1 Установка Тип данных (Data Type) определяет тип данных, которые
Ас2002е-1-1 можно ввести в поле: текст, число, дата и другие. Если, напри-
мер, поле определено как числовое, при попытке ввести в него
текст, ввод будет заблокирован и появится соответствующее
предупреждение.
В этом упражнении вы создадите новую базу, содержащую распростра-
ненные типы данных, а затем посмотрите, как установки свойств Тип дан-
ных (Data Type) и Размер поля (Field Size) влияют на ввод данных в таблицу. В
качестве рабочей будет использоваться папка SBS/Access/Accurate/Datatype.
Выполните следующие шаги.
1. На панели задачи Создание файла (New File) в разделе Создать (New)
щелкните на Новая база данных (Blank Database), чтобы отобразить
диалоговое окно Файл новой базы данных (New File Database).
Глава 6. Обеспечение достоверности данных 163

Если панель задачи Создание файла (New.File) не отображается,
щелкните на кнопке Создать (New) на панели инструментов.
2. В поле Имя файла (File Name) введите Field Test, перейдите к ра-
бочей папке, а затем щелкните на кнопке Создать (Create). Откро-
ется окно новой базы данных.
3. Щелкните дважды на команде Создание таблицы в режиме конст-
руктора (Create Table in Design View). Откроется пустое окно таблицы, в
котором вы создадите пять полей - по одному для каждого типа
данных: текстового, числового, дата/время, денежного и логи-
ческого.
4. Щелкните в первой ячейке Имя поля (Reid Name), введите Тек-
стовоеПоле и нажмите клавишу [Tab |, чтобы переместиться в
ячейку Тип данных (Data Type).
5. По умолчанию в ячейке указано Текстовый (Text), что и требует-
ся. Поэтому нажмите дважды на клавишу |Tab|, чтобы принять
заданное по умолчанию значение и переместить курсор в сле-
дующую строку.
6. Введите ЧисловоеПоле и нажмите клавишу | Tab |, чтобы пе-
реместиться ъ ячейку Тип данных (Data Type).
7. Щелкните на стрелке, чтобы отобразить список типов дан-
ных, щелкните на Числовой (Number), а затем дважды нажмите
клавишу [Tab |.
8. Повторите шаги 4-7, чтобы добавить следующие поля:
Поле Тип данных
Дата Дата/время (Date/Time)
Цена Денежный (Currency)
ЛогическоеПоле Логический (Yes/No)

Совет. Тип данных «логический» иногда называют «булевым» в честь из-
вестного математика Джорджа Буля. Данные этого типа могут содержать
одно из двух взаимоисключающих значений, например, да/нет, 1/0, вклю-
чить/выключить или истина/ложь.

9. Щелкните на кнопке Сохранить (Save), введите Свойства полей
Тест в качестве имени таблицы и щелкните на кнопке ОК. По-
явится диалоговое окно, в котором рекомендуется создать клю-
чевое поле.
Microsoft Access 2002. Шаг за шагом
164

10. Поскольку в этом упражнении вам не требуется ключевое
поле, щелкните на кнопке Нет (No).
11. Щелкните на се лекторе строки ТекстовоеПоле, чтобы выделить
первую строку. Таблица теперь выглядит, как показано на сле-
дующем рисунке.




<Л1
> Н« j Ц Yin b-S.KJ ! . '.•;.;./. ..
1-\-С.Н'-{Л'п;!Я ' -.'^/'SQ
Ф'ЧМО! ПОП» '' ˜i"^
H-ifK.'j«a-..'l-i '.'Д/:
''"^0
Пг.ДПНМ. . ..
:;н/1Чиниепоу!«.-пч.ь.1»о |

G,»i щеии.» oij iHBHfjf.e

Пустые с rpilKjr


.
Индексированное как
Сжатие Юникод;
; Нет контроля__
'
•1ет
"";:.,.:„.'•:;...".::..

В нижней части диалогового окна отображаются свойства вы-
деленного поля.
12. Щелкните в каждом поле и просмотрите его свойства, а за-
тем щелкните на кнопке Вид (View), чтобы перейти в режим таб-
лицы.
Глава 6. Обеспечение достоверности данных 165

13. Курсор должен находиться в первом поле таблицы. Введи-
те В этой строке 24 символа и нажмите клавишу | Tab |, чтобы
перейти в следующее поле.
14. Введите Пятьсот и нажмите клавишу | E n t e r |. Так как это
поле может содержать только числовые данные, ввод будет
заблокирован и появится соответствующее предупреждение.
15. Щелкните на кнопке ОК, введите 500 и нажмите клавишу
[Tab|.
16. В поле даты введите число или текст (что угодно, но не дату)
и нажмите клавишу [Tab |. Получив предупреждение, щелкните
на кнопке ОК, введите Янв. 1 и нажмите клавишу [Tab |. Поле
даты воспринимает практически любое значение, которое мо-
жет быть интерпретировано как дата, и отображает его в за-
данном по умолчанию формате. В зависимости от установок
вашего компьютера введенная дата может отобразиться как
01.01.02 или 01.01.2002.

Совет. Если введенная дата содержит только день и месяц без указания
года, Access относит ее к текущему году. Если год указан, но в виде двух
цифр, значения от 00 до 29 трактуются как годы с 2000 по 2029, а значе-
ния больше 29 - как годы с 1930 по 1999.

17. В поле с денежным типом данных ведите любой текст или
дату и нажмите клавишу [Tab]. Получив предупреждение, щел-
кните на кнопке ОК, введите -45,3456 и нажмите клавишу |Tab|.
Значение будет сохранено в том виде, в котором введено, но в
поле отобразится ($45.35) в соответствии с заданным по умол-
чанию форматом для отрицательных денежных величин.
(Если на ваших экранах так и осталось отрицательное значе-
ние цены, в области Свойства полей (Field Properties) в поле свойства
Формат поля введите $# ##0,00;($# ##0,00))

Совет. Access использует региональные установки, заданные в окне Панель
управления (Control Panel), для определения формата даты, времени, денежных
величин и чисел. Если база данных используется совместно с пользовате-
лями из других стран, можно включить в денежный формат отображение
символа валюты. Одни и те же числа имеют совершенно разные величины
в зависимости от того, доллары это, марки, лиры или фунты.
166 Microsoft Access 2002. Шаг за шагом

18. Попытайтесь ввести текст или число в логическое поле. За-
тем щелкните в поле, чтобы выделить флажок или очистить.
Выделенный флажок соответствует значению Да (Yes), а очищен-
ный - Нет (No). Оставьте флажок выделенным.
Как видите, логическое поле не допускает никакого ввода; оно
лишь переключается между двумя предопределенными зна-
чениями. Таблица теперь выглядит, как показано на следую-
щем рисунке.




Совет. В режиме конструктора можно воспользоваться свойствами, пред-
ставленными на вкладке Подстановка (Lookup), чтобы отобразить логическое
поле как флажок, текстовое поле или поле со списком, или щелкнуть на
стрелке свойства Формат (Format) на вкладке Общие (General) и выбрать из спис-
ка Да/нет (Yes/No), Истина/ложь (True/False) или Вкл./выкл. (On/Off). Эти значения бу-
дут отображаться на экране, хотя логические данные всегда хранятся в
виде 0 или 1.

19. Закройте таблицу, а затем закройте базу данных.

Ограничение значений данных с помощью
свойства Размер поля (Field Size )
Ас2002е-1-1 Свойство Размер поля (Field Size) позволяет ограничить значения
данных, содержащихся в текстовых и числовых полях, а так-
же в полях типа счетчик. Для текстовых полей это свойство
может принимать любое значение от 0 до 250 (по умолчанию
принимается 50). Для полей типа Счетчик (AutoNumber) автомати-
Глава 6. Обеспечение достоверности данных 167

чески устанавливается Длинное целое (Long Integer). Установки свой-
ства Размер поля (Reid Size) для числовых полей приведены в сле-
дующей таблице.
Установка Описание
Byte (Байт) Позволяет хранить целые числа от 0 до 255
Integer (Целое) Позволяет хранить целые числа от -32.768 до
32.767
Long Integer (Длинное целое) (Используется по умолчанию.) Позволяет
хранить целые числа от -2,147,483,648 до
2,147,483,647.
Single (Одинарное с плаваю- Позволяет хранить числа от -3.402823Е38 до
щей точкой) -1.401298Е-45 для отрицательных значений и
от 1.401298Е-45 до 3.402823Е38 для положи-
тельных значений
Double (Двойное с плавающей Позволяет хранить числа от
точкой) -1.79769313486231Е308 до -4.94065645841247Е-324
для отрицательных значений и от
1.79769313486231Е308 до 4.94065645841247Е-324
для положительных значений
Decimal (Действительное) Позволяет хранить числа от -10*28-1 до 10*28-1
(.mdb)

Ограничение размера поля позволяет предотвратить ввод неправильной
информации. При попытке ввести слишком много символов в текстовое
поле раздастся предупредительный сигнал, и поле заблокируется. Ана-
логичным образом Access отреагирует на ввод числа, величина которого
выходит за установленные пределы.
Reid Test В этом упражнении вы измените свойство Размер поля (Reid Size)
для нескольких полей и посмотрите, как это скажется на вводе
информации, а также на данных, которые уже введены. В ка-
честве рабочей будет использоваться папка SBS/Access/Accurate/
ReldSize. Выполните следующие шаги.
1. Откройте базу данных Field Test, расположенную в рабочей
папке.
2. Откройте таблицу Свойства полей Тест в режиме конструктора.
3. Щелкните в строке ТекстовоеПоле, а затем в области Свойства поля
(Reid Properties) в поле свойства Размер поля (Reid Size) введите 12.
Microsoft Access 2002. Шаг за шагом
168

4. Щелкните в строке ЧисловоеПоле, щелкните на свойстве Размер
поля (Field Size), щелкните на стрелке и выделите в списке Байт (Byte).
Теперь длина текстового поля ограничена 12 символами, а чис-
ловое поле может принимать значения от 0 до 255.
5. Щелкните на кнопке Вид (View), чтобы вернуться в режим таб-
лицы, щелкнув на кнопке Да (Yes) в ответ на предложение со-
хранить таблицу. Поскольку таблица содержит данные, не ук-
ладывающиеся в заданные пределы, Access выдаст
предупреждение, что часть данных может быть потеряна.

Microsoft Access

• ICKOTI.jll-M- Д.>М1!Ы1!МО|1Ы<»,Г1.. IИ> I <-[>'.<, i> ,1. : vis":

Значение сьсмствэ РЙи;л,к ^д.к:;:. „;,i и,.-, ,,1м., и .. и.и--, ч .:>•;••.•.. у ^а-ик-.м jу... »>,<••, : : . .и м тли быть





6. Щелкните на кнопке Да (Yes), чтобы продолжить, а затем сно-
ва щелкните на кнопке Да (Yes), чтобы подтвердить удаление
содержимого одного поля. Таблица теперь должна выглядеть
следующим образом.

• Свойства полей Тест : таблица




Поле ТекстовоеПоле содержит 12 символов (вместо 24, которые вы
ввели), а поле ЧисловоеПоле пустое. Введенное вами значение 500
было удалено, так как оно превышает 255 — максимальное зна-
чение, которое может храниться в поле.
Глава 6. Обеспечение достоверности данных 169

7. Введите 2,5 в поле ЧшювоеПоле и нажмите клавишу | Enter |.
Число 2,5 будет округлено до ближайшего целого.
8. Закройте таблицу, а затем закройте базу данных.

Использование маски ввода
Ас2002-2-2 Свойство Маска ввода (Input Mask) позволяет контролировать ввод
Ас2002-2-4 данных в текстовые, числовые, денежные поля, а также в поля,
Ас2002е-1 -4 содержащие дату/время. При использовании маски достаточ-
но одного взгляда на поле формы или таблицы, чтобы получить
представление о формате и длине данных. Маска состоит из
трех частей, разделенных точками с запятой, как в маске для
номера телефона, приведенной в качестве примера:
!\(000") "000\-0000;1;#
Первая часть маски содержит символы, являющиеся заполнителями дан-
ных, которые нужно ввести, а также служебные символы типа скобок и
тире. В следующей таблице представлены наиболее распространенные
заполнители, которые используются в масках:
Описание
Символ

О Обязательная цифра (от 0 до 9)
9 Необязательная цифра или пробел
Необязательная цифра или пробел (пустые позиции пре-
#
образуются в пробелы, разрешены знаки плюс и минус).
L Обязательная буква (от А до Z)
? Необязательная буква
А Обязательная буква или цифра
А Необязательная буква или цифра
& Обязательный символ или пробел
С Необязательный символ или пробел
< Все последующие буквы преобразуются в строчные
> Все последующие буквы преобразуются в прописные
\ Следующий символ отображается как литерал
Password Создает поле ввода пароля, обладающее тем свойством, что
вводимые символы отображаются на экране в виде звез-
дочек (*)
Microsoft Access 2002. Шаг за шагом
170

Любые символы, не включенные в этот список, отображаются как лите-
ралы. Если один из символов, приведенных выше, предполагается исполь-
зовать как литерал, предварите его символом \.
Вторая и третья части маски ввода не являются обязательными. Если во
второй части маски указана 1 или ничего, это означает, что нужно сохра-
нить только введенные символы, тогда как «О» означает, что нужно со-
хранить как введенные символы, так и символы маски. В третьей части
маски указывается символ, который отображается как заполнитель при
вводе новой записи. Если третья часть маски отсутствует, по умолчанию
используется подчеркивание.
Маска ввода !\(000") "000\-0000;1;# отобразится в поле формы или таб-
лицы следующим образом:
(###)###-####
В этом случае ввод ограничивается десятью цифрами - не больше и не
меньше. Access сохранит только введенные цифры без скобок, пробелов и
тире, хотя эти символы и отображаются в таблице, форме или отчете.
В этом упражнении вы воспользуетесь мастером Создание масок
Reid Test
ввода (Input Mask Wizard), чтобы применить стандартную маску те-
лефонного номера к текстовому полю. Затем вы создадите мас-
ку, преобразующую первую введенную букву в заглавную. В
качестве рабочей будет использоваться папка SBS/Access/Accurate/
InputMask. Выполните следующие шаги.
1. Откройте базу данных Reid Test, расположенную в рабочей
папке.
2. Откройте таблицу Свойства полей Тест в режиме конструктора.
3. Введите Телефон в первую пустую ячейку столбца Имя поля
(Field Name) и оставьте тип данных Текстовый (Text) без изменения.
4. Щелкните на селекторе новой строки, чтобы выделить ее, а
затем перетащите новое поле вверх списка, чтобы оно оказа-
лось в левом столбце таблицы.
5. Сохраните макет таблицы. С выделенным полем Телефон щел-
кните на свойстве Маска ввода (Input Mask) в области Свойства поля
(Field Properties).
6. Щелкните на кнопке построителя ... , чтобы запустить мас-
тер Создание масок ввода и отобразить первую страницу мастера,
показанную ниже.
Глава 6. Обеспечение достоверности данных 171

Создание масок ввода

Ког,)(>•» тм;кя I Ц ,..-р.. ,|.;-1... .1,-j


ШрНМ ; .:'.. /.. M . S . : . -,„ : , ., п.-,. , • Ш ,,.-• I !(ю!и",

«HtWmmi'iH-l....-'-••* I ,,<:., ч Ц „ i , . , В У'СЛИСОЛ",
:
•• И, и •

I | Длинный формат времени ; 0:00:00
fpf Краткий формат даты J09.27.69
|ткий формат времени i 00:00
'дний .формат времени. il?:pO.




Можно создать маску ввода вручную или воспользоваться ма-
стером, чтобы применить одну из стандартных масок для даты
и текстовых полей.
(Если вы не смогли найти маску ввода с названием Номер телефо-
на, введите ее сами следующим образом: щелкните на кнопке
Список (Edit List), откроется диалоговое окно Настройка масок ввода. В
поле Описание введите Номер телефона, далее в поле Маска ввода
введите !(999) 000-0000, в поле Образцы данных (206) 555-1212.
Закройте диалоговое окно.)
7. В списке Маска ввода (Input Mask) выделите Номер телефона (Phone
Number) и щелкните на кнопке Далее (Next). На второй странице ма-
стера отображается маска ввода и предоставляется возможность
ее изменить. Восклицательный знак означает, что маска должна
заполняться слева направо. Скобки и тире представляют собой
символы, которые Access вставит в нужные позиции. Символы
«9» соответствуют необязательным цифрам, а «О» - обязатель-
ным (то есть можно вводить номер телефона без кода региона).

Совет. Так как Access заполняет маску слева направо, нужно трижды
нажать на клавишу (-*], чтобы пропустить код региона и перейти к вво-
ду номера телефона.

8. Замените 999 на 000, чтобы сделать ввод кода региона обяза-
тельным, а затем замените символ заполнителя на «#». Диало-
говое окно теперь будет иметь следующий вид.
Microsoft Access 2002. Шаг за шагом
172

Создание масок ввода



Ипя1МС«1Ш'.ила;
M.4t.f... РВ...Д..: ''

ВЫбеРЙТС 3«J>" 'МП.'Ш1|,>-,)Ы Ч'! \ :|'1.1Ч>'1 «<•>»,•! г M.rj}, I

Знаки sunojii'ip • • I яинянхти пи даре гжода д.отчы* о now.
Заполнитель:




9. Щелкните на кнопке Далее (Next). На третьей странице мастера
укажите, нужно ли сохранять символы маски вместе с данны-
ми. Если сохранить символы, они будут отображаться в табли-
цах, формах и отчетах, но, поскольку они занимают место, раз-
мер базы данных увеличится.
10. Оставьте заданный по умолчанию вариант (без знаков мас-
ки) и щелкните на кнопке Готово (Finish). Окно мастера закроется,
а в свойстве Маска ввода (Input Mask) отобразится отредактирован-
ная маска, как показано на следующем рисунке.

iна полей Тест : таблица


д Текстовый
:
ТекстоеоеПоле Текстовый
ЧисловоеПоле ...! Числовой
..'[.Дата/время
АШ˜
; Денежный
Цена. ................. II
; Логический
ЛргическоеПрле
Глава 6. Обеспечение достоверности данных 173

11. Нажмите клавишу ( Enter |, чтобы завершить ввод маски.
Access преобразует маску к виду !\(000") "000\-0000;;#. Обра-
тите внимание, что вторая часть маски пустая, поскольку вы
задали сохранение данных без символов маски.

Ш 12. Сохраните изменения, а затем щелкните на кнопке Вид (View),
чтобы вернуться в режим таблицы.
13. Нажмите клавишу [Т], чтобы перейти в новую запись, и
введите хотя бы десять цифр и несколько букв, чтобы посмот-
реть, как работает маска.
Все введенные буквы игнорируются. Первые десять цифр бу-
дут восприняты как номер телефона. Если ввести более десяти
цифр, лишние цифры также будут проигнорированы. Если вве-
сти менее десяти цифр и нажать на клавишу | T a b | или [ Enter |,
появится предупреждение, что введенные данные не соответ-
ствуют маске.

Совет. Маска ввода может содержать не только служебные символы и
заполнители вводимых данных. Например, если в поле свойства Маска вво-
да (Input Mask) вставить перед номером телефона текст «Номер телефона:»,
в поле таблицы или формы будет отображаться маска «Номер телефона:
(###) ###-####». Если поместить курсор слева от слова «Номер» и на-
чать вводить цифры, будут заменяться заполнители #, а не текст. Уста-
новка свойства Размер поля (Field Size) не распространяется на символы, вхо-
дящие в маску, поэтому данные не будут обрезаться.

14. Вернитесь в режим конструктора, чтобы добавить новое
поле. Назовите его Фамилия и оставьте тип данных Текстовый
(Text).
15. Выделите новое поле, щелкните на свойстве Маска ввода (Input
Mask), введите >L<?????????????????? (18 вопросительных знаков)
и нажмите клавишу | Enter |. Символ > преобразует последую-
щий текст в прописные буквы, L требует ввода буквы, а символ
< преобразует последующий текст в строчные буквы. Каждый
из 18 вопросительных знаков соответствует необязательной
букве. Вместе с заглавной буквой это составляет 19 символов,
следовательно, установка свойства Размер поля (Reid Size) должна
превышать это значение.
16. Сохраните изменения, вернитесь в режим таблицы, введи-
те смит в поле Фамилия одной из записей и нажмите клавишу
Microsoft Access 2002. Шаг за шагом
174

| Tab [.Попробуйте ввести СМИТ, а затем Мак Дональд. Как ви-
дите, эта маска имеет свои недостатки, но она может быть по-
лезна во многих ситуациях.
17. Закройте таблицу, а затем закройте базу данных.

Контроль ввода данных с помощью
условия на значение
Ас2002-6-2 Условие на значение представляет собой выражение, которое
Ас2002е-1 -1 накладывает жесткие ограничения на значения вводимых дан-
ных. Так, например, если доставка заказов осуществляется в
определенный регион, можно воспользоваться условием на зна-
чение, чтобы запретить ввод телефонов или почтовых индек-
сов, относящихся к другим регионам.
Условие на значение можно ввести вручную или создать с помощью по-
строителя, выражений. Access использует это выражение для проверки
правильности введенного значения при попытке выйти из поля или (если
условие включает несколько полей) при попытке перейти в другую за-
пись таблицы. Если условие нарушено, выход из поля блокируется и по-
является сообщение об ошибке.
В этом упражнении вы создадите и протестируете условия на
Reid Test
значение для нескольких полей и одной таблицы. В качестве
рабочей будет использоваться папка SBS/Access/Accurate/ValRules.
Выполните следующие шаги.
1. Откройте базу данных Reid Test, расположенную в рабочей
папке.
2. Откройте таблицу Свойства полей Тест в режиме конструктора.
3. Чтобы задать условие на значение для номера телефона, ог-
раничивающее код региона значениями 206 и 425, выделите
поле Телефон и щелкните на свойстве Условие на значение (Validation
Rules). Справа от поля Условие на значение (Validation Rules) появится
кнопка построителя.... Можно щелкнуть на кнопке построите-
ля, чтобы создать выражение, или ввести его вручную.
4. В поле Условие на значение (Validation Rules) введите Like "206*" Or
Like "425*" и нажмите клавишу | Enter |.
5. В поле Сообщение об ошибке (Validation Text) введите Код региона
должен быть равен 206 или 425.
Глава 6. Обеспечение достоверности данных 175

Вы задали условие, ограничивающее значения трех первых
цифр номера телефона, и текст сообщения, которое появится в
случае нарушения этого условия.
6. Щелкните в поле свойства Подпись (Caption) и введите Номер
телефона. Окно таблицы будет иметь следующий вид.




7. Сохраните таблицу. Появится предупреждение, что измене-
ны условия на целостность данных, и будет предложено прове-
рить данные на соответствие новым условиям. В данном слу-
чае условие явно нарушено, так как таблица содержит пустые
поля номеров телефонов.
8. Щелкните на кнопке Нет (No), чтобы закрыть окно сообщения,
не выполняя проверку.

Совет. Проверку данных на соответствие условиям на значение можно
выполнить в любой момент, щелкнув правой кнопкой мыши на заголовке
таблицы и щелкнув на команде Проверка условий (Test Validation Rules) в контек-
стном меню.

9. Вернитесь в режим таблицы. Как видите, первое поля теперь
называется Номер телефона.
10. Поместите курсор в любое поле Номер телефона перед первым
символом «#», введите 3605550009 и нажмите клавишу | Enter |.
Microsoft Access 2002. Шаг за шагом
176


Совет. Можно поместить указатель в начало поля Номер телефона и, когда
он примет форму жирного креста, щелкнуть, чтобы выделить содержи-
мое поля. Когда вы начнете печатать, курсор окажется в начале кода ре-
гиона.

Введенное значение нарушает установку свойства Условие назна-
чение (Validation Rules). Поэтому появится предупреждение, содер-
жащее текст, заданный в свойстве Сообщение об ошибке (Validation
Text).
11. Щелкните на кнопке ОК, чтобы закрыть окно сообщения, и
введите номер телефона с допустимым кодом региона.
12. Вернитесь в режим конструктора и добавьте в таблицу еще
одно поле даты. Введите Дата2 в качестве имени поля, задайте
тип данных Дата/время (Date/Time) и перетащите новое поле под поле
Дата
13. Введите условие на значение, определяющее, что вторая
дата должна быть позднее первой. Для этого щелкните правой
кнопкой мыши в окне таблицы, а затем щелкните на команде
Свойства (Properties) в контекстном меню, чтобы открыть диалого-
вое окно Свойства таблицы (Table Properties), показанное ниже.

»? Свойства таблицы


;;.:+:,] _˜^^v
•I i Т.1ЙЛИЦЫ

<<

стр. 5
(всего 10)

СОДЕРЖАНИЕ

>>