Академический Документы
Профессиональный Документы
Культура Документы
ля
Дубнов П. Ю.
Access 2 0 0 0
Проектирование баз данных
Москва, 2000
ББК 32.973.26-018.2
Д79
Дубнов П. Ю.
Д79 Access 2000. Проектирование баз данных. - М.: ДМК, 2000. - 272 с : ил.
ISBN 5-89818-091-5
ББК 32.973.26-018.2
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то
ни было форме и какими бы то ни было средствами без письменного разрешения владельцев
авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность
технических ошибок все равно существует, издательство не может гарантировать абсолютную
точность и правильность приводимых сведений. В связи с этим издательство не несет ответ
ственности за возможные ошибки, связанные с использованием книги.
Глава I
Постановка проблемы 11
Режимы функционирования банка данных
в производственных условиях 11
Пользовательские запросы к банку данных 12
Проблемы, связанные с выбором СУБД 12
Вопросы, рассмотренные в настоящей книге 15
Резюме 15
Глава II
Предпроектная структуризация информации 16
Состав информации 17
Что понимать под структуризацией информации 17
Показатели 18
Необходимость структуризации 19
Технология структуризации 20
Пример структуризации данных 21
Проектирование логической структуры.бозы данных 23
Распределение полей по файлам 24
Файлы и связи между ними 24
Резюме 26
Глава III
Создание таблиц новой базы данных 27
Варианты создания таблиц 27
Формирование таблицы в режиме ввода 29
Ввод данных 29
4 Access 2000
Глава IV
Создание форм новой базы д а н н ы х 55
Использование автоформы 56
Создание формы с помощью мастера форм 58
Работа в режиме конструктора 64
Заголовок формы 66
Командные кнопки 69
Начальная форма при открытии базы данных или приложения 75
Построение запросов для отбора нужных данных 75
Ввод и корректировка данных 79
Использование гиперссылок 82
Access и географические карты 82
Поиск карты 83
Установка гиперссылок в базе данных 84
Установка гиперссылки из карты в базу данных 86
Резюме 90
Глава V
Создание отчетов новой базы д а н н ы х 91
Использование функции автоотчета 92
Включение подчиненного отчета 92
Группировка записей 95
Содержание 5
Глава V I
Создание страниц доступа к д а н н ы м 105
Свойства страниц доступа к данным 105
Глава V I I
Конвертирование баз д а н н ы х
из других программных сред 123
Процесс конвертирования баз данных 124
Глава V I I I
Общие вопросы программирования в Access .... 141
С р а в н и т е л ь н а я х а р а к т е р и с т и к а языков
п р о г р а м м и р о в а н и я в Access 141
Язык SQL 141
Макросы 142
Процедуры VBA 143
В ы б о р языка п р о г р а м м и р о в а н и я 144
Резюме 145
Глава IX
Программирование на я з ы к е SQL 146
Типы запросов 146
Запросы на выборку 148
Простые запросы 148
Представление запроса на языке SQL 151
Запросы с использованием групповых операций 153
Запросы с дополнительными условиями 156
Запросы с параметрами 165
Запросы с участием нескольких связанных таблиц 167
Пояснения к инструкции SQL 169
Создание объединенной выборки 173
Пример сложного запроса 1 74
Запрос на создание таблицы 174
Запрос на добавление записей в таблицу 1 76
Запрос на удаление записей 179
Резюме 202
Глава X
Программирование
с использованием макросов 205
Функции макросов 205
Использование макросов для обработки событий 206
Понятие события 206
Последовательности событий 207
Автоматический перевод фокуса при помощи макроса 213
Использование макроса при выполнении сложного запроса 215
Резюме 217
Глава X I
Программирование
с помощью процедур V B A 219
Основные положения VBA 219
Ьазовые термины 220
Окно модуля 221
Основные элементы 223
Переменные 223
Константы 223
Аргументы 224
Типы процедур и их элементы 226
Процедуры Sub 226
Функции 227
Элементы процедур 227
Просмотр объектов 228
Управление выполнением программы 230
Программирование приложений с помощью VBA 23-1
Предупреждение дублирования записей при их вводе из формы ... 232
Обработка ошибок выполнения 234
Функция создаваемой программы 237
Логическая конструкция If...Then...Else 238
8 Access 2000
Глава XII
Д р у г и е возможности Access 2 0 0 0 251
Установка Access 2000 251
Условное форматирование 255
Пример условного форматирования 255
Буфер обмена 258
Новое содержание 259
Новые возможности для работы 259
Автоисправление имен 260
Функции автоисправления имен 260
Ограничения на использование функции 260
Использование функции 261
Разделение базы данных 262
Сжатие базы данных при ее закрытии 263
Конвертирование базы данных 264
Конвертирование из Access 97 (95) в Access 2000 264
Конвертирование из Access 2000 в Access 97 (95) 265
Резюме 266
1
В современной научной литературе понятия «база данных» и «банк данных» часто смешиваются. Тра
диционно эти термины определялись следующим образом. База данных понималась как набор свя
занных таблиц, запросов, форм, отчетов, макросов и модулей. Так, в среде Access база данных пред
ставляет собой единый файл с расширением mdb. Банк данных рассматривался как совокупность
различных баз данных и программ по их обслуживанию. Однако, если база данных включает такие
объекты, как форма, отчет, запрос, модуль и др., то в нее входят также программы создания и обслу
живания объектов. Тогда под банком данных следует, видимо, понимать множество баз данных в еди
ном формате (скажем, в том же mdb), и набор программ, позволяющих работать с этими данными.
Глава I
Постановка проблемы
• Режимы функционирования банка данных
в производственных условиях
• Пользовательские запросы к банку данных
Сегодня никого нельзя удивить понятием «компьютерный автоматизированный
банк данных». Это так же обычно, как передача сообщений по факсу или заказ
билетов по телефону. Существует бесчисленное множество функционирующих
банков данных, однако далеко не все они удобны в эксплуатации. Пользователю,
работающему с банком данных, необходимо «умение» последнего быстро, гиб
ко и в требуемой форме организовать и выдать информацию в ответ на любой
запрос.
В этой книге подробно рассказывается обо всех проблемах, с которыми может
встретиться разработчик баз и банков данных: начиная с логической структури
зации и заканчивая написанием сложных макрокоманд. Особое внимание уделе
но вопросам интеграции разнородных баз данных в единый эффективно функци
онирующий информационный банк. Все решения показаны на примере реальной
базы данных по чрезвычайным ситуациям, о содержимом и структуре которой
рассказано в начале главы 2.
1
В современной научной литературе понятия «база данных» и «банк данных» часто смешинаются. Тра
диционно эти термины определялись следующим образом. База данных понималась как набор свя
занных таблиц, запросов, форм, отчетов, макросов и модулей. Так, в среде Access база данных пред
ставляет собой единый файл с расширением mdb. Банк данных рассматривался как совокупность
различных баз данных и программ но их обслуживанию. Однако, если база данных включает такие
объекты, как форма, отчет, запрос, модуль и др., то в нее входят также программы создания и обслу
живания объектов. Тогда под банком данных следует, видимо, понимать множество баз данных в еди
ном формате (скажем, в том же mdb), и набор программ, позволяющих работать с этими данными.
Глава I
Постановка проблемы
• Режимы функционирования банка данных
в производственных условиях
• Пользовательские запросы к банку данных
Сегодня никого нельзя удивить понятием «компьютерный автоматизированный
банк данных». Это так же обычно, как передача сообщений по факсу или заказ
билетов по телефону. Существует бесчисленное множество функционирующих
банков данных, однако далеко не все они удобны в эксплуатации. Пользователю,
работающему с банком данных, необходимо «умение» последнего быстро, гиб
ко и в требуемой форме организовать и выдать информацию в ответ на любой
запрос.
В этой книге подробно рассказывается обо всех проблемах, с которыми может
встретиться разработчик баз и банков данных: начиная с логической структури
зации и заканчивая написанием сложных макрокоманд. Особое внимание уделе
но вопросам интеграции разнородных баз данных в единый эффективно функци
онирующий информационный банк. Все решения показаны на примере реальной
базы данных по чрезвычайным ситуациям, о содержимом и структуре которой
рассказано в начале главы 2.
памяти и около 120 Мбайт памяти на жестком диске. Система Access обла
дает всеми современными сетевыми возможностями;
• язык представления данных, обработка символьной информации.
Имеются;
Q поддерживаемые структуры и форматы данных.
В Access поддерживаются реляционные структуры данных;
• простота освоения системы, наличие русской версии документации.
Первичное освоение займет всего несколько дней. Имеется русифицирован
ная версия Access в составе пакета Microsoft Office; а также русифицирован
ная документация для пользователей различных уровней подготовки;
• поддерживаемый системой математический аппарат.
В Access он достаточно развит и включает операторы, функции, логические
выражения и т.д.;
• поддерживаемые системой возможности обработки и представления графи
ческой информации.
В Access поддерживаются операции с диаграммами. Поскольку эта СУБД
встроена в пакет Microsoft Office, то пользователь может работать и с други
ми графическими объектами, входящими в состав данного пакета;
• возможности взаимодействия с другими пакетами прикладных программ
(текстовыми редакторами, электронными таблицами, геоинформационны
ми системами (ГИС) и другими).
В рамках пакета Microsoft Office 97 можно работать с Word и Excel;
• возможности корректировки файлов, содержащих данные.
В Access это очень просто сделать;
• наличие русифицированной и достаточно подробной справочной системы,
а также файлов Help (Помощь).
Такая справочная система есть, и она доступна из любого режима в любой
момент;
Q разнообразие и гибкость формируемых запросов на предоставление данных.
Система Access отвечает этому условию.
Наверное, приведенные выше оценки не дают оснований утверждать, что Access -
идеальная СУБД. Однако безупречных СУБД вообще не существует. Например,
давайте сравним Access с такой системой, как Oracle. Последняя - СУБД гораздо
более высокого класса, значительно превосходящая Access по своим возможнос
тям. Но такие преимущества имеют и оборотную сторону: Oracle громоздка, слож
на в освоении и требует для своего функционирования специальных, особо мощных
технических средств. Область применения Oracle - создание гигантских центра
лизованных информационных систем. По-видимому, время их массового исполь
зования в России еще не наступило.
В то же время Access является весьма гибкой и универсальной системой, предъяв
ляющей достаточно умеренные требования к техническому обеспечению. Поэто
му на сегодняшнем этапе эта СУБД удобна для работы практически на всех иерар
хических уровнях управления производством - от отрасли в целом до отдельного
предприятия.
Пользовательские запросы к банку данных 15
Резюме
1. Параллельно с разработкой баз данных в новых, современных СУБД се
годня используется множество банков данных, построенных на основе
программного аппарата морально и технически устаревших СУБД. На
копленная в них информация представляет большую ценность, но пере
водить эти БД в новую программную среду никто никогда не будет. По
этому очень важной становится проблема конвертации данных с тем,
чтобы они обрабатывались совместно с новыми СУБД в рамках единого
банка данных.
2. В качестве базовой СУБД для интеграции разнородных СУБД в такой банк
данных на сегодняшнем этапе предлагается Access 2000.
3. Целью настоящей книги является обсуждение методических и практических
вопросов, связанных с разработкой интегрированного банка данных.
Глава II
Предпроектная
структуризация
информации
• Состав информации
• Что понимать под структуризацией информации
• Проектирование логической структуры базы данных
Состав информации
Наиболее динамичной частью информации, на примере которой рассказывается
о возможности Access 2000, являются данные о различных чрезвычайных ситуа
циях. Прежде всего это:
• непосредственные сведения о ЧС (вид ЧС, дата и место происшествия, объект,
на котором произошла катастрофа);
• характеристика ЧС;
• количество пострадавших, в том числе погибших;
а предварительные оценки материального ущерба в стоимостном и натураль
ном выражении;
• влияние ЧС на жизнедеятельность местного населения, на окружающую
среду и функционирование отраслей народного хозяйства;
• возможность или невозможность ликвидации последствий ЧС на месте,
ориентировочные сроки такой ликвидации;
Q типы и количество единиц оборудования, число специалистов, необходимых
для ликвидации последствий ЧС;
• характер и примерные объемы выполняемых работ.
Менее динамичная часть информации - данные о контрольно-измерительных
приборах, которые используются при ликвидации последствий ЧС.
Постоянная часть информации - словари понятий, встречающихся в книге.
Описываемый банк данных состоит из следующих разделов:
• база данных, разрабатываемая в среде СУБД Access 2000;
• база данных, разработанная ранее в среде Clarion 3.0;
• база данных, разработанная ранее в среде FoxPro 2.5.
Две последние БД конвертируются в Access 2000, и дальнейшая работа с ними
рассматривается именно в этой единой программной среде.
Отметим, что из-за разнообразия и неформализованное™ информации, кото
рая относится к предметной области, такие сведения значительно труднее обра
батывать, чем данные, связанные с большинством производственных процессов.
Примеры, подтверждающие это положение, будут приведены ниже.
Показатели
Рассмотрим утверждение, которое, согласно нашей классификации, принадле
жит к классу фактографической информации. Например, «объем капитальных
вложений равен 2,5 млн. руб.» или «стоимость «Мерседеса» больше, чем сто
имость «Жигулей». Для этого класса данных под показателем понимается еди
ница информации, которая включает ряд реквизитов -признаков и единственный
реквизит-основание. Каждый реквизит-признак является мельчайшей недели
мой информационной единицей и отражает какой-либо атрибут (свойство)
объекта. Например, в энергетике такими реквизитами-признаками являются
мощности, электростанции, линии электропередач, организации, расход топли
ва и т.д. Любой объект характеризуется перечнем свойств, которые выражаются
через реквизиты.
Реквизит состоит из имени и значения. Именем реквизита будет название ка
кой-либо качественной (наименование, местонахождение) или количественной
характеристики объекта, явления, процесса (объем, размер и т.д.).
Значение реквизита представляет собой элемент данных, например: мощность
(реквизит) - 500 МВт (его значение), электростанция (реквизит) - Красноярская
ГЭС (значение), линия электропередач (реквизит) - Экибастуз-Центр (значе
ние), расход топлива (реквизит) - 350 тонн (значение).
Что понимать под структуризацией информации 19
Необходимость структуризации
В качестве примера в книге будет рассматриваться информация о фактически
происшедших ЧС. Эти сведения могут поступать в виде сообщений по различ
ным информационным каналам:
• по телефону из соответствующих региональных структур (телефонограм
мы). В этом случае информация «вручную» вводится в БД;
• по телефонному каналу связи, когда информация автоматически вводит
ся в БД;
• по почте. Данные вводятся в БД «вручную».
Информация поступает в самой различной форме, например, в таком произволь
ном виде (реальное сообщение): «На ж/д станции Ангасолка Восточно-Сибирской
20 Предпроектная структуризация информации
Технология структуризации
Проведенные исследования показали, что обычно в обязательный минимум рек
визитов-признаков входят следующие:
• П - процесс - основное наименование деятельности органа управления (опе
рация, состояние). Это суть показателя (расход, остатки, поставка, капиталь
ные вложения, мощность, ущерб и т.д.);
• Ф - формальная характеристика, то есть выраженный в наименовании спо
соб расчета показателя (доля, темп роста, отклонение, сумма, прирост, сред
нее и средневзвешенное значения и т.п.), который может быть как относи
тельным, так и абсолютным и тесно связан с процессом (иногда задан в нем
неявно);
Q О - объект, предмет операции; то, над чем она производится (материалы,
изделия, полуфабрикаты, строительная продукция и т.д.);
• Е - единица измерения;
• С - субъект (тот, кто производит действия над объектом). Если, например,
объект (О) - продукция, а основное наименование деятельности (П) - про
изводство, то в роли субъекта (С) может выступать, например, предприя
тие, отрасль и т.д.;
Что понимать под структуризацией информации 21
• В - время (дата, период);
• Ф - функция управления (проектное, прогнозное или фактическое значе
ние, норматив и т.п.).
Естественно, все многообразие реальных признаков не укладывается в приве
денный краткий перечень. Поэтому каждый из названных реквизитов допуска
ет практически неограниченное количество любых категорий-уточнений, кото
рые должны удовлетворять единственному условию - они должны представлять
собой списки, состоящие из однородных терминов. Обычно уточняются следу
ющие вопросы:
О где? - в этом случае список уточнений характеризует место действия;
• как? - список уточнений характеризует обстоятельства действия;
Q какой? - список уточнений характеризует свойство.
Сформированные таким образом списки при проектировании банка данных
рассматриваются как словари. По сути, цель структуризации - создание слова
рей. При последующей разработке логической структуры БД они служат как бы
осями координат, в которых организуется, «раскладывается» реальная инфор
мация.
Эти соображения, как уже говорилось, определяют ту границу, до которой име
ет смысл проводить структуризацию. Если выясняется, что какие-то словосочета
ния слишком индивидуальны, уникальны и не поддаются классификации, их не
следует включать в словари. В приведенном выше сообщении это формулировки
типа «на северной части балластной призмы в кювете с четной стороны, примыка
ющей к горе, и в кармане водоотводной канавы»; «на другой стороне ж/д полотна
(на откосе)». Для таких данных надо использовать специальные поля примеча
ний, прикрепленных к соответствующей конкретной записи.
При простой структуре исходной информации первый этап структуризации -
выделение основных реквизитов-признаков - можно пропустить и сразу формиро
вать словари. Однако учтите, что о простоте или сложности структуры исходной
информации нельзя говорить вообще - это понятие имеет смысл только с одной
точки зрения: легко ли будет пользователю получать ответы на запросы к БД.
Поэтому прежде чем приступать к анализу первичной информации, подумайте:
кто будет работать с проектируемой базой данных, какие сведения понадобятся
пользователю и какими будут его запросы. В этом требовании нет ничего нового
- это одно из классических положений проектирования баз данных. Но уже на
начальных стадиях, при введении некоторой формализации в структуры данных,
вы убедитесь, насколько важно следовать этому правилу.
Таблица 2 1
Номер 1 2 3 4 5 6 7 8 9 10 11 12
Название прибора 1 X оо оо оо со со оо оо со
Название фирмы 2 1 X оо 1 1 1 со оо оо
Страна 3 оо 1 X 1 1 1 со со оо оо со оо
Адрес фирмы 4 1 1 оо X 1 1 оо оо оо
Адрес филиала 5 1 1 оо 1 X 1 со оо оо
Менеджер 6 сю оо оо оо со X 1 1 1
Номер модели 7 со оо оо со со оо X 1 ] 1
Год выпуска 8 со оо оо со оо оо X со 1 1
Номер по каталогу 9 оо оо оо со со оо X оо 1 1
Назначение 10 оо оо со оо оо со оо оо X оо оо
Категория 11 со оо со оо оо оо оо X оо
Характеристика 12 оо оо со оо оо оо оо оо X
В Microsoft Access
ffij
D G£ X © J- (3-
• Г Relationships |Р|х|Л
Примемзни
Примечание-1
Год по катоп
*А
|
>п_Примеч.:
_Generahon
GUID
5
»!арактери1 TI
Цена1,$
т$>$тя%
>п_Примеч= ^
Generation —-•
GUID zl
Кодф>фны _^
Название фи| ьеп_Припечс
Код страны •ё
5_GeriPrahon
Адрес — 5_GUID zi
Адрес 2 •*•[
Код фирмы
Фамилия
Имя
Адрес
i
Ы
Рис 2 1
26 Предпроектная структуризация информации
Резюме
1. Безусловный прогресс, достигнутый в развитии программных средсл и
СУБД и расширении их функциональных возможностей, не устранил проб
лему обоснованности выбора структур баз данных - от продуманности этих
структур во многом зависит эффективность работы с БД.
2. Основным элементом фактографической информации является показатель
Он, в свою очередь, состоит из множества реквизитов-признаков и един
ственного реквизита-основания.
3. Для того чтобы формировать по единым правилам разнообразные пользова
тельские запросы к БД и получать на них ответы, перед проектированием
конкретных баз данных необходимо провести структуризацию информации
4. В главе предлагается и иллюстрируется на конкретном примере технология
такой структуризации и - па се основе - последующего проектирования ло
гической структуры БД.
Глава
Создание таблиц
новой базы д а н н ы х
Как уже было сказано в главе 2, разработка новой базы данных Контрольно-из
мерительные приборы производится в программной среде Access 2000.
Формирование БД в Access состоит из ряда последовательных этапов, опи
сываемых ниже. Первый этап этого процесса - создание таблиц. Таблицы в Ac
cess являются теми первичными, исходными файлами, на основе которых
в дальнейшем строится все здание базы данных. Access 2000, как и предыдущие
версии, предоставляет пользователю несколько разных вариантов построения
таблиц.
Порядок создания всех таблиц одинаков и не зависит от их названия и кон
кретного содержания. Мы рассмотрим этот процесс на примере таблицы Страны.
Н Microsofl Access мз
File Edii" View Insert Tools Window hHp
d b 5 : Database
Рис 3 /
Обычно дальше следует щелкнуть по кнопке jtjew | на панели окна БД. В дна
логовом окне New Table (Новая таблица), показанном на рис. 3.2, представлены
все возможные способы создания таблицы:
• Datasheet View (Режим таблицы);
• Design View (Режим конструктора);
О Table Wizard (Мастер таблиц);
Q Import Table (Импорт таблиц);
Q Link Table (Связь с таблицами)
New Table
1Ш
Design View
Table Wizard
Import Table
Link Table
Create a new table in
Datasheet view
OK Cancel
Рис 3 2
формирование таблицы в режиме ввода 29
Последние два варианта создания таблиц - импорт таблиц и связь с таблица-
.„ _ рассматриваются в том разделе главы 7, который посвящен объединению
разнородных баз данных.
Ы Miciotoil Access Щ]
•* •* £j
• Table! : Table
FlQldl Flold2 Fleld3 Flold4 FloldS
• HFi* 3
nr
Рис 3 3
Ввод данных
Чтобы осуществить ввод данных, сначала надо заменить имеющиеся заголовки
столбцов на новые названия, а затем уже ввести сведения в поля таблицы. Рас
смотрим эту операцию на примере создания таблицы Страны.
Заменим имена полей Field 1 и Field2 на Код и Страна. Для этого дважды щелк
ните мышью в ячейке с именем соответствующего поля, а затем введите нужные
значения. Записав первые данные (см. рис. 3.4), попробуйте выйти из созданной
таблицы (кнопка _J*J B правом верхнем углу). Сначала Access 2000 спросит вас,
На
До ли сохранять произведенные в таблице изменения (если вы не хотите этого
30 Создание таблиц новой базы данных
J ы -1 в J а ?
( ; П File Edit View Insert Format
№ Records Tools Window Help -|i9|
! x)
Код страны |Страна| |,
1 Россия
2 США
3 Германия
*J
Record: l< | < | | >!•'!•<
Рис 3 4
делать, она вообще сотрется из памяти). Затем вам будет предложено назвать таб
лицу (или согласиться с предлагаемым именем, которое автоматически присвоит
ей система). Не отличаясь большой фантазией, Access 2000 все таблицы называет
именем Table с добавлением текущего номера.
Первичный код
Когда все это будет сделано, вы получите предупреждение: There is no primary key
defined (Первичный код не определен), как показано на рис. 3.5.
Microsoft Access
Although a primary key isn't required, it's highly recommended A table must have a
primary key for you to define a relationship between this table and other tables in the
database.
Do you want to create a primary l.ey now'
Yes No Cancel
Рис. 3 5
ТаЫеЗ: Table
ID Код Страна М
1 1 Россия
ссия В
(AutoNurnber)
2
3
2 США
3 Германия
рмания
I
•
Record: к I < 2 МИ • * ] of 3
Рис 3.6
Если вы выберете пункт Cancel (Отмена), таблица вновь примет тот вид, кото
рый показан на рис. 3.4. Однако это - промежуточное состояние, из которого все
равно надо как-то выходить. Внимательно посмотрите на первичные коды, создан
ные системой в поле ID. Здесь они ничем не отличаются от кодов, созданных
пользователем в поле Код. Но в общем случае коды, введенные в это поле, совсем
не обязаны быть такими же упорядоченными, как коды поля ID - таблица, пока
занная на рис. 3.6, как уже говорилось, представляет собой словарь, и коды могут
периодически изменяться. Поэтому для надежного контроля за файлами в Access
предусмотрен механизм системных первичных кодов. Иногда (как, например, сей
час) они и вводятся только по желанию пользователя. В других случаях при от
сутствии этих кодов ряд функций Access 2000 выполняться не будет.
Поэтому, если у пользователя нет каких-то серьезных причин отказываться от
введения первичных кодов, желательно их все-таки создать.
Отметим, что в словарном файле совсем не обязательно ограничиваться тем
минимумом полей, которые показаны в нашем примере. Это было сделано в чисто
методических целях. На практике количество полей в файле вообще не ограничи
вается, следует лишь соблюдать единственное требование: поля должны находить
ся в отношениях «один-к-одному».
a table in Design View (Создать таблицу в режиме конструктора) в окне базы дан
ных (см рис. 3 1) На экране появится окно конструктора таблиц (см. рис.3.7). Оно
содержит три раздела'
G Field name (Имя поля) - обязательный раздел;
• Data type (Тип данных) - условно обязательный раздел;
• Description (Описание) -необязательный раздел
В Microsoft Access ш
• -J_H • ч - ' © * 9 w-S = * §» Й?
File Edit Vie<4 Insert Tools Wmdo"' Help
Table2: Table _ П X
Field Name Data T> pe Description
Field Properties
zl
General Lookup
Рис 3 7
В разделе Field Name (Имя поля) следует указать имена полей - те самые, ко
торые в предыдущем разделе вводились в заголовки столбцов таблицы. Ситуация
с первичным кодом совершенно аналогична.
Чтобы начать работу с разделом Data type (Тип данных), надо щелкнуть мы
шью в его пределах. Как только это произойдет, в его правой части возникнет
стрелка прокрутки. Щелкните по ней, и появится список типов данных, которЫ1'
поддерживаются в Access 2000 (см. рис. 3.8). Характеристика типов данных при
водится в следующем разделе этой главы.
Сведения о типах данных, полей и их свойствах являются в Access 2000 базовы
ми и непосредственно используются при создании таблицы в режиме конструктора
Типы данных и их свойства
Типы данных, поддерживаемые системой Access 2000 (см. их перечень на рис. 3 8)
приведены ниже вместе со своими основными характеристиками:
Создание таблицы в режиме конструктора 33
Ш Microsoft A c c e s s
Т а Ы е З : Table
ШЕ
Field Name Data Type I Description I -.
Text
Me-mo
Number
zi
Field
ui renc't
General Lookip AutoNumber
\ es/No
OLE Object
H perlmk
Loolup Wizard
Рис 3 8
икация ~ копирование базы данных сразу на несколько компьютеров Если установлен режим
ликации, то после обновления информации в двух или нескольких копиях можно синхронно вне-
эти
изменения во все остальные базы данных
2
~ 119
34 Создание таблиц новой базы данных
Свойства полей
п \ccess 2000 предусмотрены два свойства полей: Format (Формат) и Input Mask
Мпска ввода). Обе опции позволяют задавать формат, в котором данные вводят
ся в таблицу.
Свойство Format (Формат) рекомендуется применять при последовательном
• оде данных в таблицу. Например, если для поля типа Date/Time вы установили
наченне свойства Format равным Medium date (Средний формат времени), то все
значения дат при их последовательном вводе будут иметь следующий вид: 12-Jan-
96 (12-Янв-96). Если пользователь будет вводить в базу данных значения дат в лю-
(j0M другом формате (скажем, в виде 01/12/96), при запоминании записи Access
7000 все равно преобразует ее в формат Medium date.
Свойство Format проявляется лишь при отображении значения, но не при его
запоминании. Пока введенные данные не появились на экране, невозможно про
верить, в каком формате они были введены. Предположим, вы непременно хотите
отобразить данные именно в том формате, в котором они вводились. Тогда вам не
следует применять свойство Format. В заключение отметим, что оно использует
ся в полях числового и денежного типа, Date/Time, AutoNumber и Yes/No (Да/
Нет). Свойство Format не определено для полей текстового типа, полей Memo
и шперссылок, хотя в принципе такая настройка возможна.
Свойство Input Mask (Маска ввода) целесообразно при отображении литераль
ных (символьных) констант, а также при вводе данных в пустые графы (бланки,
таблицы и т.д.) - например, если все номера телефонов в списке имеют один фор
мат. Использование маски ввода обеспечит сохранение информации в определен
ном формате. Таким образом, вы всегда сможете установить, в каком виде будут
вводиться данные в каждый документ. Предположим, надо, чтобы все вводимые
данные о кодах и телефонах городов области содержали одинаковое количество
знаков. Перед вводом предварительно задайте свойство Input Mask, и в каж
дый документ (таблицу) будет помещено необходимое число символов.
Если вы зададите одновременно оба свойства, произойдет следующее: Access бу
дет применять Input Mask при добавлении или редактировании данных, a Format -
при отображении сохраненной записи.
Н Microsoft Access шш
\П - | @ * 4a 6* йг
File Edit View Insert Tools Window Help
Table2: Table
I Data Type [
ME
Field Name Oescnphon
ID AutuNumber
Код страны Text
Страна Text
zl
Geneial
Field Size
Lookup |
50
Щ
Form at .^^ш
Input Mask Ш
Caption ^ H
Default Value ^ H
Validation Rule ЩЩ
Validation Text
Required V es
Allow Zero Length Ho
Indexed ^1
Unicode Compression
Рис 3 9
маска ввода не будет снова изменена, коды стран будут задаваться в том виде, ко
торый показан на рис. 3.11. Это происходит в соответствии с правилами настрой
ки форматов, приведенными выше (раздел «Свойства полей»). (Мы не обсужда
ем сейчас вопрос о смысле такой установки, а просто рассматриваем возможности
маски ввода.)
Правда, при переходе из режима конструктора в режим просмотра таблицы (см.
соответственно рис. 3.10 и 3.11) Access 2000 предупреждает о возможных опасно
стях. Сообщение, показанное на рис. 3.12, гласит: Data integrity rules have been
changed; existing data may not be valid for the new rules. This process may take a long
time. Do you want the existing data to be tested with the new rules? (Условия целос
тности данных изменены, существующие данные могут противоречить новым ус
ловиям. Процесс может быть длительным. Хотите ли вы проверить существую
щие данные в новых условиях?)
Вряд ли у вас есть основания отказываться от подобной проверки, поэтому са
мым правильным решением будет ответ Yes.
Если вы захотите воспользоваться помощью мастера маски ввода и щелкнете по
кнопке ^ J , то система предложит вам запомнить форму: Must save table first. Save
now? (Сначала надо сохранить форму. Сохранить ее сейчас?). После этого появш -
ся окно мастера (см. рис. 3.13).
Открывшееся окно предлагает вам выбрать Input Mask (Маску ввода) в соотвс i
ствии с заданным свойством Data Look (Формат данных). Чтобы проверить рабо i > •
Создание таблицы в режиме конструктора 37
jj
Field Propei ties
General j Looljjp
Field Size 50
Foi ri iat
Input Mask 01 >L
Caption
Detault Value 1 "™J
Validation Rule
Validation Text
Required Yes
Allow Zero Length No
Indexed ves (No Duplicates)
Unicode Compression Ves
»«*;»*» • г , - з . -
Рис. 3.10
1 В Miciosoft Access H B В I
• Tablel : Table ШЩ
ID | Код страны | Страна
1 1 Россия
2 2 США
3 3 Германия
12 7 г J Индия
13 5кЕ Пакистан
• (AutoNumber) _ | _
Record и | < || 6 • | м | > Ч of 6
i j 1 •!
Рис. 31 1
^ Ыски ввода, введите данные в поле Try It (Проверка). Значения свойства Input
as
k подробно рассматривались выше. Здесь мы еще раз кратко перечислим их:
J
General Date (Общий формат даты);
Q
Long Date (Длинный формат даты);
38 Создание таблиц новой базы данных
Microsoft A c c e s s
Mo Cancel
Рис 3 12
Input M a s k W i z a r d
To change the Input Mask list, click the Edit List button.
Рис 3.13
- __
Edit List | Cancel | Next > Finish
Рис 3 14
1059
2384
Рис. 3 15
40 Создание таблиц новой базы данных
спросит How do you want to store the data? (Как вы хотите сохранить данные?}
Выбор у вас следующий либо сохранять данные вместе с возможными вспомога
тельными символами (они указываются во второй части маски, но являются нео
бязательными), либо без них
Когда вы дадите тот или иной ответ, можно щелкнуть по кнопке Finish (Гото
во), и маска сформирована Если на этой стадии работы вы выберете опцию Next
Н Miciosofl A c c e s s
Ш\
! FIIP Edit Vjew In'ert Fyirrat Pei.rrd-. T o d ' V_rdu
Hdp
—
| • Tablel : Table
ID | Код страны |
•СШЕ Страна
1 1 Россия
2 2 США "
33 Германия
19 3456 Франция
20 3678 Италия
• (AutoNumber)
ч
Рис 3 16
И Microsoft A c c e s s InTxl
ч v §«=§» »
Fil<- Ed f" 'ue* Irv^rt Tools Windo/- Help
H Field Properties
ZJ
r
Field DIZP 0
Forn at
Input Г Ь 1
Caption
Default Value
Validation PUIP
Validation Text
Requii ed Yes
Alio Zpro Length II]
Indexed •i es (Mo Duplicates)
Unicode Compression Ye;
Рис 3 17
Создание и использование полей подстановки 41
Ш Microsoft Access шш
Н* Edt View Insert F k mJr Ppn_r:k Tr._l<; _r&v-.
Hrlp
Table! : Table Щ]
ID | Код страны | Страна
• (l 1 РОССИЯ
22 США
33 ГЕРМАНИЯ
19 3456 ФРАНЦИЯ
20 ЗБ7с ИТАЛИЯ
* (AutoNutnLeil
Record и И II 1 • I •' ! • * ! of 5
Рис 3 18
т^ "начала появится еще одно окно В нем мастер масок с удовлетворением сооб
щит вам, что теперь у него есть все необходимое для создания маски
В нашем примере сформированная мастером маска будет работать с момента ее
установки и до следующей корректировки Все это время Access 2000 будет до-
п\екать ввод только тех записей, у которых код страны имеет 4 разряда На рис
3 16 показаны новые записи, введенные согласно заданным условиям
Сравнивая два способа формирования маски ввода (вручную и с помощью
мастера масок), мы пришли к заключению, что первый путь значительно проще,
и поэтому именно он рекомендован пользователю
Свойство Format
В отличие от установки маски ввода, свойство Format (Формат) задается только
вручную, мастер отсутствует (возможно, это и к лучшему) Введем значение свой
ства Format в текстовое поле Страна (см рис 3 17) Для этого в позицию Format
поместим знак >, который обозначает перевод текстовых символов в верхний ре
гистр
Если теперь мы включим режим просмотра таблицы, которая была показана на
рис 3 16, то увидим что все строки в поле Страна заполнены прописными буква
ми! (см рис 3 18) Кстати, это еще одно отличие свойства Format от Input Mask
его установки влияют на все содержимое поля, независимо от времени его (содер
жимого) ввода
Нелом ряде случаев поле может включать лишь определенные значения, которые
огда содержатся в заранее заданном списке, а иногда - в самом поле, вместе
Роизвольно вводимыми данными Так или иначе, часто возникают ситуации,
42 Создоние таблиц новой базы данных
Ш Microsoft Accets
ШШ
.п - о Я %-}
Table2: Table
[Цпш
ID
Код страны
Страна
Field Name Data T/pe
AutoIJumber
Text
Text
| Description
3
Фирмы Text
Text
Memo
Number l\
Ш
hel<
Date/Time
Currency
General | Lookup |
AutoNumber
Field Size 50 Yes/No
Format OLE Object
Input Mask Hyperlink
Caption
Default Value
Validation Rule
Validation Text
Required No
Allow Zero Length No
Indexed Mo
Unicode Compiession Yes
Рис 3 19
Созда ние и использование полей подстановки 43
В результате на экране возникнет первое окно мастера подстановок (см. рис. 3.20).
тер создает столбец подстановок, то есть список значении, из которых надо
1брать подходящее. В этом окне пользователь должен указать, что нужно выве-
а „ на .экран:
• I want the lookup column to look up the values in a table or query (Список
значений из таблицы или запроса);
• I will type in the values that I want (Список, который пользователь сам бу
дет заполнять по своему усмотрению).
LookuD Wizard
This wizard creates a lookup column, which displays a list of values
you can choose from How do you want your lookup column to get
~Л its values?
Cancel Next :
Рис 3 20
Lookup Wizard
Which table or query should provide the values for > our lookup
column?
Рис. 3.21
Lookup Wizard
Which fields contain the values you want included in your lookup
column? The fields you select become columns in your lool up
column,
"3
Available Fields Selected Fields
| К о д фирмы
Код страны
Рис. 3.22
Lookup Wizard
Ном wide vrauld you lil.fi the columns in ) our li юкир column'
To adjust the width of a column, drag its right edge to the width уэи i"anf, 01 double-click the
tight edge of the column heading to get the best fit.
Название фирмы J
Alltech
НефтьТаз-Наука
НПП "ЭКОНИКС"
5 1 r i US Systems
J
_ КОХЕЛП ИНСТРУМЕНТС
Sarlin Automation -
AMEL In_.tr un мпГ"
d
-~3S—
Cancel < Back Next ;- Finish
Рис 3 23
II • Table2 : Table • H H H H . I n l x l d
ID | Код страны Страна | Фирмы
11 РОССИЯ
22 США -
'1
33 ГЕРМАНИЯ Фирма не указана .1
4 3456 ФРАНЦИЯ YSI incorporated —
5 3678 ИТАЛИЯ Wilks Enterprise, Inc
IK- (AutoNumber) FCI Environmental •
Randox Laboratories, Ltd
ОАО "Цвет"
Cole-Parmer International
Milton Roy Company
^_^ d
Рис 3 24
в режиме конструктора (см. рис. 3.18). Затем в меню Insert (Вставка) окна базы дан
ных следует отметить пункт Lookup Column (Столбец подстановок). В результате на
экране появится уже знакомое нам первое диалоговое окно мастера подстановок (сч
рис. 3.20). После этого дальнейшие операции выполняются так же, как и в преды t> -
щем разделе. Все этапы данного процесса продемонстрированы на рис. 3.20-3.24
Show Table из
Tables Queries Both
Add
Close
Нз начете
Приборы, представленные на рынке2
Страны
Типы приборов
Фирмы
Рис 3 25
Фирмы
Кодф>ф№1 .1
Названиефпр
Страны
Код страны
Адрес s_Generation
Адрес 2 jj GUID
Line age
Код _iJ
kl
РИС 3.26
Для начала свяжите поле Код в таблице Страны с полем Код страны в таблица
Фирмы. Для этого надо щелкнуть левой кнопкой мыши по одному из связыва
емых полей) и, не отпуская ее, перетащить мышь на другое поле. На экране по
является (см. рис. 3.27) диалоговое окно Edit Relationships (Редактирование
связей).
В левой части этого окна указано связываемое поле родительской таблицы.
а в правой - связываемое поле дочерней таблицы. Если надо изменить одно из
этих полей, то можно щелкнуть в нем по стрелке прокрутки, а затем выбрать же
лаемое значение. Установив флажок Enforce Referential Integrity (Обеспечение
целостности данных), вы зададите условие: ни в одной из связанных таблиц нс
49
Орган изация связей между таблицами
Edit Relationships 1Ш
Tablc/Ouerv. Related Table/Query.
create
1 J" J
Код j j Код страны ji|
]om Type
J Create New
(7 Enforce Referential IntegnC/
Рис 3.27
Рис. 3 28
Проделав такую процедуру для исех таблиц базы данных, вы получите необхо
димую систему связей, которая была показана на рис. 2.1.
В Microsoft Access ШЫ
W, • •л °S*i]-
U И'^Ъ
I • Страны : Table |.|D|X|
Код |Gen_rif|5_Gone|s_GUl|s_Lll| Страна | При 119ЧЭНИЯ
• ]Л 1 1 1С32} data Страна не фазана
02 1 1 1С32} data United Kingdom
03 1 1 1С32} data USA
04 1 1 1C32} data Германия
05 1 1 1C32) data Италия
06 1 1 1C32} data Россия
07 1 1 1C32} data США
08 1 1 1C32} data Финляндия
09 1 1 1C32} data Франция
10 1 1 1C32} data Швейцария
+ \lurnber) dumber) irnber)
Record н | . |f 1 . | .i | . . | of 10 <I J _d
<l I '
Рис 3 29
Теперь в окне Link Child Fields (Связанные дочерние поля) щелкните по стрелке
прокрутки и из появившегося списка выберите в качестве внешнего ключа поле
Код страны. В поле Link Master Fields (Связанные первичные поля) первичным
мючом пусть будет поле Код.
После этого снова откройте таблицу Страны. В обновленном виде она показана
на рис. 3.31. На первый взгляд эта таблица идентична предыдущей, приведенной
на рис. 3.29. Однако обратите внимание на значки (+), стоящие возле каждого
кода фирмы. Эти значки указывают на то, что здесь в свернутом виде содержится
информация. Если щелкнуть по такому значку, соответствующая строка раскро
йся, и вы увидите перечень фирм, относящихся к этой стране, в данном случае
США (см. рис. 3.32).
Иначе говоря, на рис. 3.32 продемонстрирована иерархическая двухуровневая
структура Страны и Фирмы. Теперь для таблицы второго уровня - Фирмы - про
ведем такую же процедуру с окном Insert Subdatasheet (Вставка вложенной табли-
ш
) (см. рис. 3.30). В качестве родительской таблицы примем Фирмы, а в качестве
' ЧеР11ей - таблицу Менеджер. Связанными полями в обеих таблицах (Link Child
e|
ds и Link Master Fields) определим Код фирмы. Тогда таблица Фирмы, в свою
Р<?дь, будет содержать свернутую информацию о менеджерах, что также показа-
а
Рис. 3.32. Если, аналогично предыдущему, вы раскроете затем эту свертку, то
' Дите уже трехуровневую иерархическую структуру Страны и Фирмы и Менед-
й Унс' 3-33). Таким способом в принципе можно создать иерархическое дере-
ю
°ои сложности, и единственным ограничением здесь будет только удобство
рнятия - когда много таблиц, в структуре трудно разобраться.
52 Создание таблиц новой базы данных
Insert Subdatasheet [Ш
I Tables Queries Both
Cancel
Менеджер
Назначение
Приборы, представ лунные на ptiHi e2
Страны
|Типы приборов
Стра =
ri np|s_Gene|s_GUl|s_Lli| Код | Страна | Примечания
f-
1
1 1 1С22} data 01 Ст|.мна НР yta" ана
т
1
1
| Код фмриы
1 1С32} data 02
1 1C32} data 03
Название фп
United kingdom
ИГЛ
Адрес | Адрес 2 | Пр ииечания |
i
* ij2 YSI mcoiporate Yelluw Spring
* П7 Cole-Parmer Int 7425 North Oal<
* 11 Alltecti 2051 Waukegai
Рис 3 32
Рис 3 33
54 Создание таблиц новой базы данных
Резюме
1. Формирование таблиц является первым этапом создания БД, так как табли
цы в Access - это те первичные, исходные файлы, на основе которых в даль
нейшем строится вся база данных. Access 2000 и предыдущие версии предо
ставляют пользователю несколько разных вариантов построения таблиц.
2. В настоящей главе рассматривались три варианта формирования таблиц:
режим таблицы или режим ввода данных, режим конструктора и мастер таб
лиц. Еще два варианта создания таблиц - импорт таблиц и связь с таблица
ми - рассматриваются в том разделе главы 7, который посвящен объедине
нию разнородных баз данных.
3. Наиболее детальным и основательным (и, соответственно, наиболее трудо
емким) методом формирования таблиц является режим конструктора.
4. Для надежного контроля за файлами в Access предусмотрен механизм сис
темных первичных кодов. Этот механизм очень полезен, и если у пользова
теля нет каких-то серьезных причин отказываться от введения первичных
кодов, рекомендуется их всегда создавать.
5. Используемые в Access типы данных очень разнообразны и для их эффек
тивного применения следует перед выбором типа еще раз уточнить характер
использования этих данных при функционировании БД.
6. В Access 2000 предусмотрены два свойства полей: Format (Формат) и Input
Mask (Маска ввода). Обе опции позволяют задавать формат, в котором дан
ные вводятся или, точнее, запоминаются при вводе в таблицу.
Свойство Format (Формат) рекомендуется применять при последователь
ном вводе данных в таблицу.
Свойство Input Mask (Маска ввода) целесообразно при отображении лите
ральных (символьных) констант, а также при вводе данных в пустые графы
(бланки, таблицы и т.д.). При этом пользователю рекомендуется ручной спо
соб формирования маски ввода - он значительно проще.
7. Часто поле может включать лишь определенные значения, которые ишыа
содержатся в заранее заданном списке, а иногда - в самом поле, вместе с i'|>0'
извольно вводимыми данными. В этих случаях ввод данных можно упг"1"
тить и ускорить за счет использования подстановок.
8. Очень мощным средством повышения гибкости и эффективности p:i"°'
ты БД в Access является создание связей между таблицами. Во всех i,( 11'
сиях Access предусмотрено формирование вешних связей между та" >"'
цами. В Access 2000 возможен и другой вариант введения и отображении
связей между таблицами, отсутствующий в предыдущих версиях - 11С'
пользование вложенных таблиц данных. Иерархичность структуры ° а3
данных в этом случае проявляется особенно наглядно.
Глава IV
Создание форм новой
базы данных
• Использование автоформы
• Создание формы с помощью мастера форм
• Работа в режиме конструктора
• Начальная форма при открытии базы данных
или приложения
• Построение запросов для отбора нужных данных
• Ввод и корректировка данных
• Использование гиперссылок
Использование автоформы
Таким способом можно создать форму, отображающую все поля и записи базовой
таблицы или запроса. Запрос, после его выполнения, может представлять собой
таблицу, структура которой аналогична любой другой таблице и содержит поля
и записи. Если у базовой таблицы есть подчиненная таблица, одна или несколько
(в смысле, рассмотренном в разделе «Вложенные таблицы данных» предыдущей
главы), то в форму при определенных условиях будут включены все ее (их) поля
Эти условия будут рассмотрены чуть ниже. Такая структура будет жесткой и од
нозначной, пользователь не сможет ее изменить. Таким образом, автоформа - са
мый легкий, но и наименее гибкий способ построения формы. Теперь посмотрим,
как это делается.
В разделе Objects (Объекты) окна базы данных щелкните сначала по клавише
131 Forms|, а затем по кнопке New (Новый). На экране появится окно New Form
(Новая форма), как показано на рис. 4.1. В этом окне надо выбрать следующие
параметры:
• способ построения формы (в данном случае - автоформа). Здесь возможны
три варианта:
- Columnar (В столбец);
- Tabular (Ленточная);
- Datasheet (Табличная);
а таблицу или запрос, на основе которой/которого будет построена форма (в на
шем случае выберите таблицу Фирмы).
Задав нужные параметры и щелкнув по кнопке ОК, вы получите созданную
форму в виде столбца (см. рис. 4.2).
Как вы помните, у таблицы Фирмы есть подчиненная таблица Менеджер
(см. рис. 2.1). Между тем, как показано на рис. 4.2, при построении автоформы
посредством диалогового окна New Form в готовой форме эта связь не отра
жена.
Рассмотрим другой вариант создания формы с помощью автоформы. Для этого
в разделе Objects (Объекты) окна базы данных выберите вместо вкладки jj]_Forn«J
вкладку D Tables |. Теперь укажите базовую таблицу (пусть это опять будет табли
ца Фирмы) и выполните одно из описанных ниже действий:
• активизируйте опцию Autoform (Автоформа) в подменю Insert (Вставка)
на панели меню Access;
Использование автоформы 57
New Form 33
Design View
Form Wizard
AutoForm Tabular
AutoForm Datasheet
This weard aijtnrnatn-allv Chart Wizard
creates a columnar form PivotTable Wizard
Рис 4 ]
Ш Microsoft Access ^ • H H H J n M
DISH # a ? •
hi- e l a y
| Ё Фирмы
• Кпд фирмы
••••M-hM
D5
Название Фирмы Randoi-. Labot atones Ltd
Код страны 02
Адрес 2 Гзлкии В А
Тел 265 44 05
Примечания
d__. I •
Рис 4 2
58 Создание форм новой базы данных
Код страны
Адрес 2
Примечания
- • - - .
d
Рис 4 3
boles/Queries
[ b t l e Фирмы ~3
Available Fields. Selected Fields
Я
Название фирмы
l- пд страны
Адрес
Адрес 2
Примечания
Рис 4 4
форму с помощью мастера). В окне Form Wizard мастер спрашивает вас: Which
fields do you want on your form? (Какие поля вы хотите включить в форму?) -
п напоминает: You can choose from more than one table or query (Вы можете вы
бирать поля более чем из одной таблицы или запроса).
Теперь с помощью кнопки > | пли » | перенесите в создаваемую форму поля
из таблицы (запроса) - поодиночке или все сразу. Поскольку вы строите форму
на основе таблиц Фирмы и Менеджер, то в поле Tables/Queries (Таблицы/За
просы) выбираете таблицу Менеджер. Затем помечаете для будущей формы че
тыре первых поля из таблицы Фирмы и все поля из таблицы Менеджер. В ре
зультате окно Form Wizard будет выглядеть так, как показано на рис. 4.5. На
очередном этапе работы надо щелкнуть по клавише Next. Следующее окно мастера
(см рис 4.6) предлагает пользователю выбрать один из вариантов итоговой формы:
How do you want to view your data? (В каком виде вы хотите представить данные?).
Сначала вы решаете, следует ли остановиться на варианте Form with subform
(Ф,°рма с вложенной формой), схематично представленном на рис. 4.6, или пред-
" о ч е с т ь Linked forms (Связанные формы), то есть соединение основной формы
1п
°Дчнненной/подчиненных, как показано на рис. 4.7. Еще один необходимый
100
Р ~ с точки зрения какой таблицы должна быть представлена итоговая фор-
d
°пция или by Менеджер. О различии между ними будет сказано дальше. Пока
отметим, что если вы отдадите предпочтение варианту by Менеджер, то это
-тючает возможность первого выбора (by Фирмы_) - он просто отменяется.
Дальше, щелкая по кнопке Next в каждом окне, следуйте указаниям мастера.
а
*дом этапе работы он будет задавать два вопроса. Первый: What layout would
!ке for your subform? (В какой структуре вы хотели бы видеть подчиненную
60 Создание форм новой базы данных
Form Wizard
Which fields do vou want on your Рогт?
- Е=
~.—-../ „ ^ JU can choose rrom more than one table or query
1
Tables/Queries
jTdble Менеджер
Ha-EdHHtr ф'ИрМЫ
Код страны
J
ct-ирмы Адрес
Номер
Менеджер Код фирмы
Фамилия
Имя |
WMzi
Рис 4 5
Form Wizard
How do you want to view your
data'
Рис 4 6
форму?). Здесь возможны два варианта Datasheet (Табличная) или Tabular (Лен
точная) Второй вопрос What style would you like? (Какой стиль она должна
иметь?). Ответив на эти вопросы, вы попадаете в заключительное окно диалога
показанное на рис 4 8 Здесь мастер предлагает выбрать имена форм What titles a°
ние формы с помощью мастера форм 61
Form wizard
Н м do \ ои want to view j/our
data''
Фириы_Код фирмь!, К и в а н и е
фирмы, Код страны, Фирмы_Адрес_
t Менеджер
Cancel
:
< Bark Next > Finrh
Рис 4 7
Form Wizard .
'Л hat title* do you want for your forms?
Л
Form |?исмьС
А Щ^ J*
if 5ubform ||1енеджер Sutfotml
fiwJI
X -Я^Г; That's all the information the wizard needs to create \ our
Jvf* 1 form
Рис 4 8
want for your forms? - а также указать, как форма будет использоваться
ьнейшем Do you want to open the form or modify the form's design? (Открыть
v 1У для просмотра или ввода данных либо для того, чтобы изменить ее дизайн?)
°Ром случае вы попадете в режим конструктора форм, о чем речь пойдет ниже
62 Создание форм новой базы данн.
Ы Microsoft Access
- сю- <S?'*£ ' - б)
ui 1\ ч-> Ъ • *• • * ©
Е ФирмыЗ
Код фирмы 07
шз
1
Название фирмы Cole-Parmer International |
Код страны 03
ZJ
Адрес 7425 North Oak Park Avenue, Niles, Illinois, 650714
Fax (708) 549 1700
Рис 4 9
Порядковый номер возле названия объекта в Access 2000 говорит только о том, как часто сие г
обращается к этому обозначению при подготовке изображении Принципиального значения дани
номер не имеет, и на него можно не обращать внимания
Создан
ие формы с помощью мастера форм 63
шш
о в а а ? * ^ «г-
^. a i # а У , х чз е
Меннджер2
Код фирмы 1
Н<лвание фирмы Cole Рагглег International |
Код страны 03 |
Адрес 7425 North Oak Park Avenue, rjfes Illinois, 650714
Fax (708) 549 1700
Ш МенедаерЗ -|D|X|
Номер Код фирмы Фамилия Имя Адрес -
• 1 2||07 ЦДжонс | [Джеймс |
•rl
Reooid '«I'll 1 • i и (•*! of 2 CFiltetedl «I I -Г zl
Рис 4 10
Ы Microsoft Access ШШ
оу aav в»
A | Z| 7/ -b
ы- в i u :
В Менеджер! ••HJnlxl
•
Фирмы_Код фирм1 02 |
На юание фирмы YSI incorporated |
Код страны 03 |
Фирмы_Адрес Yellow Spring
Ohio 45387
USA
Fax 513 767 9353 \
Номер э|
Менеджер_Код фи 02 |
Фамилия Смит |
Имя Джон |
Менеджер_Адрес
т
He 00,0 _ „ | . J f , • 1 и | » » | of 4
Рис 4 11
64 Создание форм новой базы данных
3 Microsoft Access
D iu m -'J - ! i'L - й - ^ с? =s s- - ?j
n- н ! # а is >']"' - "ft -"" ^ Й' © а - ?i
Forml: Form EM:
• Detail
..Г1
Рис 4 /2
Процесс создания начальной формы начните с того, что откройте окно конструк
тора форм Для этого в разделе Objects (Объекты) окна базы данных надо щелк-
пиь по клавише щ Form*! (см. рис. 4.11), а затем выполнить одно из перечислен
ных пи-ке действий:
3 щелкнуть по клавише ^tjew | (см. рис. 4.13). Когда на эк
ране появится окно New Form (Новая форма), показан
1*1Д!Ш_1 • | x |
ное на рис. 4.1, следует выбрать опцию Design View (Ре
жим конструктора); - °S
3 Щелкнуть по клавише М, Design | (см. рис. 4.12);
3 выбрать позицию Create form in Design View (Создать II» Toolbox
•1
форму в режиме конструктора). •II
1- \
в
результате любого из перечисленных шагов на экране воз-
Аа аЫ • d
"Mici пустая форма конструктора (см. рис. 4.12) с подзаголов-
м
Uetail (Область данных). Рядом с этой пустой формой & Ш Ш -|
поя ся панель инструментов - окно Toolbox (см. рис. 4.13).
1 г
сь с
°браны кнопки, с помощью которых в режиме конструк- J i \ ' n
, издаются всевозможные формы. Если установить на лю- •J£ Line [
Км
°пке указатель мыши, появится подсказка с ее именем.
Рнмер, на рис. 4.13 такой подсказкой является Line (Ли- Рис 4 13
№л
4 1 приведены необходимые пояснения к каждой из кнопок на панели
Ст
' РУМентов
-119
66 Создание форм новой базы данн Ых
Таблица 4.1
*1 Мастера
Надпись
Включает и отключает мастеров
ш Дополнительные
элементы
Выводит на экран компоненты ActiveX и другие элементы управлени
Заголовок формы
На следующем этапе работы введите область заголовка формы. Для этого в оо.та-
сти данных Detail щелкните правой кнопкой и в появившемся контекстном меню
выберите позицию Form Header/Footer (Заголовок/Основание формы). Теперь
в пустой форме появится новая область - область заголовка Form Header. Ее раз
меры можно уменьшить или увеличить простым перетаскиванием границ. (kcT
еще один способ, о котором будет рассказано чуть позже.)
Формирование заголовка начните с того, что на панели инструментов (см. рис. J
щелкните по кнопке АЛ И переведите указатель мыши (вместе с появившп^
изображением кнопки) в область заголовка. Затем, щелкнув левой кнопкой мы"1
работа в режиме конструктора 67
Sl- У & Я d? В j - -
|EForm2: Form ВЕЭЕЗ
• ' i • 1 • i • 2 • i • ; i • 4 I • 6 • I • 6 • I • 7 i • '=: • i - 9 - • • 1 С —
1
• Form Header
1
Контр опьмо-игмерительные приборы
i
1 1 1 1 1 1 1 1
J • Detc il
z}
-1 •
-J
3- РИС. 4.14
68 Создание форм новой базы данных
Рис 4 15
J m- a I B s i =ь a,<? ^ я cf © j- ?,
E Form2 : Form 1=J°1*J
i l i 2 i 3 i 4 - i f i F i 7 i - 8 i 3 i - £ j
1 • Form Header
7i
1 '
XJ.J I- 1 J ^
Контрольно-измерительнУЯИ
2 приборы ЩЯк
i * D e t < ill
ll. 1 ^
Рис 4 16
Робота в режиме конструктора 69
размер шрифта (Font Size) был увеличен с 8 до 16;
отступ от верхней рамки (Тор) установлен в размере 0,5 см;
j текст выровнен (Text Align) по центру (Center);
специальный эффект (Special Effect) - поле приподнято;
j цвет фона поля (Back Color) - темно-серый.
Не только поле заголовка, но и каждый элемент формы (таблицы, отчета, стра
ны доступа к данным и т.д.) имеет свою таблицу свойств и может быть доста
точно тонко и точно настроен.
Командные кнопки
клк \'ле говорилось, назначение начальной формы состоит в том, чтобы непосред
ственно из нее можно было выйти в любую форму базы данных. Значит, в началь
ной <|юрме есть командные клавиши, которые и обеспечивают запуск других форм
в режиме просмотра. Для этой цели используется кнопка j l , расположенная на
панели инструментов). Щелкните по названной кнопке и переведите указатель
мыши вместе с появившимся изображением кнопки в область данных Detail. При
этом открывается окно мастера кнопок- Command Button Wizard (см. рис. 4.17).
Решите, чьими услугами вы хотите воспользоваться - мастера кнопок или кон
структора кнопок. Если вас устраивает первый вариант, следует щелкнуть в окне
Command Button Wizard по кнопке Next и двигаться дальше. Если вы хотите
применить конструктор кнопок, в том же окне (см. рис. 4.17) щелкните по кнопке
Cancel (Отмена). В нашем примере мы создадим новую кнопку с помощью мастера,
.1 AITCM r ернемся назад и сделаем то же самое, используя конструктор.
Рис 4 17
Типы Приборов
Фирмы
Згологические приборы 4
Рис 4 18
О For example, the button can open a form and display the data
for a specific employee or customer
Рис 4 19
,-,„.. Ц1ДШ1Ш.ЦЛ
I Cancel
г
Рис 4 20
• Form Hpar>t
1
Контрольно-измерительные
t
приборы
j • DC''ill
П ~
1
1
" C граны 1
*—i
2
J• Forni Footer
I ^b
Рис 4 21
=шш
ID a 'v h " ® ' •« & * &n - л и ? °s1 #*i - ©
irjT g a a v * - <S '' # <Q л и > Э а - 9.1
и Form2: Form
r
I I 4 I i 6 I 7 i 8 1 i 1 I i 11 I 1 i l i
'"l 1 \ "
nHeati
Контрольно-измерительные
-i
i приборы
2
i
J 4
1
t
Страны
1
14 For i F u j f e r
Рис 4 22
Таким образом, фактически кнопка в начальной форме уже создана Вам осталось
тотько изменить ее имя и, если надо, размеры и шрифт Все эти операции вам уже
знакомы выполнив их, вы выходите в окно, показанное на рис 4 21, и дальше повто
ряете все действия, описанные в разделе «Командные кнопки» Все остапьные кноп
ки, открывающие формы, вводятся в начальную форму аналогичным способом
Немною иначе создается кнопка, которая закрывает начальную форму, то есть
позволяет выйти из формы в окно базы данных В этом случае в окне мастера кно
пок (см рис 4 17) следует выбрать в правом поле среди команд работы с формами
вместо Open Form (Открыть форму) команду Close Form (Закрыть форму) В по
явившемся окне (см рис 4 20) надо активизировать не Text, a Picture Тогда в пра
вом поте этого окна вместо MSAccess Form появится ряд опций, среди которых
НУЖНО выбрать Exit Когда вы завершите все описанные операции, кнопка закры
тия начальной формы будет выглядеть так, как показано на рис 4 24 Если щелк-
, VTb п о этой кнопке, Access 2000 закроет начальную форму и выведет вас в окно
оаз
ы данных
''так, вы создали и кнопки для открытия всех форм, и кнопку закрытия началь-
и
формы Останется только дать ей имя, ведь до сих пор ее рабочее название -
Form с каким-либо индексом (в нашем случае Form2) Это очень просто сделать
Когда вы в первый раз захотите закрыть начальную форму с помощью кнопки xj,
\с
ss 2000 предложит вам назвать новую форму или согласиться с ее рабочим
е
м Здесь вы и введете свое название - Контрольно-измерительные приборы
74 Создание форм новой базы данных
Контрольно-измерительные
i
приборы
1
2
1
1•fDet d
1
1 i
• *
ComrnaricL'5 r
< "1
• Forr i Fuofer
1 A
Рис 4 23
«1 1 -Г1
Рис 4 24
Начальная форма при открытии базы данных или прилосожения 75
Startup
Application Title Di'pla/ Form/Paae
|Кснтр льнг ичмеритс-пьмыр n i r n t _ - j
OK
Z\
Cani?
Application Icon Г Di'fld ' D a t a t a ' f Window
Рис 4 25
Затем, чтобы при открытии базы данных на экран не к ыводилось ее окно, сни
мите флажок в поле Display Database Windows (Показать окно базы данных)
Это не лишает вас возможности открыть окно базы данн ых, достаточно восполь
зоваться кнопкой ©I на панели инструментов (evi, например, рис 4 20 или кла
впатурной клавишей F11 Еще одна существеннгя детали внесенные изменения,
показанные на рис 4 25, вступают в силу только при следующем открытии базы
данных
© J- Uj
Б Приборы 1-lDlx
Назначение прибора Вес кг
Назначение не указано "3I
Примечание2
Характе РИС-ТИКИ
Карманный прибор фирмы HANNA без
Категория (портативный 3
электрода с BNC-разьемом
модель Checker В С вместимость с широким спектром
3 различных рН-электродов
тип рН-метр 3 Диапазон измереннии 0-10 рН
Точность 0 2 рН
Фирма |ЗК0ХЕЛП И НСТРУМЕНТС J Питание батареи на 3000 час
Пасса 52 6 г
Цена $ I 42
№ по каталог;/
Примечание
Год по каталог/ Г
Цена! $ | 0
Примечание!
Новый Новая Новое назначение Удалить
Изменить
тип Фирма прибора запись
запись
прибора
• | и [»»[ of 172 ^
Рис 4 26
з"
Рис 4 27
В Microsoft Access
File? Edit t i e . " In si t Filter Tr.nl. Window Help
© a i' •"' Qo,e X V S Л • l-'.l .
Dcjy L -о г" • an • og . g .
H Приборы: Filter by Form
Назначение прибора Вес кг
"3
Примечэние2
Характеристики
Анализ воздуха на содержание аэрозолей и кислых газов анализ биообъектов _i
Анализ летучих органических соединений (бензол толуол трихлорэтилен кснпол трихлорбензол) е поверхностных е -
Анализ летучих органических соединений (бензол толуол трихлорэтилен ксилол хлорбензол) в поверхностных ВОДЕ
Анализ нелетучих гербицидов производных фенола, алкилсульфидов ионов тяжелых металлов и некоторых редких а
Долговременный мониторинг растворенного кислородапроводимости солености кислотности температуры общей!
Измерение растворенного кислорода температуры проводимости солености кислотности общей концентрации в П|
Измерение аммония ^ __^_
Измерение кислотности
Цена$
Н- по каталог-/
Примечание
Год по каталогу
Цена! $
Примечание!
Рис 4 28
дВЗШШЗШШШШШШШШШШ^ШШШШ^Ш ГЛ5Ш
File £dit View Insert Filter Jooh Window Help
& Q . < ibi ••' - ciu-.e x 7 0 a - L].
МОДеЛЬ
тип ~3
Фирма "3
Цена $ |
N" по каталог)'
Примечание
Гол по каталогу
Цена! $ |
Примечание!
15
J
Рис 4 29
i D c& e & a v-
M, • и в a v - • * 21 'il/' "a v w • • d- g
назначение прииира "3
IU кислотности ~2
Прим~чание2
Характеристики
Полностью влагозащищенныи портативно
Категория |портативныи J
рН-метр Встроенная память на 60
модель |[Иодель 265 измерении Выход - интерфейс R5232
-\ Точность по рН - 0 005 по напряжению-0
тип рН-метр d rnV по температуре - 0 1 ОМожет
комплектоваться полным набором пoлeвt
Фирма JORION zi принадлежностей
Цена$ I
яшнШш № по каталогу
Примечание
Год по каталог/ 1 mi
Цена1 $ 1
••г
Примечание
>•! of -a (Filtered) J T
_Г1Г
Рис 4 30
значение 27, тогда как всего в словаре Фирмы 26 значений (см. рис. 4.32). Если
вам не требуется заносить новое значение в словарь Страны, вводите новую фир
му, которая зарегистрирована в одной из стран, уже включенных в этот словарь
Если надо ввести также и новое значение страны, то в окне формы Фирмы (см
рис. 4.32) следует щелкнуть по кнопке Новая страна. В результате на фоне двух
предыдущих форм откроется форма Страны, готовая к вводу информации. Вне
сите в поле Страна наименование страны - например, Португалия (см. рис. 4.33)
Порядковый номер, выполняющий здесь функцию кода, вводится автоматичес
ки. Затем воспользуйтесь клавишей Enter на клавиатуре. Теперь можно вносить
текст в следующее поле - Примечания. После повторного нажатия клавиши Enter
форма Страны закрывается. Далее введите название фирмы в соответствующее
поле формы Фирмы (см. рис. 4.32). Новой фирме должна соответствовать страна,
поэтому щелкните по стрелке прокрутки в этом поле и выберите любую страну
из раскрывшегося контекстного списка. Обратите внимание, что в нем уже со
держится и недавно введенная Португалия (см. рис. 4.34). Выбрав страну, введи
те в одноименное поле название фирмы (в нашем примере - TAAG).
Точно так же вы должны действовать, вводя запись о новом приборе в форме
Приборы (см. рис. 4.35). Во все поля, содержащие стрелки прокрутки, данные
можно включать двумя способами. Первый: вы выбираете нужную позицию из
списка. (Так, в контекстном списке фирм, показанном на рис. 4.35, уже содержится
Ввод и корректировка данных 81
EMU
Fj\t! Edt View Lnsert Fnrmat Records lools Window Help
D GS H - & E i "'•
Назначение прибора ТЗ
3
Примечание2
Характеристики
Категория "3
модель
3
тип 11
Фирма
~з
ЦенэЗ I
№ по каталогу
Примечание
Год по каталог,'
Цена! $ I
Примечание!
Рис 4 31
Название фирмы ~Б
Стоана
Апоес
Ааэес2
Примечания
Изменить Удалить
запись запись Но^ая страна
WI»
Рис 4 32
Использование гиперссылок
Использование гиперссылок рассматривается здесь на примере работы с геогра
фическими картами
QtjU S B » ° 'DO- =g - 0 .
0-
I Фирмы JOj_Xj
К о п Фиомы
На
Код
шш
Кате i Страна Португалия
моден
Примечания
тип
Фи| г
Удалить Изменить
11 • ! • I " ! °< 11
Изменить Удалить
запись запись Ниеая страна
Рис 4 33
Поиск карты
Выше уже говорилось, что Excel предъявляет к картам довольно жесткие требова
ния Предлагаемая технология использования гиперссылок, напротив, допуска-
ет
работу с любой картой в любом формате, если ее можно вывести на экран мо
нитора Затем надо сделать снимок карты с помощью таких программ, как Adobe
' hotoShop, Screen Print Gold, HyperSnab-DxPro и др (которые не входят в состав
Microsoft Office) Теперь можно конвертировать карту в любой нужный графи
ческий формат Чтобы впоследствии у вас не возникало трудностей в работе с кар
той в Access 2000, поместите ее из полученного файла в окно, открытое в Word 97 или
й
Word 2000 Карта будет иметь формат DOC Конвертированные таким образом
84 Создание форм новой базы данных
Ы Microsoft Access
File- Edit View Inceit Former Records lindj.v Help
a ei Q ; <s a v i• "
В J • гч .
ПИ Прибор!
E Фирмы
Г
Коп Фиомы 27 шш
Название фирмы ITAAG ~3
Страна ~3
Катег
мо дел Адрес
Германия
Италия
гз-
Россия
тип
Ааоес2 США
Фирг, Финляндия
Франция
Цена; Швейцария
Португалия
Примечания
Изменить Удалить I
запись Запись Новая страна I
•|"|"|<"27
Рис 4 34
файлы в формате DOC показаны на рис. 4.36 (для Архангельской области) и 4.37
(для Ленинградской области).
В нашем примере для конвертирования были использованы карты, разработан
ные в ФАПСИ и входящие в составе одного из банков данных по ЧС (он рассмат
ривается в настоящей книге). Автор не участвовал в создании этих карт, и сначала
они вовсе не предназначались для конвертирования - лишний аргумент в пользу
того, что для подобных целей пригодны практически любые географические карты
Установка гиперссылок в базе данных
Откройте таблицу Filel. Обратите внимание на поля Название области и Назва
ние города (для наглядности они поставлены рядом, как показано на рис. 4.38)
Две самые первые записи касаются Ленинградской (Санкт-Петербург) и Архан
гельской (Архангельск) областей.
Сформируйте гиперссылку, которая позволяла бы, например, из каждой стро
ки быстро выйти в соответствующую карту. Для гиперссылки необходимо от
дельное поле. Создайте его и назовите Карта, а затем определите его в конструк
торе таблиц как поле гиперссылки (см. рис. 4.38). Теперь подготовка завершена,
и можно непосредственно вводить гиперссылку. Как только вы устанавливаете
курсор в новоиспеченное поле Карта, активизируется кнопка %\ - Insert Hy-
perLink (Вставить гиперссылку). Щелкнув по ней, вы вызовете одноименное
Использование гиперссылок 85
Щх
r^ pi|p ETdit View Insei t F o r m a t Re-Lurd.? Tools Window H>=lp sJiU
L'J.
© а- Э-
Назначение прибора Вес кг 14
[ l_r IP._ рние гцюеодииости ~3
Примечание2
Характеристики
Категория [портативный 3
"3
тип
Фирма (шва з
Ч | v/ilks Enterprise Inc 'У"«'.-- •-••*.
N° по каталогу
YSI incorporated
Г| 4.зние , fflf^»^^ •- ••'•"•К"™
АО "ЭКРОС"
Год по каталогу
ГЕОХИРАН
u ь| Нефть-Гаэ-Наука
Прим « н и е ! НПГГ'ЭКОНИКС
ОАО "Цвет"
окно (см. рис, 4.39) В нем вы можете ввести следующие варианты ссылок
(Link To):
• Existing File or Web page (Существующий файл или страница Internet);
• Object in This Database (Объект текущей базы данных);
• Create New Page (Новая страница);
• E-mail Address (Адрес электронной почты).
В рассматриваемом примере вы имеете дело с уже существующим файлом кар
ты (допустим, это Архангельская область). Он расположен по адресу:
С:\Мои документы\Мои рисунки\Архангельская областьЛос
Поэтому следует воспользоваться вкладкой Existing File or Web page (Суще
ствующий файл или страница Internet). Указанный выше адрес вводится в поле,
к
УДа Access 2000 предлагает поместить данные: Type the file or Web page name (Вве
дите имя файла или Web-страницы1). Ввести адрес можно с помощью либо клавиа
туры, либо кнопки Browse for => File (Просмотр => Файл) на рис. 4.39. Тем самым
адрес включается в список, который раскрывается в этом же окне щелчком по стрел
ке прокрутки и появляется в соответствующей строке поля Карта (см. рис. 4.38).
™eb, И'ш W W W ( W o r l d Wide W e b - Всемирная паутина), - совокупность всех гипертекстовых
( H T M L ) документов, которые размещены на серверах Internet
86 Создание форм новой базы донных
Рис 4 36
Рис 4 37
в этим, достаточно открыть файл карты в Word и увидеть там курсор в виде указа
тельного пальца). Она позволяет переместиться по любому адресу, если после
дний включен в список, который раскрывается при щелчке по стрелке в поле Ад
рес на панели инструментов. Вопрос только в том, как ввести нужный адрес в этот
список
Щелкните по уже знакомой вам кнопке <&| - Insert HyperLink (Вставить ги
перссылку) В результате на экране появится другое поле с тем же названием
Пусть вас не смущает то, что в данном случае оно русское - Добавить гиперссыл
ку (Дело в том, что карты конвертированы не в Access 2000, а в русифицированной
версии Word 97 ) В верхнее поле названного окна вводится адрес гиперссылки, ко
торый обеспечивает переход в базу данных. Как и раньше, для этого есть два спосо
ба набрать адрес с помощью клавиатуры либо выбрать его из списка, который от
крывается при щелчке по кнопке Обзор. В нашем случае этот адрес будет таким:
С:\Мои документы\Мои рисунки\Архангельская область doc#Form ЧС
(Элемент Form ЧС предназначен для открытия формы ЧС непосредственно
п
Ри переходе по гиперссылке.) Теперь щелкните по кнопке ОК, и адрес будет вне
сен в список, показанный в окне карты (см. рис. 4 42) Вновь, как и в предыдущем
Разделе, гиперссылка создана. Чтобы запустить ее, надо открыть список, найти ее
адрес и нажать клавишу Enter. Форма ЧС (см. рис. 4 40) откроется непосредствен-
110
и* карты Точно таким же способом можно открыть и таблицу.
88 Создоние форм новой базы данных
Q Microsoft Access
File Ed г View Insert ( : orrnat Records Tools Window Help
Ё^ aay X R5 IB
ъ + >X © £ • \2) .
Filel: Table шш
Нздизннд области
г Санкт Петербург
| Название города | Карта
САНКТ ПЕТЕРБУР С \Мои документы^! 1ои р и с у н к и У П р н и н г р ^ д г ы я о
J3
1
Архангельская область АРХАНГЕЛЬСК С \Мои д о к у и е н т ы \ М п ц рисунки' А р к я н г е л ы t а* оЬгпсть
Тюменская область
Калининградская область К А Л И Н И Н Г Р А Д (К
Коми ССР
Коми ССР
Республика Саха (Якутия ЯКУТСК
Калининградская область К А Л И Н И Н Г Р А Д (К
г Москва
Владимирская область
Ростовская область
Владимирская область
Московская область ДОМОДЕДОВО
г Москва МОСКВА
г Москва МОСКВА
г Москва МОСКВА
;old к |
Л I и |»»| of 846 _d ^
ЕГ
Рис 4 38
Insert Hyperlink
Link to 7>xt to drplaj/ | _ \f1on д . ументь! \Мги рисунки мр/анг^нь к^я ЯсгеепТ|С_
Рис 4 39
Использование гиперссылок 89
ГдШ
ВиаыЧС (10305
ДатаЧЭС 2/09/1935
Название го LAHKT ПЕТЕРБУРГ
Время ЧЭС 00 00
Карта С \Мои док4менты\Мои ри<
Название об г Санкт Петере чрг
Пострадало и
Погиоло 0
Характерист В здании Парголовского
комитета по земельной
Материальн1
'•'•Ш
ecord н | -* | |~~ 1 » I >• l»»l of 84в J
Рис 4 40
Добавить гиперсеьику
Связать с файлом/URL
И
]С \М и дп| >мРнты\Еанки данных'|±1 гп±#Ригп Ч( | _^J Об^
—
о , ^ Еведите или выберите гт>ть к док МРНТ/ на котирый будет
p4J®1 у\ з ывать ссыпка ?то МОЧ'РТ быть адс^ Интернета (URL) или
* — документ на жестком или сетевом диске
Об^ор
OV Отмена
Рис 4 41
90 Создание форм новой базы данных
Рис 4 42
Резюме
1. В отличие от таблиц, формы - это элементы, как правило, получаемые i
«на выходе» базы данных. Обычно они используются для получения oil''
тов на запросы пользователя. Но формы могут применяться для также ид
записи данных в таблицы и/или изменения этих данных при их вводе лп<
корректировке.
2. Для получения стандартных, типовых форм можно использовать автоформы
это очень просто, однако структура такой формы будет жестко привязана к <
ной или нескольким исходным таблицам. Несколько сложнее создание фор,\
с помощью мастера форм или конструктора, но в этом случае ее структура буд
значительно более гибкой и разнообразной
3. Содержание и структура формы изменяются в соответствии с запросами, к
торые формирует пользователь. Возможности форм значительно расшир
ются за счет использования гпперссылок (в частности включения географ
ческих карт), рисунков и др.
4. Для создания начальной формы БД удобно использовать конструктор фор
Начальная форма в базе данных играет роль одновременно титульного Л1Ь
та и оглавления в книге. Открыв эту форму и, следовательно, саму базу да!
ных, пользователь может затем выйти из начальной формы в любую необх<
димую точку БД.
Глава V
Создание отчетов новой
базы д а н н ы х
В Access 2000 отчет создается почти так же, как форма. Разница между этими дву
мя объектами базы данных состоит не в технологии их построения, а в их целевом
назначении. Если с формой пользователь будет работать на экране, то отчет пред
назначен для печати и представляет ценность как материальная копия документа,
полученного из базы данных.
Предусмотрены следующие стандартные способы формирования отчета (как
видите, они аналогичны способам построения форм):
• с помощью автоотчета;
• с помощью мастера;
! • с помощью конструктора;
• с помощью запросов.
Именно по указанной выше причине здесь рассматривается только формиро
вание отчета с помощью аетоотчета, а также включение в отчет подчиненной фор-
1- Мы. Работа с запросами будет проанализирована в главе 9.
)- Однако в работе с отчетами все-таки есть свои нюансы. В отличие от форм,
с отчетами возможны следующие операции:
92 Создание отчетов новой базы данных
New Report
Oei.ign View
Peport Wizaid
AutoReport: Tabular
Chart Wizard
llThi-j wizard automatically Label Wizard
fcreates a columnar report.
OK cancel
Рис. 5. 1
Код |
Номер модели |:hed<er в
Категория fioj
Примечание I
Примечание!
\
Год но каталогу
1
Характеристики Карманный прибор фирмы HANNA6ea электрода с BNC-
эв J ъемом
2вмесгимлсть с широким спектром различны* рМ•
электродов
Диапазон иэмеренний 0-10 рН
Точность 0,2 рН
*J Питание батареи на 3000 час
Насев 52,6 г
5еэ электрода с BNC -разъемом
Z вместимость с ш ироким спектром различных рН-
электродов
Диапазон иэмеренний 0-1 ОрН
Точность 0,2 рН
Питание батареи на 3000 час
Насса 52,6 г
Цена 1$
Вес*г
Код тика
'•it:
Пвикч ание
i :^ffffflif''-\r "в" * "*• * А
Рис. 5.2
94 Создание отчетов новой базы данных
Рис. 5.3
Форма для подчиненного отчета у вас уже есть - Фирмы Subform, поэтом
используйте ее: Use an existing report or form. Если вы намерены создать со'
ственную форму, то выберите другую позицию: Use existing Tables and Queries
Теперь щелкните по кнопке Next, чтобы перейти в следующее окно конструктора
(см. рис. 5.6). Здесь вы должны ответить на вопрос: Would you like to define which
fields link your main form to this subform yourself, or choose from the list below?
(Вы хотите сами задать поля, которые будут связывать основной и подчиненный
отчеты, или выбрать эти поля из приведенного ниже списка?).
В поле, где показан этот список (он включает две позиции), выберите опцию
Show Фирмы for each record in Страны using Код (Показать Фирмы для каждой
записи таблицы Страны, используя Код). Если теперь вы щелкнете по кнопке
Finish, то вернетесь в область данных конструктора, но с дополнением в виде под
чиненной формы. Чтобы взглянуть на окончательный вариант отчета, вам остает
ся сделать последнее усилие, то есть щелкнуть по кнопке Bt»| - View (Просмот р)
Группировка записей 95
В Microsoft Access шш
IS Страны шшJ з
Страны
AM |33 |
Страна pSA |
Примечания | |
AM И |
Страна |Германия |
Примечания \ \
Код р5 |
Страна |италия |
Примечания \ \
Код |зе |
Страна росейя |
Примечания
Код
Page _ Ы | ~ •• I ' I A £
ы
РИС 54
Группировка записей
Приведенный выше отчет с его структурой является также одной из форм орга
низации записей. Однако группировать данные можно и более привычным спо-
сооом, то есть с помощью мастера отчетов. Его запуск и начало работы осуществля
ется почти так же, как аналогичные действия при использовании мастеров таблиц
и
форм. Разница состоит в том, что для запуска мастера отчетов в разделе Objects
(Объекты) окна базы данных надо щелкнуть сначала по кнопке д Reports |, а за
тем по кнопке New (Новый). Но в окне New Form (Новая форма), которое по-
Яв
ится на экране (см. рис. 4.1), теперь надо активизировать опцию Report Wizard
(Мастер отчетов). В нижнем поле того же окна New Form вы можете выбрать таб-
Ли
Чу; она станет первой из тех таблиц, на которых будет основан создаваемый
96 Создоние отчетов новой базы данных
What data would you like to use for your subform or subreport"'
Назначение
Приборы
Form
Form
J
Страны Form
Страны 1 Form
Типы Приборов Form
Фирмы Form
; Фирмы Subform Form •
Экологические приборы Form
1
Cancel Next > Finish
Рис 5 5
• 1 Щ
Рис 5 6
отчет. Правда, мы все-таки советуем сделать это в следующем окне, так как в не^
можно выбрать поля более, чем из одной таблицы. Наконец, и при выборе полеи
включаемых в формируемый документ (см. рис. 4.4-4.5), начальные этапы рабо
ты те же, только везде вместо формы речь идет об отчете. Действительно важные
Группировка записей 97
ШШ
g - <Э Р О Ш Щ 'О00'» - Close ИГ , g ] j . P7| .
g Страны шш
73
Страны
Код "К
Страна [.ISA
1
|Я
Примечания 1 1
• Рир\<ы Sub farm
Код ср и р м ы Н асеание Ф и р м ы У од с т р а н ы Адрв!
02 j 1 Ь 1 ir i с с I р о F a i e d |м3 felloe
Ohio '
USA -
Fax 5
Ал?
Страна Германия
Примечания
Р^е _df i>'i j
РИС 57
Report Wizard
How do you want to view your
ddtd" Код, Страна, Код фирмы, НазЕание
фирмы, Код страны
by Страны
Рис 5 8
Report Wizard
Do you want to add any grouping
levels"'' Страна
Priority
Рис 5 9
Report Wizard
What sort order do /ou wunt fnr detail recoids?
1 Hd.EdHUe фирмы
~3 Ml
~3 ill
U
-3 J
Рис 5 10
Report Wizard
would you \\\ё to la/ out /our report'
La,out Orientation
Рис 5 11
Преимущества использования
Если вы печатаете и рассылаете отчеты Access пользователям внутри или за пре-
делами своей организации, то использование статических копий может суще
ственно сберечь время и деньги. Теперь вы можете отправлять и публиковать отче
ты посредством электронной почты или Web-браузера, например Microsoft
Internet Explorer. Ваши деловые партнеры, в свою очередь, смогут быстро про
смотреть отчеты в сети и напечатать только те страницы, которые нужны. Это осо
бенно полезно, если в отчетах содержатся изображения, в частности, цветные (Д<1
пустим, диаграммы и рисунки).
Статическая копия отчета 101
Фир.пы •
Страна USA
Название фирм Код Код фирмы Код страны
Alltech 03 11 о:,
Cole-Parmer Internatio 03 07 03
YCI incorporated 03 02 03
Страна Германия
Название фирм Код Код фирмы A'cd страны
SENSORTECHNIK M 04 19 04
Страна Италия
Название фирм Код ЛЪд фирмы Ас'-З страны
AM E L 1 nstrument s 05 17 05
Страна Россия
1 • 1 " 1 «1 J ^ .1
.1
РИС. 5 12
Приборы
Наивр пахали
5>ucl(Ch»ck 106
VepftKTfpK^rVKK
i 14 t К p*ii«LrtHM; 0,1 рН яэчкэсп 0 1 рН, температурккл момп*м:иоа, б*т*рвя 100 члссл
Нол«р к одел к
МовегабЮ
Чяршаерхсгккк
T y w i V рН ме-ттЛтермометр с к е с к к п ж о а т электродом
Рис 5 13
I J
В Miciosoft Access - [db5 : Database]
ОпШ
В . Preview Н Design Ц New i X \ £fl > •:•:
Р и с 5 14
Резюме 103
Рис 5 15
Резюме
1. В Access 2000 отчет создается почти так же, как форма. Разница между эти
ми двумя объектами базы данных состоит не в технологии их построения,
а в их целевом назначении Если с формой пользователь будет работать на
экране, то отчет предназначен для печати и представляет ценность как мате
риальная копия документа, полученного из базы данных.
2. Отчет, созданный с помощью автоотчета, будет отображать все поля и запи
си базовой таблицы или запроса. Так же, как и в случае с формой, такой от
чет наиболее прост в построении и наименее гибок по своей структуре.
104 Создание отчетов новой базы данных
I j g Приборы, snp
ШШ 3
3
Приборы
J
Ноле-р лод&лм
"/uickChed. 106
Чярак-гврксткл'м
]-14 pH, рза решимте: 0,1 pH. т а ч ю с п 0,1 pH, температур нал компенсация, Батарея ICO «ЬСОЕ
Рис 5 16
Страница доступа к данным (Data Access Page) - файл особого типа, создан
ный для работы с данными из Internet или Intranet н для их просмотра. Вооб
ще Data Access Page - одно из нововведений в Access 2000. Страница доступа
загружается в базу данных Access 2000 или базу данных SQL-сервера, но мо
жет также создаваться и загружаться за пределами Microsoft Access. Data Access
Page иногда включает данные из других источников - например, из Microsoft
Excel. Кроме того, страница доступа к данным может использоваться при ра
боте непосредственно в базе данных или проекте, создаваемом с использова
нием Access 2000.
Product 10 j
Product name j
Заголовки
групповых Company Hame
J
полей Unit Price |
Discontinued Г"
NevKjalic-nSecliori Products
Поле
номера J j Pioduc[s|0 ot|2
записи
Рис 6 1
И Microsoft Л е с е » ШШ
I Fill? Edif View Insert Format Tools Window Help
' U Страны 1
Фирмы
Код фирмы 02
Название фирмы YSI incorporated
Код страны 03
Адрес Yellow Spring
Ohio 453S7
USA
Fa*' 513 767 9353
Адрес 2
Примечания
Страна USA
Рис 6 2
OK Cancel
Рис 6 3
Page Wizaid
Tables/Queries
|ТаЫе Страны
ГЗ
Available Fields: Selected Fields'
К О Д фирмы
Примечания Название фирмы
К О Д страны
Адрес
Адрес 2
Примечания
Рис 6 4
Использование страниц доступа к данным 111
Page Wizard
Priority
Рис 6 5
112 Создание страниц доступа к данным
В Microsoft Access шш
I
File Edit Vie"' In nt Format Tools Windnw Hr-lp
m - у rf • ^ _' • в # [g [f
Normal - Tahnrna -r lu - В I U ЦЕ Д
1
1 ' — — • ——
| l 3 P a g e 7 : Data/ • .iDlxl
Headei CDhpMblWlZ j
Код ф| Plltl
Назван ie фирг 1Ы
Код ст )ЗНЫ
Адрес
Адрес
Примем анич
• i i >
Стран;
. . . I I I I
Navigat lonSect on: <t* pubiWiz
I
• | C'MpHfclWlZ | O o f 12 »
I ~l ~ \~ I i I I I ^)
<l I
.4 l>
Рис 6 6
Page Wizaid
What sor* order do you want for detail records 7
[ 1
1 t- пд странь!
~3 ill
1 IZH 1 1<C
1=1
1
2 If ид фмрмы|
"3 Ji]
1 1 1 ] Jjj
1 1«
а1 = ] Ii 1=1
1 •3] J
ш
Cancel <Eack Next > Finirh
Рис 6 7
1 Page Wizard
9". That's all the information the wizard needs to create ^our
"3 page
Рис 6 8
еще одна опция: Display Help on working with the page (Вывести на экран
справку, связанную с обработкой страницы). Модификация страницы в ре
жиме конструктора представлена на рис. 6.9. Сделав выбор, щелкните по
кнопке Finish.
114 Создоние страниц доступа к данным
I \ АЛ аы D <= ^ И ЕВ _i п га \ • '
•i&sri '. , . , 1 1 1 i i i i i i i i i,
Header 1 Страны
.1 Название фирмы
'ofOUpO»fLTp.aH|:l | 1 [ I 1 1 1 i l l'.'I
| _Ф]| | HaiEdrine фирк 1 I 1 1 I I 1 ! I 1 I 1 I I
Header ФирмыУЛг f\ \
К|эл4ир||ы |
гфд страны |
*арес
А арес 2
Г нимеча 1ИЯ
и ?
H < | Страны Название фирмы 10 j 1 of 12 • И > * »>' * '"'
i i г i I i l i i
* ' 11
Navigat on5ect on Страны Страна
I -
РИС 69
Законченная страница доступа к данным выглядит так, как показано на рис. 6.10
Внимательно изучите рис б 10 и сравните то, что на нем изображено, с вложен
ными таблицами и формами, которые обсуждались в главе 4. Как видите, упоря
дочив и отсортировав информацию с помощью мастера страниц, вы получили
вложенную страницу доступа к данным. В самом деле, слева от окна Страны рас
положен значок <Q>|. Он уже знаком вам по вложенным таблицам. Если щелкнуть
по этому значку, запись Страны раскроется, и слева от окна появится другой зна
чок - сз|, а также новая запись - Название фирмы (см. рис. 6.11).
Как вы уже знаете, «плюс» указывает на присутствие скрытой записи, а «минус >
сообщает, что она развернута. Щелкнув еще раз по значку ф|, вы получите полно
стью раскрытую страницу (см. рис. 6 12). Если щелкнуть мышью по значку ==•]
можно свернуть страницу, и она будет выглядеть так, как показано на рис. 6.10.
Ш Microsoft Access шш
File Edit View Insert Format Took- Vjnduw Help
111 Страны шш
14 4 I Страны-Страна 1 of 10 и >*»(*y>'$l'il'Z'Y
Ы
Рис <5 10
ku ' 0 c3i
| ^ Страны H-lnlx
«1
Рис 6 И
( У Micro t o l l Access
: ';./-. - « | B dj J
м- У rJ ai ' e, -*!'
| ' j j Страны
шт ШЕШ*
Адрес 2 Галкин В А
Ten 265 44-05
Примечания
Рис <5 / 2
ШЕ1
© 9.
- Toh г 1 - 1 г' - В / U S S 3=
"3
Я Page8 : Data Лесе»» Page QsE
ДШ*1
[
k \
Section Unbound Лд abl
' pа (S
m
ЕЕ _i
- fj
El
•
Ы
Рис 6 13
Список полей
Опция Field List (Список полей) позволяет легко добавлять информацию из при
ложений Microsoft Access и SQL Server в страницу доступа к данным. Достаточно
выбрать в списке имя нужного поля и перетащить это название на страницу. Каж
дое поле поддерживает прямую динамическую ссылку, которая связывает стра
ницу доступа и данные. Таким образом, поле «прикреплено» к информации и опе
ративно обновляется при изменении страниц доступа к данным. Если вы создаете
новую связанную форму или отчет, на экран автоматически выводится список по
лей, даже если по умолчанию он был выключен.
Чтобы просмотреть список полей, надо открыть форму, отчет или страницу
в режиме Design view, а затем щелкнуть по кнопке в | , которая расположена на
панели дизайна страницы (Page design). На рис. 6.14 вы видите, как выглядит спи
сок полей для страницы, показанной на рис. 6.12.
Сводная таблица
Компонент PivotTable (Сводная таблица) создается в Microsoft Access или
Microsoft Excel и включается в страницу доступа к данным. С помощью PivotTable
пользователи могут просматривать данные отчетов, выполнять их динамическую
Со
ртировку и фильтрацию, группировать сведения по строкам или столбцам, по
лучать суммарные значения и изучать их отдельные составляющие. Все это по
зволяет эффективно обрабатывать как небольшие объемы данных, так и крупные
Ма
ссивы информации. Формат, в котором изначально представлены данные,
120 Создание страниц доступа к данным
Резюме
1. В Access 2000 введен новый тип файла - страница доступа к данным (Data
Access Page), созданный для просмотра данных из Internet или intranet и ра
боты с ними. Страница доступа загружается в базу данных Access 2000 или
SQL-сервера, но может также создаваться и загружаться вне Microsoft
Access. Страница доступа к данным способна включать данные из других
источников - например, из Microsoft Excel. Кроме того, страницу доступа
к данным используют при работе непосредственно в базе данных или проек
те, создаваемом в Access 2000.
2- Для взаимодействия Access 2000 с окружающей средой страницы доступа
к данным значительно полезнее, чем статические копии отчетов. Если
122 Создание страниц доступа к данным
Мы уже говорили о том, что по мере появления новых, более совершенных СУБД
все актуальнее становится проблема использования данных, которые накоплены
в информационных банках предыдущих, в том числе и морально устаревших вер
сии. И сами эти СУБД, и организованные в них сведения очень разнообразны по
составу, структуре и форматам данных, а также по программной основе. Эти БД
часто создавались разными организациями и разработчиками, а какие-либо пра
вила, четко регламентирующие создание банков данных, отсутствуют. Несмотря
па это в большинстве случаев информация, в какой бы форме она ни содержалась,
сохраняет свою ценность, например, когда речь идет о статистических данных.
Следовательно, нужно уметь использовать сведения независимо от того, в СУБД
какого типа они хранятся.
В решении этой проблемы на сегодняшний день наметились два основных на
правления:
Q применение конвертеров, которые преобразуют данные из одного формата
в другой. Наборы таких конвертеров, хотя и не всегда достаточно полные,
есть практически во всех СУБД, и пока это основной путь решения про
блемы;
1 24 Конвертирование баз данных из других программных сред
1 *™ А • :\ • | а | ВЦ g f g AJ
Рис 7 1
импорт базы донных БД ЧЭС 127
Рис. 7 2
клавишу Enter. Указывать файл-источник (Source File) не надо: имя этого сис
темного файла Clarion введет сам. На данном этапе и произойдет преобразование:
появится требуемый файл Filel.dbf. Если, вводя имя этого файла, вы не указали
его расположение, то он будет помещен в ту же директорию, в которой нахо
дится конвертер Ccvt. Казалось бы, дело сделано, и можно переходить к следую
щему этапу конвертирования.
Однако не все так просто. В dBase действует ограничение на длину имени поля -
оно не может превышать 10 символов. Кроме того, при конвертации в название
включается префикс. Например, имя поля PEREDAL после преобразования пре
вратится в FIL_PEREDA. Но в результате конвертации точно так же будет выгля
деть и имя другого поля - PEREDAB. Тогда окажется, что в файле Filel.dbf содер
жатся два поля с одинаковыми именами, что недопустимо. Конечно, такая проблема
разрешается относительно легко: войдите в систему dBase и там исправьте имя фай
ла Поскольку данная ситуация является частной, здесь она подробно не рассмат
ривается. Но очень важно помнить, что при переносе файлов из одной СУБД
в другую (даже если речь идет о реляционных СУБД) необходимы повышен
ные осторожность и внимание. В следующем разделе будет показано, что описан
ный выше эпизод - не единственный случай, когда могут возникнуть проблемы.
Так или иначе, первый этап импорта файлов завершен (как вы помните, осталь
ные файлы конвертируются точно так же). Можно переходить ко второму шаг}'.
Импорт файлов
Снова откроите окно базы данных. Напомним, что необходимо выполнить след
ющие действия:
1. Из окна Access 2000 открыть базу данных по ее имени (БД ЧЭС). В резул
тате на экране отобразится начальная форма (см. рис. 4.24).
2. Щелкните по кнопке _©| на панели инструментов базы данных. На экра:
появится окно базы данных (см. рис. 3.1).
3. Если начальная форма вам почему-либо мешает, уберите ее, щелкнув г
кнопке закрытия окна.
Теперь в меню базы данных выберите опцию File (Файл), а в открывшемся по.
меню - Get External Data (Внешние данные). Затем активизируйте опцию Impoi i
(Импорт), после чего на экране появится одноименное окно Import. Вам приде
ся пройти по дереву файлов в поисках базы данных в формате DBF, которую к i
получили в результате первого этапа работы (см. предыдущий раздел главы). К а ,
и раньше, возьмем в качестве примера файл Filel.dbf. Чтобы увидеть его либо др\
гие файлы этой базы данных в формате DBF, надо в поле Files of type (Файл!
типа) активизировать или какую-либо модификацию dBase, или опцию All files
(Все файлы). В противном случае файлы формата DBF будут невидимы. Hail
дя нужный файл и пометив его, щелкните по кнопке ^ import J (см. рис. 7.3 i
Если все прошло нормально, то Access 2000 выдаст сооощенис Successfully im
ported 'FILEl' ('FILEl' успешно импортирован), как показано на рис. 7.4. Щели
ните по кнопке ОК.
| Import ВЕЭ1
Look in: _ J dBase j <- (tj ® X CL, Ш - то* -
_J] Filel.dbf
Р^ч _-3]Olad.dbf
•Mr ' J]Wa5te.dbf
^5
\_ 1 *
1
1
^^S='-*'44
File name:
^k£jMi J & • Import
i Wet/ Folders •
^^^ШВЯ U^jjgyeAs^m^bf^ Cancel
шшшшшшшшшш^
Рис. 7.3
Импорт базы донных БД ЧЭС 129
1 Microsoft Access • 1
0K
' '.
Рис. 7.4
Теперь надо закрыть окно Import, и тогда вы увидите, что в окне базы данных
появилась новая таблица Filel (см. рис. 7.5).
Ы Microsoft Access
File Edit View Insert Tools Window Help
m*i
Й' аё-М*?
dbl: Database
Ш\ 3
t^Open k£ Design j^New X
232
Менеджер
Назначение
Приборы, представленные на рынке2
Страны
Типы приборов
фирмы
ai-<*8g^i.i -«•>- d
Рис. 7.5
5-_
130 Конвертирование баз данных из других программных сред
конструктора показано на рис. 7.7. Оказывается, эти поля, которые должны при
надлежать к типу Data/Time (Дата/Время), после преобразования относятся
к типам Text (Текст) или Number (Числовой).
Внесите необходимые исправления. Задайте для полей тип Date/Time (Дата
Время). В разделе Field Properties (Свойства полей) для полей дат F1L_DATAV
и FIL_DATAS установите значение свойства Short Date (Краткая дата), что соот
ветствует изображению даты 09/12/1999, а для полей времени FIL_TIMECH
и F I L T I M E S O - значение свойства Short Time (Краткое время), что соответству
ет изображению времени 12.36. Раз уж мы взялись наводить порядок, давайте зада
днм для свойства Caption (Заголовок) перечисленных полей соответственно значе
ния Дата ЧЭС, Дата сообщения о ЧЭС, Время ЧЭС, Время сообщения о ЧЭС
Путешествия во времени
Теперь посмотрим, что у нас получилось. Перейдя в режим формы с помощью
кнопки • -1 (см. рис. 7.7), вы обнаружите крайне любопытную картину. Поля вре
мени теперь имеют привычные русскоязычные имена и выглядят нормально, если
не считать того, что в большинстве случаев в эти поля введены нулевые значе
ния. (Заметим, что это не ваша вина; информация о времени ЧЭС и уж тем бо
лее о времени передачи сообщения поступает далеко не всегда ) Но взгляните на
поля дат. На календаре базы данных должен стоять 1995 год - год, указанный
Импорт базы данных БД ЧЭС 131
дЩИШ.ЦШШЫЦЦШЛ шп
JsJiU
?- g» С? • S -Й • О.
Description
Field Properties
Default Value
j )ta type det^ oires the kjnd of values that irers L-ЗП 5to>e m the fHd
Validation R jle
Pte-^s H for telpon data type-:
validation Tc*t
Peg jned
Allow 2^0 Length
1ПОе<Н
Unicode Curnpfession
Рис 7 7
в запросе. А в таблице, которая представлена на рис. 7.8, вы видите 2094 год. Этот
забавный факт имеет вполне рациональное объяснение, связанное с тем, что на
зывается несовпадением в исходных установках различных СУБД. Если не задать
заранее точное значение типа поля1 - а для даты и времени это Date/Time (Дата/
Время), то каждая введенная дата будет заноситься в память СУБД в виде число
вого выражения. Оно представляет собой количество дней, прошедших от даты,
принятой за точку отсчета (ей присвоено значение 1). Это имеет определенный
смысл' при необходимости вы сможете выполнять с датами арифметические
Действия. Если вы вводите значение времени, оно сохраняется в памяти в виде
Десятичной дроби, которая равна прошедшей на данный момент части дня. (За
точку отсчета принимаются 12 часов ночи.) А вот исходная дата в каждом се
мействе СУБД может быть разной. Например, в различных редакциях пакета
Office, частью которого является Access, такой датой является 1 января 1900 года.
В версиях языка dBase (одну из которых мы использовали) это 1 января 1800 года.
Теперь вам понятны числа, которые появились в полях дат сразу после конвер
тации файла Filel в Access 2000 (см. рис. 7.6). А вот сутки во всех семействах
СУБД начинаются в полночь, и тут при всем желании трудно придумать что-то
оригинальное.
У яого понятия есть синоним - «формат данных», что, на наш взгляд, более точно Но в настоящей
книге под форматом данных понимается тип расширения файла базы данных
5»
132 Конвертирование баз данных из других программных сред
IP F 1 L E 1 : Table
Дата ЧЭС | Время ЧЭС |Дата сообщения |Вра мя соовщвния|
08/24/2094 12 40 08/26/2094
FIL_RESP
•япо
| FIL_NAMIERE| FIL_MECTO | FIL^ !
1 Российская Ф< 6113200 1132С
7
Cancel
Lock In:
1 3 Replace All
Г Match Case
Search: |AII
3 Г
Рис. 7.9
D Match (Исправить) - Any Part of Field (Любая часть поля). Данная опция
задается стрелкой прокрутки;
J Search (Искать) - All (Везде). Задается стрелкой прокрутки.
После этого следует щелкнуть по кнопке Replace All (Заменить везде). Затем
повторите описанную процедуру для столбца Дата сообщения. В ходе операции
поиска-замены по всем полям этих двух столбцов значение года - 2094 - будет
заменено на 1995. Итоговый вид таблицы после внесенных исправлений представ
лен на рис. 7.10.
Но и это еще не все. Если вы сравните сообщение о ЧЭС, полученное из исход
ной базы данных в среде Clarion, и его изображение после конвертации в Access 2000
(см. выделенную запись 106 на рис. 7.10), то обнаружите одно различие, кото
рое, конечно же, свойственно всем записям. Согласно информации в исходной
базе данных, авария на магистральном трубопроводе произошла 23.03.95 г. В но
вой БД этому событию соответствует другая дата - 24.03.95 г. В чем тут дело?
Детальная проверка объясняет причину такого сдвига во времени: в разных
СУБД заложены разные установки насчет того, как представлять дату 29.02
в високосном году. Это и проявляется при преобразовании базы данных. Там за
несколько лет накапливаются большие массивы информации, и в каждом висо
косном году 29 февраля происходит своеобразная «мутация»: в преобразован
ных записях все даты отличаются от исходных на +1 день. Через 4 года сдвиг
Увеличивается еще на 1 день, и т.д. Как видите, здесь необходима корректиров
ка, и осуществить ее технически несложно; потребуются лишь внимательность
11
Методичность. Просто сравните выбранные вами контрольные записи в исход
ной БД с их отображением в новой, итоговой базе данных и определите границы
п
°Дмассива с конкретным значением сдвига (например, +1). Теперь исправьте
Данные этого подмассива с помощью операции поиска-замены так, как было по
казано выше.
1 34 Конвертирование баз данных из других программных сред
Рис 7 10
Сортировка записей
И, наконец, последняя операция: таблицу базы данных желательно, хотя и не обя
зательно, отсортировать. Операция сортировки записей в Access 2000 очень про
ста. В окне конструктора (см. рис. 7.10) выделите тот столбец, по которому требу
ется сортировать записи. Сама сортировка производится с помощью одной из
двух кнопок: £i] или gjj. Посредством первой из них вы располагаете записи по
возрастанию: для цифровых символов - от 0 до 9, для текстовых - от А до Z. Вто
рая кнопка, соответственно, используется для сортировки записей по убыванию.
Щелкните по одной из кнопок.
Теперь оглянемся назад и посмотрим, что уже сделано и что еще предстоит вы
полнить.
Вы преобразовали и импортировали в Access 2000 один файл (Filel) базы дан
ных БД ЧЭС из СУБД, созданной в среде Clarion. Но, во-первых, вы импортиро
вали только часть информации (данные лишь за 1995 год), а в БД ЧЭС накопле
ны записи с 1990 года. Во-вторых, в БД ЧЭС есть еще несколько словарных
файлов, которые тоже нужно перенести в новую базу.
Что касается первой части вопроса, то можно, конечно, пополнить базу данны4
новыми записями точно так же, как данными 1995 года. Впрочем, для осущеа
вления этой типовой операции вполне достаточно обычного SQL-запроса п.
Импорт базы данных Контроль ЧС 135
S ^ B # Й У P ' * Ь - с£ ' =g м- о-
у - s # a v- <f / ' • *1 И ъъ М •« * © -Й1 - О-
1Гм FILEl: Table • -|П|Х| - J
Виды ЧС |Нанм9ноыни'| Дата ЧЭС [ Врем* ЧЭС [Дата сообщания[Врамл сообщения! Код рвспуб пм[ Наймем]
• 10205 Пожар в хило!.. Jii/02'iq% 12/30/1699 00 00 11 Росси - '
10302 Аварии на трак 01/02/1995 00 00 01/02/1995 00 00 11 Росси
10205 Пожар на узле 01/02/1995 12/30/1899 00 00 11 Росси
20307 Сильный дожд 01/03/1995 00 00 12/30/1899 00 00 0
10101 Сход вагонов i 01/03/1995 14 55 12*30/1899 00 00 11 Росси
20307 Сильный дожд 01*3/1995 00 00 12/30/1899 00 00 0
10301 Отравление лк 01/05/1995 12/30/1899 00 00 11 Росси
10301 Пишевое отраЕ 01/05/1995 12/30/1899 00 00 11 Росси
10201 Пожар в гараж 01/06/1995 12/30/1899 00 00 11 Росси
10205 Пожар в здани 01/07/1995 12/30/1899 00 00 11 Росси
10205 Пожар в жилок 01/07/1995 12/30/1899 00 00 11 Росси
10201 Пожар на Teppi 01,08/1995 12/30/1899 00 00 11 Росси
10101 Авария грузов! 01/09/1995 00 0U 01/11/1995 00 00 11 Росси
10107 Дорожно транс 01/09/1995 12/30/1899 00 00 11 Росси
30102 Заболевание л 01/11/1995 12/30/1899 00 00 11 Росси
10201 Пожар на шве! 01/11/1995 12/30/1899 00 00 11 Росси
10802 Авария на вод 01/13/1995 12/30/1899 00 00 11 Росси
10205 Пожар в клубе 01/14/1995 12/30/1899 00 00 11 Росси
10201 Взрыв в катет 01/18/1995 12/30/1899 00 00 11 Росси
10803 Авария котла к 01/19/1995 12/30/1899 00 00 11 Росси
30102 Групповое эаб> 01/19/1995 12/30/1899 00 00 11 Росси
[1 10107 Дорожно транс 01/19/1995 12/30/1899 00 00 0 Росси
I 10301 Отравление лк 01/19/1395 12/30/1899 00 00 11 Рогси
i 1Л1Г1Я П п п л ^ п - т п я н г ni/1Q/iqQ^ ОПП/1Я99 пппл 11 Рпггит]
Ci-.orf " I - I I 1 • | ы | > » 1 of 646 •1
I •I
Рис. 7 11
присоединение, о чем будет рассказано в главе 9. (Правда, вам все равно придется
заниматься устранением временного сдвига.)
Импорт словарных файлов производится так же, как перемещение файла Filel.
Поскольку файлы подобного типа не содержат полей даты и времени, никаких
дополнительных проблем здесь не возникает.
В завершение работы надо привести базу данных в привычный вид. Ограниче
ния на длину имени поля практически отсутствуют, поэтому дайте всем полям
в файлах русскоязычные названия. Вы уже начали делать это немного раньше -
в разделе «Поля даты и времени» - с помощью поля Caption (Заголовок) кон
структора таблиц. В своем заключительном варианте таблица Filel представлена
на рис. 7.11, а окно базы данных - на рис. 7.12.
в ^^ Щ MYI4
u
=i И И Ш
Щ
REGION
TIPCHS
_-, ЯШ
^ ЧЙР Щ UtCRCHS
«•-J*
•Ш Менеджер
^ l| ЦЩ Страны
1
Ш Типы приборов
ШВ Фирмы
<1 1 >
Рис. 7.12
Li I
фалл
И НИМИ
Правка Поиск
—
Спраьм
гн^п
Республика Кони
Усинск
~э
ДяТЙ ЧС : 22/05/97
А
Рис. 7.13
2. Войдите в меню базы данных и задайте ряд команд: Файл => Внешние дан
ные => Импорт.
3. Найдите файл ES_oper.dbf в исходной БД (см. рис. 7.15). Не забудьте ука
зать в этом окне тип выбранного файла.
4. Щелкните по кнопке импорт |.
5. В ответ на сообщение Выполнен импорт ES_oper, щелкните по кнопке ОК.
6. В окне базы данных появится новая таблица ES_oper.
Если вы теперь откроете таблицу ES_oper, (см. рис. 7.16), то увидите, что
даты в исходной и в импортированной базах данных совпадают и отображаются
-оздать
[Готово NUM
Рис. 7.14
1 38 Конвертировоние боз данных из других программных сред
Импорт
~3 т\ &\тЩ --ГИГ
Имя
J ] Classp.dbf
1 Размер 1 Тип
1 Кбайт DBF
j Изменен
10/16/19..
1 d Импорт 1
По умолчанию устанавливаются не все типы файлов. Для их добавления служит кнопка "Выбор компонентов" в
разделе "Доступ к данным" при устано&г.е. Другир типы данных есть и в Ofhce 97 V'aluPack.
Рис. 7 15
Рис. 7.16
Резюме
1. По мере появления новых, более совершенных СУБД все актуальнее стано
вится проблема использования данных, которые накоплены в информаци
онных банках предыдущих, в том числе и морально устаревших версий.
2. В решении этой проблемы на сегодняшний день наметились два основных
направления:
- применение конвертеров, которые преобразуют данные из одного форма
та в другой. Наборы таких конвертеров, хотя и не всегда достаточно пол
ные, есть практически во всех СУБД, и пока это основной путь решения
проблемы;
- использование технологии ODBC (Open Database Connectivity). ODBC -
открытый интерфейс доступа к базам данных из прикладных программ
Он позволяет работать с документами «чужих» для конкретной БД фор
матов.
В настоящей главе рассмотрен первый способ решения проблемы.
3. Как показывает опыт, при конвертировании баз данных, кроме собственно
преобразования форматов СУБД, могут возникнуть еще две трудности:
- несовпадение кодов словарей;
- различие между форматами даты и времени в разных БД.
4. В процессе конвертирования, который описан в настоящей главе, необходи
мо преобразовать в программную среду Access 2000 базу данных БД ЧЭС,
сформированную в среде Clarion 3.0, и базу данных Контроль ЧС, разрабо
танную в программной среде FoxPro 2.5. Третья БД в этом интегрированном
банке данных - Контрольно-измерительные приборы - создана непосред
ственно в среде Access 2000. В результате все эти базы данных должны функ
ционировать совместно.
5. При переносе файлов из одной СУБД в другую необходимы повышенные
осторожность и внимание, так как различие в исходных установках, поло
женных в основу той или иной СУБД, может привести к самым неожидан
ным коллизиям.
Глава VIII
Общие вопросы
программирования
в Access
Язык SQL
Язык SQL - это внутренний язык Access 2000, на котором формулируются запро
сы. В принципе SQL используется не только в среде Access 2000; он вообще широ
ко применяется в работе с реляционными базами данных. Поскольку сегодня
142 Общие вопросы программирования в Access
Макросы
Макросы, или макрокоманды, представляют собой заранее созданные списки дей
ствий - программы, которые выполняются после щелчка пользователя по кнопке
или после других определенных действий (возникновение ошибки, открытие, за
крытие элемента управления и т.д.). Каждое действие макроса выполняет опреде
ленную операцию: например, установка значения, открытие или закрытие фор
мы, диалогового окна и др. Макрос предназначен для объединения нескольких
различных действий, представляемых макрооператорами, в одну процедуру, ко
торая легко может быть вызвана. В отличие от SQL, макрооператоры тесно связа
ны с командами данного программного продукта, в частности Access.
В макросах все команды обычно выполняются по очереди. Исключением явля
ется ситуация, когда в макрос введено некоторое логическое условие, которое
может изменить последовательность операций.
Макрос в среде Access состоит из перечня действий, которые в пошаговом ре
жиме выполняются в случае наступления определенного события. Допустим, мак
рос запускается, когда пользователь щелкает по командной кнопке, закрывает
форму или активизирует панель управления текстовым документом, открывшим
ся в окне. Макрос может выполняться также при выполнении тех или иных усло
вий. Например, условные макросы могут отображать окно сообщения, если
вводимые в поле данные имеют определенное значение. Макросы создаются
в специальном окне макросов - Macro Builder (Построитель макросов).
Сопоставляя возможности макросов и языка SQL, отметим, что область при
менения первых заметно шире. Макросы могут использоваться для ситуаций,
Сравнительная характеристика языков программирования в Access 143
Процедуры VBA
Как уже отмечалось, макросы обычно представляют собой только линейную по
следовательность действий. Но на практике этого недостаточно - требуется весь
аосенал средств программирования: ветвления и циклы, вызов вспомогательных
процедур и передача параметров, организация диалога с пользователем, проверка
и изменение состояния различных элементов документа и т.д.
По сравнению с SQL и макросами язык VBA является более современным, раз
витым и сложным, поэтому может использоваться для выполнения любых дей
ствий в ходе работы приложения. Данный язык включает в себя объекты, семей
ства, события, методы, процедуры, операторы и свойства. Программа VBA - это
процедура, которая выполняет определенную операцию или рассчитывает и воз
вращает значение. Кроме того, очень важно, что VBA - язык программирования,
управляемый событиями. Иначе говоря, с помощью программы VBA можно уста
новить необходимую реакцию объекта Access на определенное событие. Итак,
язык VBA позволяет сделать все, что выполняют макросы, и даже существенно
больше. В принципе с помощью VBA можно создавать и запросы. Однако специ
ализированный язык, каким является SQL, приспособлен для этого значительно
лучше. (Ниже будет показано, что использование языка SQL в самом деле замет
но упрощает построение запросов.)
Существуют два вида процедур VBA: подпрограммы (subprocedures) и функции.
Подпрограммы выполняют одну или больше операций, однако не возвращают
значение. Функции не только выполняют операции, но и возвращают значение.
В справочной системе Access вы найдете множество примеров процедур событий.
Эти процедуры можно скопировать и связать со свойствами события элемента
управления. Затем вы можете изменить код и имена переменных, чтобы они соот
ветствовали вашему приложению. Для создания собственных процедур исполь
зуйте Code Builder (Построитель программ).
После проведенного краткого сопоставления сформулируем некоторые реко-
(ендации по выбору языка программирования.
Cofiiii rue - это действие, которое может инициироваться пользователем, оператором VBA или самой
сие i смой.
144 Общие вопросы программирования в Access
резюме
1. Access предоставляет пользователю возможность работы с тремя языками
программирования:
- SQL (Structured Query Language) - структурированный язык запросов.
Это формальный стандартизованный язык высокого уровня, содержащий
средства непроцедурной (не требующей программирования) специфика
ции запросов;
- макросы;
- VBA (Visual Basic for Applications) - объектно-ориентированный язык
программирования.
2. Каждый из этих языков занимает определенную функциональную нишу.
В настоящей главе был приведен краткий обзор возможностей этих языков
и даны общие рекомендации по их использованию.
Глава I X
Программирование
на я з ы к е SQL
• Типы запросов
• Запросы на выборку
• Создание объединенной выборки
• Запрос на удаление записей
• Удаление дублирующихся записей
• Перекрестный запрос
• Работа со средой Access 2000 без ее инсталляции
ТИПЫ запросов
Запросы являются основным средством просмотра, изменения и анализа инфор
мацни, которая содержится в одной или в нескольких таблицах базы данных.
В этой главе, а также в главах 10 и 11, рассматриваются запросы, относящиеся
к предметной области, обсуждаемой в настоящей книге.
Перечислим важнейшие типы запросов:
• select query (запрос на выборку);
Q action query (запрос на изменение);
• SQL query (SQL-запрос).
Гипы запросов 147
Запросы на выборку позволяют извлечь информацию, рассчитать показатели
И создать перекрестные ссылки, но не изменяют данные в таблицах. Запросы на
изменение дают возможность корректировать информацию, которая содержится
в таблицах.
Существует четыре вида запросов на изменение:
j make-table query (запрос на создание таблицы) - создает новую таблицу на
основе данных, которые уже размещены в одной или нескольких таблицах;
j delete query (запрос на удаление) - удаляет все записи из одной или не
скольких таблиц на основании критериев, заданных пользователем;
• append query (запрос на присоединение) - добавляет целые записи или
только указанные поля в одну пли больше таблиц;
• update query (запрос на обновление) - изменяет данные в существующих
таблицах на основании информации в окне конструктора.
Эти запросы могут формироваться в окне конструктора запросов.
SQL-запросы предназначены для решения более сложных задач и не создаются
в названном окне, а кодируются с использованием операторов SQL. Ниже пере
числены варианты SQL-запросов:
3 union query (запрос на объединение) - совмещает в одно поле поля, кото
рые расположены в одной или нескольких таблицах или запросах;
J pass-through query (запрос к серверу) - позволяет забирать информацию
непосредственно из ODBC-таблиц (ODBC - Open Database Connectivity,
средства работы с открытыми базами данных), так как напрямую связыва
ется с сервером, а не с таблицами системы Access;
• data definition (запрос па определение данных) - вносит изменения в опре
деление таблицы, то есть позволяет формировать и удалять таблицы, добав
лять в них поля и создавать их индексы;
• subquery (подзапрос) - создает оператор внутри существующего запроса на
выборку или изменение. Подзапрос выбирает подмножество записей, уже
извлеченных главным запросом.
Выполнение любых задач, связанных с таблицами, подразумевает использова
ние языка SQL. Запросы первых трех типов, перечисленных выше, встраиваются
в средство просмотра SQL в окне запроса. Чтобы сформировать подзапрос, введи
те команду SQL SELECT в строке Критерии (Criteria) сетки Design (Конструктор).
Запросы в обеих редакциях Access (97 и 2000) могут создаваться как с помо
щью конструктора (Query Design), так и посредством мастера (Query Wizard). На
наш взгляд, конструктор удобнее: во-первых, его операции оформляются более на
глядно, во-вторых, из конструктора легко переходить к инструкциям в форме SQL
и наоборот. Тем не менее на конкретном примере будет показано, как формиро
вать запрос при помощи мастера.
Однако, как вы помните, есть и третья форма представления запроса - ин
струкции SQL. Между запросом, сформированным посредством конструктора,
и инструкцией SQL существует жесткая и однозначная связь. Поэтому в дальней
шем мы будем показывать для каждого создаваемого запроса соответствующую
ему инструкцию SQL, а также подробно рассматривать операторы, которые вхо-
Дяг в ее состав.
148 Программирование на языке SQL
Запросы на выборку
Простые запросы
Под простыми запросами будем понимать запросы, ограниченные одной табли
цей и не содержащие каких-либо критериев, условий, фильтров и т.д. Пример та
кого запроса - вывод какой-либо таблицы полностью, пусть это будет таблица
Страны. Чаще всего такая операция необходима, когда надо просмотреть какой-
нибудь список - допустим, словарь. Итак, сначала сконструируем простой запрос
с помощью мастера
Tables/Queries
|ТаЫе Страны d
Available Field?: Selected Fields
Код
Страна
ШИШЕ
Рис 9 1
Запросы на выборку 149
Ы Microsoft Access Щ]
File Edit View Insert Format Records Tools
i Window Help
Ы, - 0 # B. v- • -.
1
lis Страны Query: Select Query HIsID ^
Код | Страна | Примечания
01 Страна не укч:
• 02 United Kingdom
03 USA
04 Германия
05 Италия
06 Россия
07 США
08 Финпяндия
09 Франция
10 Швейцария
* А
Рис 9 2
во вкладке Queries (Запросы) окна базы данных появится имя вновь созданного
запроса - Страны Query.
Close
ES OPER »
Filel
MYM
REGION
REGION _D
TIPCH5
UKRCHS
Менеджер
Назначение
Приборы, представленные на рынке2
Типы приборов
Фирмы
Рис 9 3
Страны T1
s_GUID A
sjjneage
Страна
Примечания _^
dJ ^
Рис 9 4
Перед вами та же БД, что была показана на рис. 7.17, только там открыта вклад
ка Tables (Таблицы), а на рис. 9.7 - вкладка Queries (Запросы). Дальше есть два
варианта. Вы можете открыть запрос из окна базы данных или щелкнуть по кноп
ке { |. В обоих случаях произойдет запуск запроса, и на экране появится таблица
(см. рис. 9.2).
Запросы но выборку 151
Ы Microsoft Access шз
File Edit Vie, I n » it Cjuei^ Ton I; Window Help
D \3 У X 4n IB Ь - сю - й' °S -M - (*) -
г5 All й
1
lis Queryl: Select Query шш 3
Страны
s_GUID ~3
1
sjjneage
Код
Страна
Примечания _^
Field
an Страна Прнм»=-чзнич —
Table LTpaHti Страны Страны —
Sort
Shov-1 0 0 0
riteria •
or
-1 1 >г
d
Рис 9 5
Microsoft Access
Yes No Cancel
Рис 9 6
Е
Щ о р е п j ^ Design cflNew X е 7-"|:::Г YA
# fffiWffif
Рис 9 7
»
1 is1 Query 1 : Select Query • _1пЫ_il
SELECT Страны Код, Страны Страна, Страны Примечания
FROM Страны
WITH OWNERACCESS OPTION,
Рис 9 8
Lh.
ES_OPER
Пострадало E-cercclJ
Б том числе рамем
Рамено детей |
Б том числе погиб
Погибло детей _jj
LJJ
1
J
Field: Е: том чиспе погиб п —
Table: ES OPER —
Total: ^^^^^^^^
Sort: I
Show: А>лЭ П П
Criteria: flin
—
or: Мах
Count ±>r
StOev
Var
First .
«1 1 •!
Рис. 9.9
Рис. 9.10
Уже показанным раньше способом перейдем к инструкции SQL (см. рис. 9.11).
По сравнению с инструкцией SQL, изображенной на рис. 9.8, здесь появилось
Два новых элемента - AS [SurnOf В том числе погибло] и GROUP BY ES_0PER [В том числе
погибло]. Смысл первого из них состоит в следующем. В Microsoft Access имена
полей (здесь - поле В том числе погибло), указанные в режиме SQL окна запроса,
используются в режиме таблицы в качестве заголовков столбцов. Чтобы вывести
в
режиме таблицы другие имена столбцов (в нашем примере - SumOf В том числе
156 Программирование на языке SQL
Ш Microsoft Access
| File Edit Viev Insert Query Tools Window Help
пшш
[га - и
в1 Query2 : Select Query
ШЗ
ELECT E'j_OPER.[B топ числе погибло], Sum(E3_OPER.[6 том числе погибло]) AS
[SurnOfB том числе погибло]
FROM ES_OPER
1
GROUP BY ES_OPER,[B том числе погибло]
WITH OWNERACCESS OPTION;
Рис. 9.11
Кодфц*ы
Название фир
Код страны
Адрес j j
I ,. i
В Microsoft Access
File Edit View Insert Format PPC jfds X°oU Window Help
~3
Рис. 913
d
J"
Рис. 9.14
Ы Microsoft Access шш
! File Ed,t Vie*" Inneit Query Tools Window Help
ОаШ 3
Filel 1
Бидь ЧГ =J
Наин еновани*
Дата ЧС
БренчЧС zi
bJj
J
Field:
Пострадало Погибло Характеристика Ч - Материальный уще Мате—
Table:
Sort:Ш______ Filel Filel Filel
*т-
Show;
.
Criteria— 0 0 0 0
J.ike """нефтепровод*"
or.
^
.i
Рис. 9.15
160 Программирование но языке SQi
Ы Microsoft Access
File Edit View Insert Format Records Tools VV ndow Help
D e; у a a v- ь- ал - • *S -& - LTJ „
id - у # a ^ , , _ 1.
Рис. 9.16
на выборку
^ Ф У и [ЬияыЧС], File 1.[Наименование ЧС], File 1.[Дата ЧС], File 1.[Время ЧС], File 1.[Дата сообщения], __\
- i l , r - ^ г о п б щ е н и я ] , File 1. [Код республики], File I .[Наименование республики], Filel .[Код области], __\
* |el.[KMHai
' n r i населенного пункта], File 1.[Название области], Filel.[Название района], File 1.[Название
Fl
пиквндации пос.
I d
Рис. 9.17
ВИЛЫ ЧС
Н.зиисиое^мИ!
Д«таЧС
Время ЧС _-j
JU
Jj
Field Название области Наэеэние г. эипна Н^Еание смгекта Код ведомства Характеристика Ч
Tabic Filel Filel Filel Fllel Filel
Sort йеГ—q
Show
Criteria
0
Тюменская область
0 0 0 Н
Like "нефтепровод*
—1
pr
or
.1
.
Рис 9 IS
У Microsoft Access
Fie Edit View Insert F j m r FV u i d i lools Wniduvt Help
• G? H § й ^ ъ • ас • »sa-ej.
^- у § a ? £1 51 v ; Ъ *4 »- * © -a • (?).
is1 Query4 : Select Query IFP
Виды ЧС | Наименован^ Дата ЧЭС | Врамя ЧЭС |Дата сообщения! Врв мя с о о б щ е н н л | Код распухли Н
10109 Авария на мап 04/06/1995 00 00 04/07/1995 00 00 1 р
^ p j ) e l [наименование ЧС] ( Filel [Дата ЧС], File) [Время ЧС], Filel [Дата сообщения], File 1 [Бремя сообщения], Щ
ЕиДЬ 1
ЛЕОj Filel [ '" ^1 р,|ё| [наименование республики], Filel [Код области], Filel [Код населенного пункта], Filel [Название области], _J
..од р«:пус г111^ *•, F | j e l [название объекта], FiJel [Код ведомства], File! [Название ведомства], Filel Пострадало, Filel Погибло,
=jel [^36Эние ^ t ' ^ H B C ] , FMel [Материальный ущерб (колнч)] Filel [Материальный ущерб (натур)], Filel Последствия,
:|el [характерис и д и м ф ^ р м а ц и я ] | p,|ei [Необходимая помощь] Filel [Работа по ликвидации последствий] Filel Абонент, Filel [Ki
1А
*' т ^Т<е7поДписа Л , Filel [Название города]
sdOWrtel г н , ] в ание области])» Тюменская область") AND «Filel [Характеристика ЧЭС]) 1*«''нефтепровод* ))
Щ К « 5 5 OPTION,
J-I
Рис 9 20
них помечена словом OR (Или), как показано на рис. 9.21. Количество таь-.
практически не ограничено, поэтому составной критерии может включап ДОГ]
точно большое количество операндов. Запустив запрос на выполнение вы
Пс
чите таблицу (см. рис. 9.22). Обратите внимание, что она похожа на резулГ '"Л
щую таблицу, представленную на рис. 9.16, когда вы сформировали запрос с
критерием. Однако в новой таблице отобрано уже не 18 записей, а 21, и спел '
рийных объектов назван, в частности, бензопровод. '<Е
EJ Microsoft Access
File Edit View Insert Query Tools Window Help
aa- C? °S •& - (3 .
Гп -!H '1 g - ! °nl All fi\:> ©-а- д .
^^^™^^™
i? QueryS : Select Query
"•^"•Ч-^Т*]
FUel
Виды ЧС
Наименоеанш
ДатаЧС
Бремя ЧС _J
IU f
Field. Нагеание ведомсте Пострадапо Погиб по Харэктеристиг а Ч г " ' Патер lantHtin ущ* f 1этери.зпьнь • дг-
Table. Filel File 1 Filel Filel Filel Filel
5ort:
Show: 0 0 0 0 0 0
Criteria: lihe """нефтепровод*"
or: J.if-£ '""бензопровод*"
Lih<е- "*мазутопроеод*"
Ое "'продуктопровод* 1
1
1
.!.! .1
4 -1
Рис. 9.21
Наконец, открыв инструкцию SQL (см. рис. 9.23), вы можете лишний р:т° е '
диться: все изменения, которые внесены вами в логические схемы критериев, точ
но отображаются в предложении с ключевым параметром WHERE.
Надо сказать, что структуры критериев бывают самыми разнообразны \ HI He
при их построении вам потребуются точность и аккуратность, чтобы отбор '•'
сей производился правильно. Например, у критериев, выведенных на pHL
неизменяемая часть слова - "*опровод*". Исключением является лишь *нет
вод*". Казалось бы, можно сократить условие в той его части, где вводятся кр
рии. Чтобы при этом исключить записи, связанные с авариями на газопр
сформулируем условие следующим образом:
("•нефтепровод*" OR "*опровод*") AND Not "«газопровод*"
Если вы введете такое условие в запрос, а затем выполните его, то
действительно отберет записи, удовлетворяющие заданному критери •
ко в их число попадут и сведения об авариях, связанных с повреждени •
провода или электропроводки. Поэтому учтите, что похвальное стр
3anp°Cbi
на выборку 65
Ы>
In^tt Fgi mat Ptcorcte Tools Window (Help
•&•' ® .
Рис. 9.22
Ш Microsoft Access мы
File Edi- ndow Help
• •E gl. - Ёг в -a • L-j.
? QaeryS: Select Q u e r y
Inlx-
UECT Filel [EiutiHC], Filel [Наименование ЧС], Filel.[Дата ЧС], File 1.[Бремя ЧС], Filel.[Дата сообщения], Filel [Бремя
|Р!ЬГ Н М Я ^ Fl ' el ^ К о л РеспУ^1ЛИКИ]» Filel .[Наименование республики], Filel .[Код области], Filel .[Код населенного пункта],
=£! п ? 6 3 " 1 * о с ™ с т и], Filel.[Название района], Filel .[Нагванме объекта], Filel .[Код ведомства], Filel [Название ведомства],
^ -1 Пострадало, Filel.Погибло, Filel.[Характеристика ЧЭС], Filel,[Материальный ущерб (колич)], Filel [Материальный ущерб
Fl e
\rr ' 1-Последствия, Filel.[Дополнительная информация], Filel.[Необходимая помощь], Filel.[Работа по ликеидаиии
'ROMN™"^' F ' l e l ' A6 ° hKHT < F l l e l • [ К о д абонента], Filel .Подписал, Filel .[Название города]
Л
Рис. 9.23
Ы Microsoft Access
j l File Edit view Insert nuety Toul=. W» ulu ' Help
ЕмдыЧС —
Нэименог?ани<
Дата ЧС
ЕрсмяЧС _-J
_L
Ы
Рис. 9.24
OK Cancel
Рис 9.25
выборку 167
.
гз
тГс|1| ГЁНДС|Ч ] FilH [Наименование ЧС], Filel.[Дата ЧС], File 1 [Бремя ЧС], File] [Дата сообщения], Filet [бремя сообщения], Filel
~^~(\!*#у\1 Filcl [Наимен:ЕзНие республики], Filel.[Код области], File] [Код населенного пункта], Frlel [Название области], Filel [Назвг
ре1 пу
: 1 f-jgj [Кззеэнне объекта], Filel [Код ведомства], Filel [Название еедомства], Filel Пострадало, Filel Погибло, Filel [Характерист
^t-Tpiiel [Матерпэпьный ущерб (колич)], Filel (Материальный ущерб (натур)], Filel.Последстеия, Filel [Дополнительная информация], -
-if\ [необходимая помощь], Filel [Работа по ликвидации последствий], Filel Абонент, Filel [Код абонента], Filel .Подписал, Filel .{Наэвак-
-орода]
WHERE (((Filel [Н^Еоние области])=[Бведнте область]) AND ((Filel [Характеристика ЧЭСр Like ""нефтепровод*"))!
AITHCWNERACCES5 OPTION,
,1 _ _ I А
Рис 9.26
Q Microsoft Access
j File Edit View Insert Query Tool: Window Help
Фирмы Страны
5 GUID -^J
Кодфц*** s_Lmeage
Издание фир Код
Код страны ssT Яг5ЯИИ
Адрес _^J Примечания _ J
Ш _tT
Рис. 9.27
D cs В a a v; es ь- °§-м~ »
м- s §ЙУ ш Z-I1\ ъ ©V
1
lis QueryS : Select Query ^^^
Название фирмы | Страна
pAO "Цвет" Россия
1
Нефть-Газ-Наука Россия
НПП "ЭКОНМКС" Россия
ЭКОХЕЛП ИНСТРУМЕНТС Россия
АО "ЭКРОС" Россия
Петербургский институт ядерной физики РАН Россия
ОКБ ТЕСТ фирмы "Аналитические приборы" Россия
ГЕОХИ РАН Россия
«1
*
1 л
Рис. 9.28
IШ Microsoft Access
! File Edit View Insert Query Tools Window Help
iИ • H S - ! • -
1
is QueryS : Select Query
3.ELECT Фирмы.[Ha:-.E.dHhe фирмы]. Страны.Страна
FROM Страны INNER JOIN Фирмы ON Страны.Код = Фирмы.[Код страны]"
WHERE (((Страны.Страна)="Россия"))
WITH OWNERACCE5S OPTION;
Рис. 9.29
Ы Microsoft Access
File Edit View Insert Quel у Tool; Window Help
w
All „ й" \ © ^
Рис 930
В Microsoft Access ЖШ
File Edit \Vvv Ii-ce/t Fur mat R^co/di l o o k Window H?lp
51JJ ;, -41 - О .
a
аБЕЗШЕНЕЯЗЯ Гт
Назначение Тип Номер мода пи
HU н-.-иение н* у, а'лни ирогптиграф Odyssey High Performance 1С Sys
Н-значение не указано хроматограф Odyssey Basic 1С System
Н-лначение не указано хроматограф SRI Gas Chromalograph 8610C
11 морение солености проводимости и температуры воды Многпорам Измер YSI 30 SCT Meier
H-i значение не указано Фотометр YSI 9000
И пррение содержания хлоридов аммония, нитратов, Hmpt Фотометр YSI 9100
(1 морение параметров грунтовых вод Многпорам Измер YSI 3000 T-L С Meier
И пррение мутности м температуры Изм Мутности YSI 80 Turbidity Meter
Одновременное изменение растворенного кислорода соле»- Многпорам Измер YSI 85 DO ^Conductivity Meter
И мерение содержания кислорода Изм Раствор 02 YSI 55
И мерение растворенного кислорода, температуры провоД1 Многпорам Измер Grant/ YSI 3800
Д пговременный мониторинг растеоренного кислорода пров Многпорам Измер YSI 6000
11 мерение растворенного кислорода Изм Раствор 02 YSI 50B
(I мерение растеоренного кислорода Изм Рэстеор 02 YSI 52
П..мерение температуры проводимости, кислотности и раст! Многпорам Измер YSI 800
11 мервние проводимости, кислотности и ионов 7 е почренж Многпорам Измер YSI 3560
И.мерение кислотности, проводимости, редокс потенциала Многпорам Измер YSI Логгерная с ма контроля
Измерение кислотности проводимости редокс потенциала. Многпорам Измер YSI Логгерная с ма контроля
Назначение не указано Флюориметр
Record м | . 1 ["'"^ •1*МИо17е iL J
Рис 931
Ш Microsoft Access
ШЕ\
File Edit w Insert Quer Icr ЬИр
• c# В
•- гЭ-
Ц.^,.Ш.Н.!ЛЯ!ЯЯ
ма
Назначение
.^Generation
Приборы,
Hi Мир МОДсЛк.^!
Фирмы
Кодф»фМ4 - l l
Менеджер
4- л
1
тегория Название фиг; 1 Номер
.Jjneage Примечание 1 —* Кпд страны Код фирмы
Код J Примечание! ндрес —' IЗМИЛИЯ —1
Назначение Ч Гол по к а г а т • ] Адрес 2 zl Ииа zi
Типы щи I. . Страны
,_GU1D А
••^Lineagp "Ьеп_Примеча1
Код типа s_Generahon __
Тип
Примечания 5 Jjneage _^J
ш А
FHd На>начемир_ Нон^с мод Tin
7аЫе Назначение Типы пр'иаорсв ПрИГиры, Пр-гДСТЗЕ Менеджер
Lite "кислотн*
«I I
.п
Рис 9 32
172 Программирование на языке SQL
- DISTINCTROW;
- ТОР.
ПU Ъ M
о.
luerjo: Select Query 1-laM
Назначение Номер модели I Фамилия
_L
[^онитиринг кислотности, прсеоднммсти, р Многпирям 11.мер YSI 1-ИГТРМ.Э мониторинга Флеминг
Измерение кислотности, проводимости, р; Многпорзм Из мёр Анализатор роды Флеминг
Измерение кислотности, проводимости, рг Иногпо|им Измер Измеритрпьная система Флеминг
Измерение кислотности, проводимости, ре Многппрям И"-м^[ YGI Логгерн.^я с ма контропя Флеминг
' 1 " 1 » 1 of 4
Рис 9.33
10
is" Оаегуб : Select Queer Г№1
•ELECT Назначение Назначение, [Типы приборов] Тип, (Приооры, представ пенные на рыике2] (Номер модели], Менеджер Фамилия
FROM (Страны INNER JOIN (Фирмы INNER JOIN Менеджер ON Фирмы [Код фирмы] = Менеджер [Код фирмы]) ON Страны Код = Фирмы [Код
страны]) INNER JOIN ((Типы приборов] INNER JOIN (Назначение INNER JOIN [Приборы, представленные на рынке2] ON Назначение Код =
[Приборы, представ ленные на рынке2] [Код назначений]) ON (Типы приборов] [Код типа] = [Приборы, представленные на рынке2] [Код
типа]) ON Фирмы [Код фирмы] = [Приборы, представленные на рынке2] [Код Фирмы]
WHERE (((Назначение Назначение) Like "*кислотн*") AND ((Менеджер Фамилия )="Флеминг"))
WITH OWNER ACCESS OPTION,
d
Рис 9.34
Создание объединенной выборки 173
Обычно слово SELECT является первым словом инструкции SQL, поскольку
большая часть этих инструкций SQL относится к типу SELECT или SELECT. INTO.
Минимальный синтаксис инструкции SELECT таков:
SELECT поля FROM таблица
Чтобы были отобраны все поля таблицы, добавьте символ звездочки («).
Если несколько таблиц, включенных в предложение FROM, содержат одноимен
ные поля, то перед именем каждого из таких полей следует ввести имя таблицы
и оператор «точка» ( ).
Предложение с ключевым словом FROM описывает связи между таблицами. По
мере усложнения этих связей все более важную роль играет конструкция INNER
JOIN ON, которая имеет следующий синтаксис:
FROM таблица_1 INNER JOIN таблица_2 ON таблица_1 лоле_1 оператор таблица_2.поле_2
Ниже перечислены аргументы операции INNER JOIN:
Q таблица_1, таблица_2. Здесь указываются имена таблиц, записи которых нуж
но объединить;
Q поле J , поле_2. Задаются названия объединяемых полей. Если они не явля
ются числовыми, то должны быть однотипными и содержать однотипные
данные. В то же время объединяемые поля могут иметь разные имена;
Q оператор. Выбирается любой оператор сравнения (символы, входящие в каж
дый оператор, заключены в прямые кавычки):
- ' <,";
- '>, ' ;
- ' < = , ';
- >=,";
- ' О".
Параметр WHERE содержит условия отбора - критерии, вводимые в запрос, - и име
ет следующий синтаксис:
WHERE условие отбора
^
Field Нсг.е^ние r f п э г т н *арэгтер| Tin <,Ч~-"С ЕгемяЧС Дата «общения бр^мя г плющения Код per nvGOHFM
Table FiH File,
Ffcl FH Filel P.lel —
Surf I
Show 0 0 0 0 0 0
nteria Тюменгкая о&пагть Lil^ "нефтепровод*
or
<j i •Г
Рис 9 35
I B Microsoft Access •
IBHBHJnM
File Edit View Insert Fci roar PeL и d T O L !Ь \Ajndnyv hjp|p
• i^ у # & v- © Ь - ^ - eg Л1 - О -
id - н # Ei vc ca П 51 v
;^ M •*« B^- 0 .
Виды ЧС | Наименование Дата ЧЭС | Название оСл| Характеристика ЧЭС j Время ЧЭС [ Чэта сообщвния| В
• 1U1IJJ ^ЕНрИЯ на М'аП U4/T6/19'J5 Ткменская об г В 55 км севернее г Ур< шш 0-1.13Г/1У95
1010Э Авария на м^п 04/20/1995 Тюменская O6J UJ за ветхости произои. 00 00 04/25/1995
10109 А&ария на wan 04/25/1995 Тюменская O6J Неустановленный тракт 00 00 04/26/1995
10109 Авария на мап 04/25/1995 Тюменская O6J В Нижневартовском pai 10 30 04/29/1995
10109 Порыв нефтепр 06/25/1995 Тюменская O6J ВО время экскаваторно 00 17
10109 Авария на мап 07/17/1995 Тюменская O6J На комплексном сборне 03 15 07/17/1995
10109 Авария на мзп 12/14/1995 Тюменская об; Произошел порыв напо 04 30 12/16/1995
10202 Порыв и поч'т[: 02/11/1995 Тюменская ofj Из за коррозии металла 12/30/1899 J
*
Re ,o,d н| 41 1 • | и | . . | о. a -I I
-ч
'I I As
Рис 9 36
Make Table ш
Make New Table OK
Table Name рЯЗВЁЁП ~3 Cancel
<• Current Database
С Another Database
Рис 9 37
П.-[М1^'Г4 • !°г
i? Query7 : Make Table Query BSD
Filel
*
1
Виды ЧС 4
Наименовани<
Дата ЧС
Время ЧС J
^
Field Дата ЧС Название области Характеристика Ч Время ЧС дата сообщения Время сообщения —
„Table Filel Filel File! Flel Filel Filel —
Sort
Show 0 И 0 13 0 0
Criteria Тюненская область Lite *нефтепроеод*
or
•1 1 .г j j
Рис 9 3S
^
Field Tefcr сообщения Дата обноеяения и Признак коктрдгтя населенный пункт—
Table ES OPER
Sort
Show
Criteria Like Тюменск* And Like ""нефтепровод*
-d ^
Рис 9 39
Append 11 i*i
-Append To
Table Name
OK
]
Cancel
F Current Da
С Another D.
F >e fj.j'ne Менеджер
Назначение
Рис 9 40
178 П р о г р а м м и р о в а н и е на языке SQL
Дата ЧС Дата ЧС
Код населенного пункта Код населенного пункта
Код вида ЧС Виды ЧС
Текст сообщения Характеристика ЧС
Дата обновления информации Дата сообщения
Населенный пункт Название города
Пострадало всего Пострадало
В том числе погибло Погибло
Материальный ущерб Материальный ущерб
Абонент Абонент
Введите имена полей из столбца Выборка1 в поля Append To тех столбцов, име
на которых указаны в таблице ES_OPER (эту операцию, к сожалению, придется
выполнить вручную). Готовый запрос на добавление вы видите на рис. 9.41. Те
перь осталось только щелкнуть по кнопке j l . В результате запрос выполнится,
и на экране появится таблица Выборка1. На данном этапе согласно условиям от
бора в таблицу включено 8 записей из таблицы Filel. На втором шаге, в соответ
ствии с теми же критериями, добавляется еще 9 записей из таблицы ES_OPER
(см рис. 9.42). Название итоговой таблицы Выборка1 автоматически заносится
во вкладку Table окна базы данных. Обратите внимание, что в тех потях, которые
не приведены в табл. 9.1, информация отсутствует.
Итак, вы убедились, что Access 2000 позволяет объединять сведения из таблиц
с разной структурой записей. Это очень важно в практической работе.
• t£ У -о *, - an • й> =g -£ . d j .
• • H -'• *\ - I °n T AH . a' в -а - щ.
1
His Query8 : Append Query 1. | п | х ^1
ES_OPER d
Дата ЧС
Код населенн
Кол ьида ЧС
Масштаб ЧС _^J
LdJ ^
field Материопьный уще Причина Ч'-
Table
Р.зненс д>=теи Е том чигле погибп Погибло детей
Е5 OPER Е5 OPER
Потери
Е5 OPER ES OFER
—
Sort
Еэ OPER ES OPER
—
Append To Погибло Матери эпьный ущ<
Criteria
or
•J 1 •Г
Рис 9 4}
Запрос на удаление записей 179
Э Microsoft Access • Jnlxl
£le Edit View \\wrt Format Re йГСИ Tcml W H «luvV H." Ip
Рис 9 42
Ш Microsoft Access
File Edit Vievv Insert Quei у l o o h Window Help
nm
1
• c£ У "i Ь - ю - й ^ M
О - У •n X!
Й"„> s a - о ,
is1 Queryl2 : Delete Query
^ШШШШШШШ-\Ф\P
ES_OPER d
Дата ЧС
г од насепенн
код еида ЧС
1ЬоитабЧС . J
AA ^
Field Дата ЧС Код наг*- пенного п •'одеидэЧС Масштаб ЧС М е т сообщения Дата обн—
Table E' OPER Е: OPEF Е5 OPER Е5 OPER ES.OfER E5 OPEP —
DeWe. where where Where Where Where Where
Critena: "10101"
or
<l 1 •Г
ы ^
Рис. 9.43
[Microsoft Access
You are about to delete 421 row(s) from the specified table.
Once you click Yes, you can't use the Undo command to reverse the changes.
Are you sure you want to delete the selected records'
" Yes 1 No I
Рис 9.44
Удаление дублирующихся зописей 181
1 New Query ШШШ^^Ш?\х\
Design View
Simple Query Wizard
1:;::::'-,ПЭ\
L_—„_jr — "
Crosstab Query Wizard
OK Cancel
Рис. 9 45
3 W, XXX V.-AY. I 1 For example, to find cities with mote than one customer you wuuld
2 у/ли xxx xxx | choose a Customer table below
4 мл xxx xxx р ^
2 xxx xxx ^
CLAS5T J
2 х:.х х г X
CLPEb
Filcl
fT'rN J
REGION
REGION D
TIPCHS
Jll
View
Рис 9 46
В следующем окне (см рис. 9.47) вы должны ответить на ВОПРОС: Which fields
might contain duplicate information? (Какие поля могут содержать повторяющую
ся информацию?) - и указать эти поля. Будем считать, что записидублнруют друг
друга, если в них совпадает содержимое трех полей: Дата ЧС, Код населенного
пункта,-Код вида ЧС. Иначе говоря, мы исходим из того, что в од-ш и тот же день
For example, if you are looking for cities with more than one customer, you
would choose City and Region fields here
Дата ЧС
Дата обновления информации. Код населенного пут та
Признак контроля
Населенный пункт
Серийный номер записи
Широта
Долгота
Объект (место) j j
Рис 9 47
Удаление дублирующихся записей 183
в данном населенном пункте не могут произойти две или более однотипные аварии.
(Конечно, было бы проще постави гь условием совпадение всех полей. Однако даже
для записей аналогичного содержания это слишком маловероятно: сообщения об
одном и том же событии могут передаваться разными людьми и основываться па
разных источниках информации. Отсюда неизбежность расхождений и просто оши
бок.) Вы уже знаете, как открыть перечисленные поля в окне мастера запросов, по
этому здесь представлен лишь конечный результат (см. рис. 9.47).
После этого мастер откроет следующее окно (см. рис. 9.48) и выведет на экран
вопрос: Do you want the Query to show fields in addition to those with duplicates
values? (Хотите ли вы включить в запрос какие-либо поля в дополнение к тем,
которые дублируются?). Рекомендуем добавить поле Номер, где указывается но
мер записи (чуть позже будет объяснено, зачем). В следующем окне мастер пред
лагает вам назвать новый запрос.
1 xxx хм xxx
2 m>. XJX xx>. For example, if ynu chose to look hot duplicate Cit/ values, you could choose
3 XI-.X XI-.X XXX CustomerfJame and Addiess heie
2 xxx хьх ххь
4 x v x"' XT A mailable fields Additional query fields
* mm
Рис 9 48
Пока советуем принять имя Find duplicates for ES_OPER (Поиск дублирую
щихся записей в таблице E S O P E R ) .
Запустив этот запрос на выполнение, вы получите выборку в виде таблицы (см.
рис. 9.49). Здесь аккумулированы записи, в которых повторяются поля Дата ЧС,
Код населенного пункта и Код вида ЧС, определенные выше в качестве критери
ев отбора. Как видите, таких записей всего 307, или 5,0% от их общего числа -
вполне правдоподобная оценка.
1 Ш Microsoft Access i ^ H - b M
[ File Edit View Insert Format F ernrd; Tools w»" dow Help
где:
Q N] - номер первой записи, которую следует удалить;
• N - номер второй записи, которую надо удалить;
• N - номер третьей записи на удаление, и т.д.
Удаление дублирующихся записей 185
Номера этих записей приведены в результирующей таблице повторяющихся
записей (см. рис. 9.49). Однако учтите: вам придется либо вручную переносить
номера из таблицы в запрос (при большом числе записей занятие малоприятное),
либо писать для данной цели специальный макрос.
Однако можно воспользоваться и другим способом. Мы не утверждаем, что он
самый лучший, но в данном случае этот путь действительно проще, чем создание
запроса на удаление. Нужно последовательно применить запросы на обновление
и добавление записей. Итак, в чем суть нашей идеи?
В таблице ES_OPER создается новое поле - назовите его Условие отбора. Вве
дите в него конкатенацию полей. Конкатенация - это объединение текстуальных,
числовых символов или дат в одной ячейке, которое осуществляется с помощью
оператора & (так называемого аиперсанда). В нашем случае следует ввести поля
Дата ЧС, Код населенного пункта и Код вида ЧС, потому что именно они выше
были заданы в качестве критериев отбора дублирующихся записей. При созда
нии этого поля разрешается дублирование записей, поскольку они уже существу
ют. Затем надо скопировать структуру таблицы ES_OPER (без ее содержания)
и в полученной копии в поле Условие отбора задать запрет на дублирование ин
формации. После этого в пустую таблицу следует добавить записи из исходной
таблицы ES_OPER. Тем самым повторяющиеся записи исключаются, поскольку
их ввод запрещен в поле Условие отбора. Чтобы завершить операцию, удалите
исходную таблицу ESOPER, а ее название присвойте скопированной таблице.
Поле Условие отбора можно также удалить, но лучше его все-таки оставить, что
бы предотвратить дублирование записей в дальнейшем.
Мы разработали стратегический план операции. Теперь начнем его реализацию.
Ы Microsoft Access шш
File Edit Vie'"" In c Hrf Tool. Window Help
""
n- н
' ' ' — ' •
(a i-> с
1• ES O P E R : Table 1_ | n | x |
Field Name I Data Type I Description kl
Код Еида ЧС дополн2 Text
Группы население Text
ТребоЕанич Text J
_•. Услссие отбора Text
zJ
_. __ Field Properties
General Lookup |
Alio
Field See 40 w
Format umc
Input Mast ode
Caption
Default Value corn
Validation Rule pre
Validation Text n
Required 'yes ГСП
Allow Zero Length No i-hi_.
Indexed Yes (Duplicates OK)
hel
Unicode Compression Ves zi d-
'1
Рис 9 50
Microsoft Access
Existing data violates the new setting for the 'Required' property for field
'Условие отбора.'
No Cancel
Рис 951
sU *\
-1 i >г
Рис 9 52
D c& w, - • Л -
»i 51 ~; ^ #4 ©
| • ES_OPER : Table ^ М ^ ^ Н l-l J
Код вида ЧС ;| Группы насоп Требования | Условна отворэ _±.
• 10/14/19981107001020501
001 001 07/09/19981107003030503
008 031 09/16/19981198001030505
001 001 01/18/19991191012030505
017 031 03/18/19991165001030503
017 031 03/18/19991165001030503
008 031 04/04/19991132012030501
001 006 05/27/19981180001030504
010 031 07/27/19981101253630502
018 002 07/27/19981160001030504
017 001 07/27/19981115132430503
001 001 07/27/19981186001030505
001 001 07/27/19981107001030505 , —
Re cord ч I • || 1 • I »i | > » | of 5927
3 J _L 'I
Рис 953
в окне базы данных во вкладке Tables (Таблицы) появится имя новой таблицы -
ES_OPERl. Откроите ее в режиме конструктора и измените то свойство поля Усло
вие отбора, которое касается запрета на повторение записей. Сравните значение
этого свойства, установленное для скопированной таблицы (см. рис. 9.55), с ана
логичным значением для исходной таблицы (см. рис. 9.50).
Теперь займемся формированием долгожданного запроса на добавление. Ал
горитм создания подобных запросов был подробно рассмотрен в этой главе,
в разделе «Запрос на добавление записей в таблицу», поэтому здесь отметим
лишь одну деталь. В данном случае таблицей-получателем является ES_OPERl,
Paste Table As [Ш
T able Name Ok
|E5_OPEPl
Cancel
Paste Option?
"" structure Only
<~ Structure and Dat
<~ Append Data to Existing Tal
Рис 9 54
Удаление дублирующихся записей 189
General ] Lookup | An
Field Size SO index
Furrnat
Input Mask
уЬмъ
^ ^ H
d speeds
up
search
caption ^ ^ H es
Default Value 4 H | and
Validation Rule ' *"""'" urting
Validation Text on
Requu ed the
Allow Zero Length field,
По
but
Indexed A may
Unicode Comoression Ves
A <;lni,\j
<l j ±fi
Рис 9 55
Ы Microsoft Access
Fjle Edit View In.eit Query loolc vvmctjuvi Help
О Сё У . J( 4 3 f ' - Ь • о-а - Й* °ё -И -
• • Н • & 42 Г" " • ••- « <>а г ли Й' \ ©-Й1 L4.
iui.iiumiun.i.u.inaiHM МЗ
ES OPER 1
Номер
zl
ДатаЧС
Код населен
Код вида ЧС
d
^
ы
Рис 956
Рис. 9.57
Перекрестный згырос
Перекрестные запросы позволяиг подсчитывать данные по двуъ-d и более переменным.
В ситуациях, подобных наше^ерекрестные запросы компактнее, ч;м обычные.
Как правило, при перекрестом запросе первый столбец п о лучасмой в результа
те таблицы отображает значеэшя одной переменной - это заг-оловш строк. В пер
вой строке этой таблицы пр»иодятся значения второй пере-меннэй - заголовки
столбцов. На пересечении стр»ош столбцов находится сумма («<оли^ество значений,
Перекрестный запрос 191
среднее и т.п.) по третьей переменной. Чтобы отразить все это в отчете, можно со
здать сводную таблицу. Когда перекрестный запрос выполнен, в результирующей
выборке заголовки строк и столбцов часто представляют собой поля, содержащие
текст или даты. Поля значений обычно относятся к числовому или денежному типу.
Поясним эти положения на конкретном примере.
OK Cancel
Рис 9 58
(' Tables Г Си С В th
farnple
Htaderl JHeader2 JHeader3
T JTML
...
Рис 9 59
Sample H&&/4
1 Название об Header 1
|Название обла TOTAL
|Header2 |Header3 1
|Назеание обла
ч
|НазвгзНИР обг\а
^На Е ани»- "|Ьпз
шшшшшпш^
Cancel <Back next >
Рис 9 60
Перекрестный запрос 193
по кнопке Next, a затем укажите поля (не больше трех), значения которых станут
заголовками столбцов В данном случае будет выбрано поле Наименование ЧС
После этого вы оказываетесь в следующем oicie мастера (см рис 9 61), где предсто
нт ответить еще на один вопрос What nuirber do you want calculated for each
column and row intersection? (Что вы хотите вычислить для каждой ячейки, рас
положенной на пересечении столбца и строш?) Вы уже использовали два поля
Название области - для заголовков строк, аНаименование ЧС - для заголовков
столбцов
Теперь понадобится третья переменная, значения которой можно подсчиты
вать, причем они должны соответствовать .начениям первых двух полей Глав
ное, чтобы это третье указанное поле не имею пропусков, то есть нулевых значе
ний Значит, лучше всего подойдет поле Номер В качестве функции для подсчета
числа значений выберите Count (одна из функций групповой обработки данных)
Иначе говоря, в конце концов будет определено количество значений поля Но
мер для каждой ячейки, которая находится та пересечении столбца (ЧС опреде
ленного вида) и строки (того или иного региона Российской Федерации) Ска
занное иллюстрирует рис 9 61 Теперь, когдавы подготовили все необходимое для
создания запроса, щелкните по кнопке Next
ЕидыЧС
I
Дата ЧС First
For example you cculd calculate the sum Last
Еремя ЧС
of the field Order Amount for each Пах
Дата сообщения
employee (olumn) by ccuntr/ and region
Е ремя сообщения Г Tin
(row)
h од респуб!ики tDev
Наименование республики Чит
Do /ou want to ^ummari^e ea h row"' г- од области чаг
У од населенного пунгта
fv Yer in ludi- row sure H a j f a H U r - С)И НЭ d
Sample
Н а з в а н и е об Н а и г е н о в а н п Наименован!] Н а и м е н о в а ^ Ц
Название ofjiai Count Номер)
Название обла!
Название облс
Название осп:
Рис 9 6i
В результате на экране появится окно (см рис 9 62), где в формируемый за
прос нужно внести последние уточнения Вэ-первых, мастер спросит вас What
do you want to name your Query? (Как вы хэтите назвать ваш запрос'?) В прин
ципе это ваше дело, но мы бы посоветовали тринять имя, которое по умолчанию
7-119
194 Программирование на языке SQL
|Filel_Oo -.tab
That's all the information the wizard needs to create the query
Рис 9 62
Рис 9 63
Перекрестный запрос 195
Фактически вы объявили заголовками столбцов или нолей все наименования
ЧС в таблице, кроме их дубликатов, которые система не пропустит (вместе с по
вторяющимися именами таких заголовков было бы даже не 489, а 846). Действи
тельно, многовато. Объяснение здесь простое: при формировании перекрестного
запроса вы не вводили каких-либо критериев отбора. Впрочем, при использова
нии мастера перекрестных запросов этого сделать все равно нельзя. Если вы хотите
задать такие условия, то нужно сформировать обычный запрос
Ы Microsoft Access
j File Edit View Insert Quel у Tools Window Help I
с? .:>' ©
1
lis Filel Crosstab : Crosstab Query l-lnlxl -i
Filel 1
*
Номер
4
Виды ЧС
Наименован! U
ДзтаЧС -d
^
Ы Microsoft Access Щ]
| File Edit View Insert Query Tools Wirndow Help
Filel d
Номер
Виды ЧС
Наименовании
Дата ЧС zj
JJ ^
Field Назеание области Наименование ЧС Номер Total Of Номер: Hof —
Table;
Total'
Filel Filel Filel Filel —
Group 6y Group Bv Count Count
Сг osstab Pow Headmq Column Heading Value Row Heading
Soit,
Cntena "пожар*
01
Рис 9.65
fS-^i-
1
is Filel Crosstab : Crosstab Query
Название области |Total Ot Номе|| Взрыв и пожа| Взрыв и пожа| Лесной пожз.£]
a
Костромская область 1
Краснодарский край 14
Красноярский край _ 5
Курганская область 4
Курская область
Ленинградская область 7
1 -I
Московская область 20
Мурманская область 3
Нижегородская 1
Новосибирская область 2
Омская область 4
Оренбургская облает}. 1
Орловская область 1
у?2^^-72
Rtcuid: н
LUP '££"&$&&&.
Рис. 9.66
Работа со средой Access 2000 без ее инсталляции 197
схему «И», система Access 2000 стала бы отбирать сведения из регионов, где произо
шли и пожары, и нефтяные катастрофы, а это уже совсем другой блок данных.) Зап
рос будет выглядеть так, как показано на рис. 9.67. Обратите внимание: когда вы по
кидаете ту ячейку в бланке запроса, где было введено первое условие *пожар*, система
тут же преобразует его в Like "*пожар* . Результат этого дополненного запроса вы ви
дите на рис. 9.68, где показан тот же фрагмент таблицы, что и в предыдущем случае.
Во-первых, среди названий столбцов появились новые заголовки, связанные с нефтя
ной тематикой. Во-вторых, увеличился список регионов; например, добавилась Ма
гаданская область, которой раньше не было в этом перечне.
Ы Microsoft Access шш
j j File Edit View Insert Query l o o Is Window Help
• : -> cf ::N ©
1
is FilelCrosstab : Crosstab Query ГЛЕШ
Filel 1
Номер
fj
Виды ЧС
Наименов ЭНИ(
Дата ЧС А
J
Field:
Table:
На:ванне области НаименоЕание ЧС
Filel
Номер Total Of Номер: Ног
—
—i
Filel Filel Filel
Total: Group Бу Group By Count Count
Crosstab: Row Heading Column Heading Value Row Heading
Sort'
Criteria: Like "*'no*ap*"
ot: *н1эфте'*
<l 1 ..Г
Рис. 9.67
РИС 9 68
данных в программной среде Access 2000, а затем установил эту БД иа другой ло
кальный компьютер, где не инсталлирована ни Access 2000, ни даже пакет Microsoft
Office. Возникает естественный вопрос: может ли пользователь работать на таком
компьютере с созданной базой данных? Оказывается, да, и в настоящем разделе
мы расскажем, как этого добиться.
В главе 8 уже говорилось, что в большинстве СУБД использование языка SQL
фактически является правилом. Наличие общепринятого языка позволяет стан
дартизировать работу приложений с источниками данных - различными СУБД.
В Windows такую возможность обеспечивает Open Data Base Connectivity (ODBC) -
стандартный набор функций, помогающих обрабатывать информацию на серве
рах баз данных SQL. Именно ODBC обеспечивает различным программам доступ
к одному и тому же источнику сведений.
Принцип действия ODBC состоит в следующем. Чтобы то или иное приложе
ние могло воспользоваться информацией из базы данных какой-либо СУБД, не
обходимо установить драйвер ODBC для баз данных конкретной СУБД. Для каж
дой СУБД должен быть установлен свой драйвер. Папка, где устанавливается этот
драйвер, обычно так и называется - ODBC - и устанавливается вместе с загруз
кой Windows. Драйвер ODBC - это динамически связываемая библиотека со
стандартным интерфейсом, которая обеспечивает доступ к базам данных в опре
деленном формате. Из любого приложения пользователь может легко связаться
с любым из установленных драйверов ODBC и получить доступ к информации
в базе данных, даже если СУБД, где была создана эта база, не инсталлирована на
пользовательском компьютере.
Работа со средой Access 2000 без ее инсталляции 199
В составе пакета Microsoft Office, начиная с самой первой версии, есть програм
ма MS Query, обеспечивающая доступ к любым данным, для которых установле
ны драйверы ODBC. Отметим, что MS Query имеет собственный интерфейс
н может функционировать отдельно от Microsoft Office. Мы воспользуемся про
граммой MS Query, взятой из ранних, русифицированных редакций Microsoft
Office, поэтому в настоящем разделе диалоговые окна будут выводиться на рус
ском языке.
Рассмотрим работу с MS Query на конкретных примерах.
Сначала откройте папку MS Query, а в ней запустите программу Msqry32.exe
(см. рис. 9.69). На экране появится основное диалоговое окно программы MS
Query, показанное на рис. 9.70.
Рис 9 69
"T't-r "|"^ЩЧЙСЛ. Г :У Г
Рис 9 70
Рис 9 72
конструктора (см. рис. 9.74). Если вы не установите явную связь между двумя таб
лицами по коду страны, то в результате будет выведен полный набор имеющихся
значений: все фирмы и страны независимо от того, в какой стране находится та
или иная фирма. Чтобы упорядочить информацию, лучше обозначить связь меж
ду таблицами, что вы и видите на рис. 9.74. Если потребуется перейти из этого
Работа со средой Access 2000 без ее инсталляции 201
Добавить таблицу
Table Лобаеить
Менеджер *]
Назначение
Закрыть
Приборы для измерения кислотнс
Приборы представленные на рын
Словарь стран
Страны
Страны Query
Типы приборов
И
Database ]c \Мои документы \E_jJ
Рис 9 73
1
•"- Microsoft Query ]дЕ]
Файл Правка Просмотр Формат Таблица Критерий Записи Окно
ши и шщгаигзп шщ i щ №?
"•Запрос! пнтзп
Страны Фирмы
Андрее -
Gen_npHMe43h Адрес 2
s_Generation Код страны
s_GUID Код Фирмы
s_Lmeage Название Фир|
Kga ; Примечания J
•Запрос! ЕШЗ
Страны Фирмы
s_GeneiaNon .Адрес J
s_GUIO Адрес 2
o_Lineage Код страны
Код Код Фирмы
Примечания Название фир|_
Страна Примечания
Попе Страна
Значение Россия 1
и пи
Рис. 9.75
на рис. 9.76. Затем, как обычно, с помощью кнопки j l отправьте запрос на выпол
нение. (Отметим только, что в данном случае знакомая вам кнопка называется
иначе - Запросить сейчас.) Результирующая таблица, которая содержит отобран
ные записи, приведена на рис. 9.77. Сохраните запрос, как делали это раньше. Те
перь его можно вызвать и реализовать посредством кнопки [eg] (Вызвать запрос).
И последнее: если вы щелкнете по кнопке |juj (Показать SQL), то получите текст
запроса на языке SQL.
Таким образом, вы вошли в базу данных системы Access 2000 с помощью драй
вера ODBC и получили возможность нормально работать. Примечательно, что вы
не инсталлировали саму систему, но получили почти полную иллюзию того, что
находитесь именно в ней.
Резюме
1. Главной «специальностью» языка SQL является конструирование запросов
пользователя к базе данных. Поэтому программирование на языке SQL в ос
новном - это формирование таких запросов.
2. Основные типы запросов с использованием SQL:
- select query (запрос на выборку);
- make-table query (запрос на создание таблицы) - создает новую таблицу
па основе данных, которые уже размещены в одной или нескольких таб
лицах;
Резюме 203
I ]{ЩЩ N Ф OU
m йи \ш [ш ш
"•Запрос! L^LB.Inlxl
Н а з в а н и е Фирмы | Примечания 1 Код | Примечания 1 Opai^i.
• YSl incorporated USA _j
Cole-Parmei Internatioric Cij USA
Alltech из USA
SEMSORTECHNIKMEI 04 Германия
— ,AMEL Instrument 05 Италия
ОАО "ЦЕ-ет" 06 Россия
Нефть-Газ-Начка 06 Россия
НПП 'ЭКОНИКС" 06 Россия
ЭКОХЕЛП ИНСТРУМЕ 06 Россия
АО 'ЭКРОС" 06 Россия
Петербургский инспгг 06 Россия
ОКБ ТЕСТ фирмы "Ан. 06 Россия
— ГЕОХИ РАН 06 Россия
LEEMAN LABS 07 США
Sailin Automation 08 Финляндия
DATA LINK Instruments 09 Франция
Ф и р м а не указана 01 Страна не ч.к;
Wilks Enterprise. Inc 01 Страна не чк<
FCI Envnonrnental 01 Страна не чк;
Milton Roy Company 01 Страна не чк< ,
ИШЗапмсьП IMW1 < J щ>
Для показа и правки критерия отбора выберите Просмотр К 1
fjr ": ,числ [ Г~
Рис. 9.76
- delete query (запрос на удаление) - удаляет все записи из одной или не
скольких таблиц на основании критериев, заданных пользователем;
- append query (запрос на присоединение) - добавляет целые записи или
только указанные поля в одну или больше таблиц;
- update query (запрос на обновление) - изменяет данные в существующих
таблицах на основании информации в окне конструктора.
3. Запросы могут создаваться как с помощью конструктора (Query Design), так
и посредством мастера (Query Wizard). На наш взгляд, конструктор удобнее:
во-первых, его операции оформляются более наглядно, во-вторых, из
конструктора легко переходить к инструкциям в форме SQL и наоборот. Тем
не менее, показаны и примеры построения запроса с использованием масте
ра запросов.
4. Возможна и третья форма представления запроса - инструкции SQL. Меж
ду запросом, сформированным посредством конструктора, и инструкцией
SQL существует жесткая и однозначная связь.
5. В главе были подробно рассмотрены конкретные примеры формирования
запросов различных типов:
- запросы с использованием групповых операций;
- запросы с дополнительными условиями;
- запросы с параметрами;
204 Программирование на языке SQL
Ю1 N mm и R
1 "«Запрос!
Название Фирмы | Примечания 1 Код 1 Примечания 1
в п|х|
Страна
• ОАО "Цвет" 1 Россия
Нефть-Газ Начка | 06 Россия
нпп 'зконикс" ; 06 — Россия
ЭКОХЕЛП ИНСТРУМЕ. 06 Россия
АО 'ЭКРОС" 06 Россия
Петербчргский ннстит 06 Россия
ОКБ ТЕСТ фирмы "Ан 06 Россия
ГЕОХИ РАН 06 Россия
W i l l Запись 11 \ШП il 1 •J
г • -
Для показа и правки критерия отбора выберите Просмотр К. | Г ! Г "{"" |числ Г 1
Рис 9.77
Рис 9 78
• Функции макросов
• Использование макросов для обработки событий
• Использование макроса
при выполнении сложного запроса
Функции макросов
Макросы бывают двух видов: единичные, то есть состоящие из одной макроко
манды, и сложные. В последнем случае макрос включает несколько последова
тельно выполняемых макрокоманд, объединенных общим именем. Каждая мак
рокоманда осуществляет определенную операцию: установить значения, открыть/
закрыть таблицу, найти запись и т.д. Как правило, макрос автоматически запуска
ется при наступлении какого-либо события: например, пользователь щелкает той
или иной кнопкой мыши, открывает таблицу, переходит от одного поля к другому
и т.п. Чтобы запустить макрос, надо указать его имя. Если макрос запускается
в ответ на событие, он должен быть присоединен к соответствующему свойству
формы, отчета и т.д. (см. главу 4, например, раздел «Заголовок формы»).
Макросы могут использоваться для выполнения довольно широкого диапазона
операций. Например, макросы позволяют:
206 Программирование с использованием макросов
Использование макросов
для обработки событий
Наиболее часто макросы применяются для обработки событий. При этом макрос
может функционировать и как самостоятельная программа, и в составе процеду
ры VBA (Visual Basic for Applications). Первый вариант иы рассмотрим чуть ниже,
а второй станет предметом нашего внимания в следующей главе.
Понятие события
Событие - это любое действие пользователя; щелчок кнопкой мыши, открытие
формы и т.д. Событие может также инициироваться каким-либо оператором
Visual Basic пли самой системой Access. События связываются с формами, отче
тами, разделами форм и отчетов, а также с элементами управления форм - в част
ности, с полями. Откликом на событие может быть выполнение процедуры об
работки событий на языке VBA (о чем речь пойдет Б следующей главе) или
макроса.
Что такое обработка события? Например, давайте посмотрим, как выглядят
свойства поля формы (пусть это будет форма Страны). Откроем ее в режиме
конструктора (см. рис. 10.1).
Надо открыть также список событий, предусмотренных для какого-либо поля
данной формы (например, для поля Код). Для этого следует либо дважды щелк
нуть левой кнопкой мыши в пределах этого поля, либо Щелкнуть там же правой
кнопкой мыши и в появившемся контекстном меню выбрать опцию Properties
(Свойства). Когда на экране возникнет одноименное окно, откройте в нем вклад
ку Event (Событие). В результате будет выведен искомый список возможных со
бытий (см. рис. 10.2).
Событие возникает для этого поля в следующих случаях:
• при обновлении поля (до или после операции);
• при открытии/закрытии поля;
• при активизации/дезактивизации поля, когда оно получает или теряет фокус;
• при использовании кнопок мыши (щелчок, двойной щелчок, движение
кнопки вверх или вниз);
• при использовании клавиатурных клавиш (щелчок по клавише, ее движе
ние вверх или вниз);
• при перемещении курсора.
Для другого элемента управления (например, для кнопки, текстового поля и т.д.)
перечень событий, предусматриваемых в Access 2000, может быть несколько иным,
но тоже достаточно длинным.
Использование макросов для обработки событий 207
Ш Microsoft Access
File Edit View In:«tt Format Tools Window Help
IБ Страны: Form Ml
• 10 • i • И i I 2 - 1 -
• Form Header
* Detail
Код i't o n
Стран лрана
• *
>г.
Рис 10 1
"~"""* ш
On Exit \ \\ ) ' 1 1
On Lost Focus . .
|_
!
On Click
On 0Ы Click . .
On Mouse Down .
On Mouse Move .
1
••
On Key Up
Ни
1
On Key Press . . ,
f-'-ffj;
Рис JO 2
Последовательности событий
Разработчик, который встраивает в систему определенные реакции программы на
действия пользователя, должен учитывать-следующее. Каждая отдельная опера
ция (допустим, переход от одного элемента управления к другому) может повлечь
208 Программирование с использованием макросов
Удаление записей
Когда пользователь удаляет запись, в форме возникают следующие события:
Delete (Удаление) =• Before Del Confirm (До подтверждения удаления) => After
Del Confirm (После подтверждения удаления).
Перед этим Microsoft Access обязательно выводит диалоговое окно, предлагая под
твердить удаление. Если пользователь отменяет событие Delete, то события Before
Del Confirm и After Del Confirm не возникают и диалоговое окно не выводится.
Ы Microsoft Access
File Edit View Insert Run Tool?; Window Help
шш
!У В. I За (р, ' 1 й ^ ^ !^ © д - (3 -
* Macro2 : Macro шш
т Action
GoToControll
GoToControl
Comment
g
GoToPage
GoToRecord
Hourglass
Maximize
Minimize j
MoveSize Action Arguments
MsgBox
Control Name Страна
UJ
Рис. 10.3
Использование макроса при выполнении сложного запроса 215
Рис. ]QM
Использование макроса
при выполнении сложного запроса
Как вы помните, в предыдущей главе описывзалось создание объединенной выбор
ки записей из разнородных файлов, которые шмели различную структуру, были раз
работаны в различных организациях и в различных программных средах, но инте
грированы в единый банк данных в программной среде Access 2000. Выполнять
задуманную операцию пришлось в два этапаа: сначала формировать запрос на со
здание таблицы Выборка1, куда вошли записей из одного файла, а затем генериро
вать запрос на добавление данных в эту таблшцу из другого файла. Сейчас с помо
щью макроса вы можем объединить оба этапа (работы, упростив решение задачи. Мы
будем по-прежнему использовать запросы, но > организуем их в макропоследователь
ность, которая имеет название и выполняется^ как целостная операция.
Прежде чем показать, как это делается, прооизведем чисто техническое, вспомо
гательное действие - переименуем запросы,, которые нам понадобятся. Запросу
Query7 дадим название Запрос на создание таблицы, а запросу Query8 - Запрос
на добавление записей. Такое переименовашие нужно лишь для того, чтобы при
объединении запросов их новые названия шаглядно свидетельствовали о функ
ции каждой части созданного макроса.
216 Программирование с использованием макросов
•"* % - DO •
* МасгоЗ : Macro шш
Action
OpenQuery 5 Comment
g
Рис 10 5
d
Action Arguments
J
Рис 10 6
Резюме
1. Макросы могут использоваться для выполнения довольно широкого диапа
зона операций. Например, макросы позволяют:
- открывать отчет для просмотра или печати;
- переходить от одного элемента управления (записи, поля) к другому;
- указывать свойства объекта;
- выполнять разнообразные команды и т.д.
218 Прогроммировоние с использованием макросов
Базовь*ь,е термины
R гяч1ле д " Р а с с м о т Р и м наиболее важные термины VBA Они приведены в табл. 11.1
Таблица <
т Определение
Термин ^ , ,
М A I IMo о' 1о 1У пь 1 Контейнер для процедур и функций
г. I *ц ule Семейство процедур и функций, принадлежащих форме или отчету
п1 п асса)
(Модуль кла»1' '
<. , , (fnodule Модуль, главные процедуры которого доступны для приложения
.г. ^иый модуль] в цепом
(Стандартна 1 ' '
р I Последовательность инструкций, выполняемая как целое
(Процедура) ( ^
<• , redu^ure Процедура, выполняющая определенную задачу
(Процедура & S u b '
р ,. 1ф .Оункция) Процедура, возвращающая определенное значение
F f oroce»^ec'ure Процедура, вызывающая реакцию объекта на определенное
(Процедура £3 обработки событий) событие
У ,t j ii, ^>етод) Процедура, выполняемая над определенным типом обьекта
с, , irQ Оператор) Комбинация инструкций с ключевыми словами, символами, констан
тами и переменными Одиночная строка или строки, объединенные
символами продолжения строки (пробел и знак подчеркивания)
К rci / « ' г ^ 1 - л ю ч е в о е спово) Слово, имеющее определенное значение для компилятора VBA
А г мент
Аг t /л/" 'Р У ) Дополнительная информация, передаваемая функции или процедуре
Sub Называется также параметром
Окно модуля
Программа VBA создается, редактируется и отображается в окне модуля. Такое
окно для класса, связанного с формой или отчетом, можно открыть либо из окна
базы данных, когда объект закрыт, либо из окна объекта в режиме конструктора.
Чтобы открыть окно модуля, надо выполнить одно из перечисленных действий:
1. В окне базы данных выберите имя формы или отчета на соответствующих
вкладках Forms (Формы) или Reports (Отчеты).
2. Выберите позицию Программа в меню View (Вид) или щелкните по кнопке
Code (Программа) ^ 1 на панели инструментов.
На экране появится окно модуля VBA (рис. 11.1), разделенное на две области.
Рис 111
Левая область - окно свойств. В верхнем поле этой области показано, свойства
какого элемента программы здесь представлены. Если вы выходили в окно моду
ля непосредственно из окна базы данных, то будут представлены свойства формы
или отчета в целом. Если вы попали в окно модуля из конструктора форм или отче
тов, будут представлены свойства того элемента управления, который был акти
визирован перед переходом в окно модуля. Щелкнув по стрелке прокрутки спра
ва от этого поля, вы легко можете перейти в любой элемент управления, и в левой
области появятся его свойства. Свойства могут быть отсортированы в алфавит
ном порядке - вкладка Alphabetic (Алфавитный) - или разбиты по разделам -
вкладка Categorized (Категории): Date (Данные), Event (Событие), Format (Со
бытие), Other (Другие). С таким способом отображения информации вы уже встре
чались при работе с конструкторами (см., например, рис. 10.2). Разделы, содержащие
222 Программировоние с помощью процедур VBA
г
л Microsoft Visual Basic - dbl МЫ
| File Edit View Inser t Debug Ri in Tools Add-Ins Window Help
Рис 112
Основные положения VBA 223
класса, относящийся к форме Страны, что показано на рис. 11.2. Эта возможность
очень полезна при написании и отладке программ, когда бывает необходимо про
смотреть текст похожей процедуры, созданной для другого объекта базы данных.
Модули могут содержать описания, процедуры обработки событий, процедуры
Sub (субпроцедуры) и функции.
При организации новой формы Access 2000 создает для него модуль класса
и помещает его в конструктор При добавлении процедуры обработки события
в форму или отчет она автоматически помещается в модуль класса. Если вы ко
пируете форму или отчет в другую базу данных, модуль класса копируется вме
сте с ней. Удаление формы или отчета приводит также к удалению соответствую
щего модуля.
Основные элементы
Прежде чем обсуждать реальные примеры программирования на основе VBA, рас
смотрим вкратце его основные элементы:
а переменные;
а константы;
• аргументы;
Q процедуры VBA и их элементы;
• инструменты, управляющие выполнением программы.
Переменные
Переменные - это именованные области памяти, которые используются для вре
менного хранения результатов. Переменные сходны с полями, но свойственны
только VBA. Наборы записей, например, таблицы, их не содержат. Перед вклю
чением в процедуру переменные должны быть описаны или объявлены. Описа
ние переменной состоит в присвоении ей имени и, возможно, типа - символь
ная, логическая и др. Область действия переменной может быть ограничена
одной процедурой, в которой она была описана, определенным модулем с не
сколькими процедурами или приложением в целом. Значение переменная полу
чает при описании. Если это значение не указано явно, то устанавливается за
данное по умолчанию.
Возможны два способа описания переменной: неявный и явный. Для неявного
определения переменной достаточно использовать имя переменной в процедуре,
не задавая его специально. Явное описание переменной означает присвоение ее
имени и определение ее типа до первого оператора в программе. Чаще всего пере
менные описываются с помощью инструкции Dim
Константы
Константами называются именованные значения, которые не изменяются в ходе
ныполнения модуля или процедуры, где они определены. Установка и изменение
шачсний констант производится только однажды - при их описании. Константа
может представлять численное или символьное значение или указывать на другую
константу. Выражение, содержащее комбинацию арифметических или логических
224 Программирование с помощью процедур VBA
Аргументы
Аргументы - это биты информации, которые используются процедурой или ме
тодом в ходе выполнения. Они могут быть обязательными или необязательными
Чтобы передать аргументы процедуре, надо указать их в определении процедуры
сразу после ее имени. Например, процедура Название_фирмы_Кеуир требует указания
двух аргументов: KeyCode и Shift, которые описываются как одно целое.
Private Sub Название_фирмы_Кеу11р(KeyCode As Integer, S h i f t As Integer)
Для того чтобы выполнить созданную процедуру, надо ее вызвать. При этом
аргументы можно задавать как по позиции, так и по имени. В первом случае зна
чения аргументов располагаются в том же порядке, что и в определении процеду
ры, и разделяются запятыми. Это будет выглядеть следующим образом:
Название_фирмы_Кеуир 15,10
или
C a l l Название_фирмы_Кеуир (15,10)
Основные положения VBA 00^
Процедуры Sub
Процедура Sub содержит одну или более определенных операций. Можно ис
пользовать процедуру Sub для автоматизации повторно выполняемых задач: на
пример, назначить одну из процедур элементу меню, так чтобы запускать ее
именно оттуда.
Процедуры Sub полезны для операций, выполняемых при щелчке по кнопке, име
ющейся в форме, или получении фокуса определенным элементом управления.
Основные положения VBA 227
Инструкция Sub определяет имя процедуры, аргументы и операторы програм
мы и имеет следующий синтаксис:
[Private|Public] [StaticjSub name [ (arglist) ]
[инструкции]
[Exit Sub]
[инструкции]
End Sub
Это синтаксическое определение является стандартным. Жирным шрифтом
выделены слова, которые должны вводиться в точном соответствии с примером.
Слова, набранные курсивом - это имена, определяемые пользователем. Слова,
стоящие в квадратных скобках, являются необязательными. Ключевые слова, раз
деленные вертикальной чертой (|), представляют собой взаимоисключающие па
раметры, поэтому можно использовать лишь одно из двух - либо Private, либо
Public. Если в процедуру Sub включается список аргументов (arglist), то он должен
быть заключен в скобки, а аргументы разделены запятыми.
Если в определении указано два или более ключевых слов, разделенных верти
кальными чертами и при этом заключенных в фигурные скобки, то одно из них
должно быть введено обязательно, иначе будет выбран параметр по умолчанию.
Ключевое слово Sub описывает процедуру по имени. Все инструкции, которые
находятся между строками Sub и End Sub, выполняются при запуске процедуры.
Функции
Процедура Function генерирует значение и возвращает его в приложение. Воз
вращаемое значение имеет то же имя, что и функция, и может быть использова
но в любом месте выражения. Синтаксис инструкции Function выглядит следую
щим образом:
[Private | Public] [Static]Function имя [ ( a r g l i s t ) ] [As тип]
[инструкции]
[имя = выражение]
[Exit Function]
[инструкции]
[имя = выражение]
End Function
Элементы процедур
Оба типа процедур совместно используют одни и те же элементы синтаксиса, ко
торые поясняются в табл. 11.2.
8*
230 Программирование с помощью процедур VBA
Таблица 1 1.4
Ключевой о п е р а т о р Описание
Команды, закрывающие программу или приостанавливающие ее выполнение
Exit Выход из блока программы (Do.. Loop, For. Next, Sub, функция, процедура).
Определяет лишь переход к концу блока, но не конец программы
End Завершает процедуру или блок программы Закрывает файлы
и освобождает переменные
Slop Приостанавливает выполнение. Ничего не закрывает
Do Events Функция, переключающая операционную систему на выполнение
других событий
Команды, осуществляющие переход к другому набору инструкций
GoTo Осуществляет обязательный переход к строке указанного номера
или метке в процедуре
GoSub...Return Выполняет переход к подпрограмме внутри процедуры и возвращается
On Error При возникновении ошибки осуществляет переход к программе
обработки ошибки
On.GoSub Переходит к одному из пунктов в списке в зависимости от значения
выражения и затем возвращается к следующему оператору после On...Sub
On ...GoTo To же, что и O n . G o S u b , но не возвращается к следующему оператору
после завершения
Команды, осуществляющие выполнение цикла
Do...Loop Повторяет набор операторов до тех пор, пока условие истинно
For. Next Повторяет набор операторов указанное число раз
For Each...Next Повторяет набор операторов для каждого обьекта в выбранном семействе
While...Wend Повторяет набор операторов, пока указанное условие истинно
With Выполняет набор операторов для одиночного обьекта
Команды, осуществляющие выбор решения о дальнейших действиях
Choose Функция, выбирающая значение из списка возможностей на основе номера
позиции в списке
If...Then...Else Выполняет ту или иную последовательность операторов в зависимости
от истинности условия
Select Case Выполняет один из нескольких возможных наборов операторов
в зависимости от значения определенного выражения
Switch Функция, которая проверяет список выражений и возвращает значение
или выражение, связанное с первым истинным выражением в списке
Choose Builder И
Exoression Builder
Mact о Builder
Code Builder
Cancel
Рис. 11.4
On E> it _ _ _ _ _ _
On Got Focus
On Lost Focus (Event Procedure]
On Click [E'/ent Procedure]
On Dbl Click [Event Procedure]
On Mouse Down
On Mouse Move
On Mouse Up
Ont e/Down
On Key Up
-«*»*
Рис 11.5
Инструкция On Error
Инструкция On Error служит для подключения и отключения процедуры обработ
ки ошибок. Если такая процедура подключена, то при возникновении ошибки ей
передается управление.
Есть три формы инструкции On Error:
• On Error GoTo метка;
• On Error GoTo 0;
• On Error Resume Next.
Предупреждение дублирования записей при их вводе из формы 235
Инструкция Resume
Инструкция Resume возвращает управление из обработчика ошибок в процедуру.
Эту инструкцию следует включать в обработчик, если необходимо передать
управление в определенную строку процедуры (см. ниже). Однако инструкция
Resume не является обязательной: если она отсутствует, то процедура может завер
шиться, когда обработчик выполнит свои функции.
Есть три формы инструкции Resume:
• Resume или Resume 0 - возвращает управление строке, при выполнении кото
рой произошла ошибка;
Q Resume Next - возвращает управление той строке, которая непосредственно
следует за строкой, вызвавшей ошибку;
• Resume метка - передает управление строке, которая задана в качестве значе
ния аргумента метка. Он указывает номер строки или метку.
236 Программирование с помощью процедур VBA
Выход из процедуры
Включая в создаваемую программу процедуру обработки ошибок, необходимо
предусмотреть такой путь выхода из нее, чтобы впоследствии обработчик активи
зировался только при возникновении ошибки. Процедура выхода отмечается мет
кой строки точно так же, как и процедура обработки ошибок. Если ошибки не
произойдет, то после выполнения программы запустится процедура выхода. Если
же ошибка случится, то сначала выполнится обработчик ошибок, а затем управ
ление будет передано в процедуру выхода. Она содержит инструкцию Exit:
Exit_Ha3BaHne_<jMpMbi_LostFocus_Click
Рис 117
Предупреждение дублирования записей при их вводе из формы 237
Ы Microsoft Access
i File Edit View Insert Format Pecorrt- Tnnh rjrriuvi/ HPI[_
•ШЭ
I D £? Ы Ш a "9 & R3 £" ^ - an - n£
в Фирмы
Кол ФИРМЫ 27
~3
Страна
Г
Ашес
Аппес2
t^^ffi^^4****'*^. '
Примечания
Изменить Удалить
запись Новая страна
запись
Рис 119
Microsoft Access х]
OK
Рис И 10
9 - 119
242 Программирование с помощью процедур VBA
Добавьте ее, задав в качестве имени фирмы уникальное имя ORION1 Снова
воспользуйтесь кнопкой Enter для ввода записи. В результате появится друюе со
общение (см. рис. 11.12). Как видите, добавление этой записи база данных «вос
приняла» совершенно нормально.
Итак, вы умеете бороться с дублированием записей двумя способами (один из
них был описан выше, в главе 9). Мы рекомендуем иметь в своем арсенале оба
Отметим лишь, что последний вариант удобнее при вводе записей словарного
типа, где определяющим является одно поле (в данном случае - поле Название
Ш Microsoft Access
i j File Edit View Insert Format Record; lools Window Нф
шз
IБ Фирмы
Коп Фиомы 27
Стоана d
Дпо ее
Агюес2
МЯЖЩЩИВРШ'Ж'ШЖШЯИ»
Примечания
Рис / / / /
Microsoft Access D
запись введена
OK
Рис 11 12
Установка на последнюю запись при открытии формы 243
фирмы). В принципе ничего невозможного нет, и нетрудно усовершенствовать
программу настолько, чтобы она позволяла контролировать несколько полей. Но
подобное усложнение процедуры вряд ли оправдано, тем более что для такого слу
чая есть другой вариант отсева дублирующихся записей.
Err_Form_Open
MsgBox Err Description
Resume Exit_Form_Open
End Sub
Теперь определите переменную Cod, которая необходима для выполнения про
цедуры:
Dim Cod As Integer
9*
46 Программирование с помощью процедур VBA
Назначение
прибора
Примечания
Изменить Удалить
запись ЗаПИСЬ
Рис ? / 15
Удаление записи с установкой на последнюю запись 247
Рис 11 16
Первые этапы работы уже хорошо вам знакомы: автоматическая вставка обрам
ляющих операторов, ввод операторов обработки ошибок и определение перемен
ной Cod. Вот результат ваших трудов:
Private Sub Удалить_запись_С11ск()
On Error GoTo Егг_Назначение_Удалить_запись_Й1ск
Dim Cod As Integer
Егг_Назначение_Удалить_запись_С11Ск.
MsgBox Err Description
Resume Ех11_Назначение_Удалить_запись_СПск
End Sub
Далее вы блокируете вывод любых информационных сообщений, кроме сооб
щений об ошибках. Эту функцию выполняет программа макросЗ (см. рис. 11.17).
Чтобы запустить ее, задайте команду Set Warning (Установить сообщение), но
в поле Action Arguments (Аргументы команды) укажите значение No, что и по
зволит блокировать вывод сообщений. Данная опция используется, когда пользо
ватель не хочет, чтобы выполнение макроса прерывалось ради появления окон
предупреждений. Однако сообщения об ошибках выводятся в любом случае. Кро
ме того, Microsoft Access выводит на экран все диалоговые окна, которые требуют
от пользователя действий более сложных, чем щелчок по кнопке: например, когда
надо ввести какой-либо текст или выбрать параметр из списка.
248 Программирование с помощью процедур VBA
* МакросЗ: Macro
1 Comment
шш з
•
Action
Set^'atningsl J
И
—
J
• н и Action Arguments
Warnings™
1
Turns all system message-: on of off.
Prevent? modal warning; fiom stopping
the macro (.although error messages
i and dialogs that require user input still
appear) This has the same effect as
pressing Enter in each message box
| (typically an OK or Yes) Press Fl for
help on this action
Рис 11 17
Expression Builder LH
Count: («expr») | J
Cancel
d Undo
~ р * ] &| = > < 4 H And ЬУ rTot I » j ( )1 Paste | Help |
P j Назначение <AII>
(±1 Tables Arrays nputBox$
1 (±J Queries Conversion MsgEox
Database
Lfl Form? Date/Time
& Reports DDE/OLE
P i Functions Domain Aggregate
Error Handling
Financial
LQdbl General
P j Constants Input/Output
CD Operators Inspection
P i Common Expressions Marh
23Я5ЕЯИИИ1
Proaram Flow J
InputBox(prompt; title; default: xpos; ypos)
-Й
РИС. / / /S
э
езюме
В главе рассматриваются основные положения языка программирования
VBA, который стал стандартным средством макропрограммирования для
различных приложений.
Сфера приложения VBA практически безгранична. В качестве примера
в этой главе выбрано «обустройство» собственно базы данных - обеспече
ние удобства работы с ней для пользователя. Обычно у каждого пользовате
ля свои взгляды на то, что удобно, а что нет, и нередко сервис базы данных
приходится дорабатывать.
Обращение к VBA оправдано тогда, когда средства, заложенные в Access,
либо не позволяют добиться нужного результата, либо предлагают сложное
и громоздкое решение.
В качестве конкретных примеров использования языка VBA в настоящей
главе рассмотрены:
- предупреждение дублирования записей при их вводе с помощью формы;
- установка на последнюю запись при открытии формы;
- удаление записи с дальнейшей установкой на последнюю запись.
Глава X I I
Другие возможности
Access 2 0 0 0
Рис 12 1
Установка Access 2000 253
Рис. 12 2
Description:
Applications and support files for use with Microsoft Office.
Рис. 12.3
Другие возможности Access 2000
1 f £ Inxtallei Information В1
Yes N° J
Рис 12 4
Условное форматирование 255
wp M i c i o i o f t Office 2 0 0 0 M a i n t e n a n c e M o d e из
OfTice M a i n t e n a n c e M o d e
Remove Office
fffl Delete Microsoft Office 2000 Premium trorn this computer.
'iJ
Help Cancel
Рис. 12.5
Условное форматирование
Условное форматирование позволяет представлять в особом формате поля, кото
рые соответствуют определенным, заранее заданным критериям. По функциям эта
операция является разновидностью пользовательского запроса к базе данных.
Более того, практически все критерии, применяемые в условном форматирова
нии, могут задаваться и в запросе.
Ы Microsoft A c c e t * - [Фирмы]
isH
ол - °S ©
Si Xi v / *й • • >* Э й - (3
Коп Фиомы 24
Примечания
Изменить Удалить
запись запись Новэд страна
Рис 12 6
т: I 1=
Название qDupMbi • Название qnipMti
Т.
гоан Код страны
1
•-•--••
7>
1_
•№ Адрес
Ашес Адрес 2
[t>gi
Примечания
>име -пни
Исметаь Удалив 4
I Не.»
Рис 12 7
Condition 1 ~ -
|Field Value Is ^ ] |equd to •*] |"LEEMAN LABS
Рис 12 8
Примечания
zJ
Record: и | < | f 24 > | " | f * j of 27 '
Рис. 12 9
уфер обмена
о всех программных продуктах Microsoft, начиная с первых версий DOS, ра-
зта с буфером обмена всегда была простейшей рутинной операцией. Каза-
зсь, в ней нечего совершенствовать. Однако в Access 2000 такие улучшения
)явились. Точнее говоря, они были разработаны в Office 2000, поэтому стали
)стуины и в Access 2000.
Буфер обмена 259
Новое содержание
В предыдущих версиях Office буфер обмена был один, и в каждый момент време
ни с помощью буфера можно было работать только с одним файлом. В пакете
Office 2000 таких буферов стало 12. Соответственно, пользователь может обраба
тывать одновременно до 12 файлов. В окне, которое показано на рис. 12.10, вы
видите 5 буферов
Рис. 12 10
тоисправление имен
:врале 1997 года фирмой Griggs-Anderson Research был проведен опрос пользо-
лей Microsoft Access. Согласно результатам этого исследования, функция ав-
правления имен возглавляла список самых насущных пользовательских по
лостей.
Использование функции
Чтобы включить Name Autocorrect, надо:
1. В меню Tools (строка меню Access 2000) выбрать опцию Options (Параметры).
2. В появившемся диалоговом окне Options (см. рис. 12.11) открыть вкладку
General (Общие). Одно важное замечание. Предположим, вы хотите, чтобы
система Access 2000 запомнила сделанные вами изменения имен, но в дан
ный момент не вносила их в записи (это можно сделать и в другое время).
В разделе Name Autocorrect окна Options установите флажок только рядом
с опцией Track name Autocorrect Info (Подготовить информацию для авто
матического исправления имен).
Если вы хотите активизировать функцию Name Autocorrect, установите галочку
в позиции Perform name AutoCorrect (Выполнить автоисправление имен). А если
необходимо, чтобы информация о проведенном автоисправлении была сохранена
ВПгЯЯ
View General Edit/Find ] keyboard Datasheet | Forms/Reports ] Advanced Tables/Queries
P This database
Г~ Compact on Close
Г - All databases
Web Options . 1
OK Отмена
Рис 12 11
Другие возможности Access 2000
Database Splitter
^ Ч , |
Рис 12 12
±1
File name hH-MlnM-! _ЕЗ В split
ave as type. All File; i* *)
"3 Cancel
Рис. 12 13
You have selected a database created in a previous version of Microsoft Access You
can convert o< open the database. Either action may take several minutes
Click this option if you're not sharing this database with users of a previous version.
You will not be able to use the database with previous versions This option is best if
you want to take ad vantage of the full power of Microsoft Access 2000
Click this option if you're sharing this database with users of a previous version of
Microsoft Access. You will still be able to use the database with pre /IOUS versions
In Microsoft Access 2000, you will be able to view all objects, but will not be able to
change the design of any object.
OK Cancel
Рис 12 14
File name.
7 Save
Рис. 12 15
EI Менеджер Subforml
Е! Назначение
^1 т Приборь i
3 т Страны
т Страны1
ш Страны?
т Типы Приборов
т Фирмы
т Фирмы Subform
т Фирмы 1
щ тВВт
т ФирмыЗ
т Экологические приборы
±1 I >|
Рис 12 16
*езюме
1. Потенциальные возможности Access 2000 несколько шире, чем те, которые
использованы и показаны в книге. Поэтому заключительная глава была по
священа описанию этих нераскрытых моментов и особенностей.
2. Желательно, чтобы при первой инсталляции среда Access 2000 устанавли
валась не отдельно, а в составе пакета Office 2000. При этом, чтобы не возни
кало каких-либо непредвиденных затруднений, лучше устанавливать пакет
на базе версии Windows не ниже Windows 98.
3. Условное форматирование позволяет представлять в особом формате поля,
которые соответствуют определенным, заранее заданным критериям. По
функциям эта операция является разновидностью пользовательского запро
са к базе данных. Более того, практически все критерии, применяемые в ус
ловном форматировании, могут задаваться и в запросе.
4. В предыдущих версиях Office буфер обмена был один, и в каждый момент
времени с помощью буфера можно было работать только с одним файлом.
Резюме 267
В пакете Office 2000 таких буферов стало 12. Соответственно, пользователь
может обрабатывать одновременно до 12 файлов.
5. Access 2000 автоматически переносит изменение имени поля на все зависи
мые от него объекты: запросы, формы, таблицы, отчеты, поля. Поэтому
пользователь может без дополнительной корректировки продолжать работу
с приложением.
6. Access 2000 предоставляет возможность разделить базу данных на две неза
висимые части, точнее говоря, выделить из существующей БД, которая ос
тается неизменной, еще одну, причем новая база данных будет включать
только таблицы. На их основе впоследствии можно наращивать информа
цию и развивать новую БД.
7. Как правило, файл базы данных является довольно «рыхлым». В нем много
пустых или частично заполненных ячеек. Поэтому возникает необходимость
сжать базу данных, когда она не используется, чтобы БД занимала меньший
объем памяти. В активном же состоянии база данных разворачивается до ис
ходного размера. Такое сжатие в Access 2000 может проводиться автомати
чески.
8. Работа с БД, выполненной в одной из предыдущих версий Access, в среде
Access 2000 требует предварительного преобразования (конвертации). Эту
же операцию приходится выполнять и в случае обратного перехода.
Алфавитный указатель
Г
тоотчет 92, 103 Гиперссылки 84
тостраница 108, 122 Группировка 91, 95, 97
тоформа 56 Групповые операции 153
шерсанд 185
тумент 144 д
Двумерные файлы 46
Дизайн 14
зы данных 12 Динамические ссылки 106
БДЧЭС 125, 140 Документ 19
Контроль ЧС 125, 140 Драйвер ODBC 198
Контрольно-измерительные Дубликат 232
триборы 124 Дублирование 181
нки данных 9
блиографическая информация 18
3
блиотекаУВА 229 Закладка 86
анк 116 Запись 114
ianpoca 149 Запрос
сонструктора 156 SQL 147, 157
•траницы 116 к серверу 147
на добавление 188
на изменение 146
ладка на обновление 147
ivent 206 на объединенную выборку 173
-orms 221 на поиск повторяющихся записей 181
4асго 144 на присоединение 134, 147
Queries 148 на создание таблицы 174
ieports 221 на удаление 184
ables 150 перекрестный 193
эженные подзапрос 147
'тчеты 97 с дополнительными условиями 159
траницы доступа к данным 114 с использованием групповых
аблицы 50 операций 153, 154
юрмы 62 с параметрами 166
гшний ключ 47 со связями 169
ражение 223 управляющий 147
Алфавитный указатель 269
И Л
Иерархические Логические
дерево 51 выражения 15
структуры 50, 54 структура 23
Импорт 125
Инструкция
м
On Error 234 Макрокоманды 142
Resume 235 Макрооператоры 142
SQL 151, 157 Макрос 142
Маркер 117
К Мастер 14
запросов 181
Картографическая информация
кнопок 70
Ключевые слова 227
отчетов 95
INNER JOIN 167
печати связей 52
ON 167
подстановок 42
WHERE 158
преобразования поля 34
Код 31 страниц 109
Visual Basic 260 таблиц 28, 54, 86
записи 237 форм 58
первичный 30 Методы VBA 220
репликации 48 Модуль 100
Количество записей 164 класса 223
Командная кнопка 247
Конвертация 14,124 н
Конвертеры 123, 140 Набор ANSI 210
Конкатенация 185 Начальная форма 64, 90
Константа 223
внутренняя 224
О
символьная 224 Обработка
Конструктор ошибок 234
кнопок 72 событий 206, 217
макросов 214 Объекты 220
Окно
отчетов 92
базы данных 75
страниц 115
диалоговое 60
таблиц 32
конструктора 94
Контекстное меню 67
мастера 70
Копии таблиц 263
модуля VBА 221
Корневая часть слова 159 редактирования связей 48
Критерии Операнд 167
выбора СУБД 14 Операторы 143
выражения 256 Операция замены/вставки 132
значения поля 256 Описатели 225
270 Access 2000