Чтение онлайн

на главную - закладки

Жанры

Access 2002. Самоучитель
Шрифт:

Итак, приступим к решению поставленной задачи. Оно включает по крайней мере три последовательных этапа:

• выборка данных из одной таблицы (обычно выбирать записи по каким-либо критериям не нужно, поэтому можно взять исходную таблицу целиком). Назовем этот этап – запрос на выборку;

• создание таблицы, в которую будут сведены записи из различных исходных таблиц, – запрос на создание таблицы;

• добавление в новую таблицу записей из следующей (следующих) таблицы (таблиц) – запрос на добавление записей.

Операцию выборки мы уже изучили выше. Теперь рассмотрим по отдельности второй и третий этапы, а затем всю процедуру объединения записей в комплексе.

Запрос на выборку

В конечном счете полученная выборка должна содержать поля из таблиц Fiie1 и ES_OPER. В исходном виде эти таблицы содержат сотни и тысячи записей. Поэтому, чтобы не оперировать с очень большими массивами информации (что, впрочем, неизбежно, если надо создать единый банк данных из разнородных информационных

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

Сначала сформируйте новый запрос на выборку. Он должен указывать те поля, которые вы хотите скопировать в создаваемую таблицу. Как и в предыдущих разделах книги, запрос будет построен с помощью конструктора. Все операции, связанные с созданием запроса, вам уже знакомы. Итак, введите в него все поля таблицы ES_OPER, а также условия отбора: в поле Текст сообщения — составной критерий (*Тюменск* AND * нефтепровод*) – рис. 11.36.

Рис. 11.36

Теперь с помощью кнопки

проверьте, правильно ли производится отбор (см. рис. 11.37). Убедившись в этом, можете формировать запрос на создание таблицы.

Рис. 11.37

Щелкните по стрелке прокрутки справа от кнопки

(Тип запроса) на панели инструментов (см. окно, показанное на рис. 11.36). Активизируйте режим Запрос на создание таблицы. После этого Access 2002 попросит вас назвать таблицу. Назовите ее просто Выборка1 (см. рис. 11.38).

Рис. 11.38

Запрос на выборку будет автоматически преобразован в запрос на создание таблицы, как показано на рис. 11.39. Как легко убедиться, по своей структуре он полностью совпадает с запросом, показанным на рис. 11.36, различаются лишь названия этих запросов. Если теперь вы дадите команду выполнить этот запрос, то во вкладке Таблицы окна базы данных появится таблица Выборка1. Ее содержание полностью соответствует тому, что вы видели на рис. 11.37. Остается реализовать вторую часть задачи: сформировать и выполнить запрос на добавление записей в таблицу.

Рис. 11.39

Запрос на объединение разнородных таблиц в одну таблицу

Такой запрос позволит добавить в уже имеющуюся таблицу новые записи из другой таблицы. Существенно, что таблицы могут быть как похожими, так и различными по структуре; они могут иметь неодинаковое количество полей с разными именами. Как мы уже знаем, чтобы включить новые данные в таблицу, надо сначала создать и выполнить обычный запрос на выборку, а затем указать, в какие именно поля какой таблицы следует поместить поля с новыми записями.

Снова запрос на выборку

Создайте запрос на выборку из таблицы Fiie1 и укажите в нем условия отбора записей. По структуре эта таблица отличается от таблицы ES_OPER. В частности, основная текстовая информация таблицы Fiie1 содержится в поле Характеристика ЧС. Поэтому условия отбора данных в запросе, который вы создаете, будут отличаться от критериев, введенных для таблицы ES_OPER. Поскольку необходимо отфильтровать записи об авариях на нефтепроводах Тюменской области, в запросе на выборку введите в поле Регион выражение *Тюменск*, а в поле Характеристика ЧС — Нефтепровод* (неизменяемые части слов – с учетом того, что говорилось выше о возможности употребления слова в разных падежах). Сформированный запрос показан на рис. 11.40.

Рис. 11.40

С помощью кнопки

выполним этот запрос и получим выборку из таблицы Fiie1, содержащую две записи. Она включает 5 полей, интересующих нас в этой таблице (рис. 11.41).

Рис. 11.41

Таким образом, наша задача состоит в том, чтобы объединить в одной таблице записи из таблиц на рис. 11.37 и 11.41, имеющих разную структуру. Напомним, что состав полей в этих таблицах отобран нами из всего множества содержащихся в них полей.

Теперь надо

выполнить запрос на создание таблицы. Мы выполнили его немного раньше, в результате чего имеем таблицу Выборка1.

Задайте тип запроса. Пусть это будет запрос на добавление. На экране вновь появится окно Добавить. В нем следует выбрать опцию Присвоить имя таблице. Так как вы уже вводили ее имя на предыдущем этапе, просто щелкните по стрелке прокрутки и в открывшемся списке укажите позицию Выборка1 (рис. 11.42).

Рис. 11.42

Затем щелкните по кнопке ОК, и на экране возникнет окно Запрос на добавление (рис. 11.43). Перед тем как дать команду на его выполнение, обязательно укажите, в какое поле таблицы-получателя Выборка1 надо поместить данные из соответствующего столбца таблицы ES_OPER.

Рис. 11.43

Как вы помните, эти две таблицы различны по структуре, а также по набору и формату полей. Поэтому соответствие полей обеих таблиц определяет пользователь индивидуально для каждой ситуации. В данном случае – согласно табл. 11.1, где в левом столбце представлены поля, которые мы хотим включить в итоговую объединенную таблицу, а в правом – те столбцы из таблицы ES_OPER, которые должны «поставлять» информацию в объединенную таблицу. Таблица 11.1

Поля, не имеющие аналогов в правом столбце табл. 11.1, следует ввести в таблицу Выборка1 вручную (если они изначально в этой таблице отсутствуют – в нашем случае – поле Текст сообщения). Это знакомая нам корректировка структуры таблицы с помощью конструктора таблиц показана на рис. 11.44. Если поле в столбце таблицы Выборка1 имеет аналог в правом столбце, это означает, что информация из данного поля в таблице ES_OPER включается в соответствующее поле таблицы Выборка1.

Рис. 11.44

С учетом всего сказанного правила построения запроса на добавление (на примере рис. 11.43) таковы:

• базовой таблицей для запроса на добавление является дополнительная (в отличие от основной, на которой построена таблица Выборка1 . В данном случае такой дополнительной таблицей является ES_OPER, а основной – File1;

• в качестве полей в запрос включаются только те дополнительные поля, которых не хватает в таблице Выборка1 для формирования в ней объединенной информации. В данном случае – поля Дата ЧС, Виды ЧС, Текст сообщения, Населенный пункт;

• в графе запроса Добавление указываются те поля в таблице Выборка1 , куда заносится информация из отобранных полей дополнительной таблицы (ES_OPER).

Теперь, когда введены все необходимые поля и готовый запрос на добавление (рис. 11.43), осталось только щелкнуть по кнопке

В результате выполнения запроса на экране появится предупреждение о том, что в таблицу Выборка! будет включено еще 11 отобранных записей (рис. 11.45) в дополнение к тем двум записям, которые были получены на первом шаге из таблицы Fiie1 (см. рис. 11.41).

Рис. 11.45

Итоговая таблица с объединенной информацией показана на рис. 11.46.

Рис. 11.46

Итак, вы убедились, что Access 2002 позволяет объединять сведения из таблиц с разной структурой записей. Это очень важно в практической работе.

Запрос на удаление записей

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

В принципе можно удалить запись из БД и без помощи запроса, а непосредственно из формы, как описывалось в главе 4. Кроме того, можно просто открыть таблицу и удалить выбранную запись. Однако суть проблемы именно в этом слове – «выбранная». Когда число записей в таблице растет и их счет идет на тысячи, определение «жертвы» превращается в сложное и трудоемкое мероприятие. Использование запроса на выборку помогает решить такую задачу.

В окне конструктора создайте обычный запрос на выборку (см. рис. 11.4). Затем с помощью уже хорошо известной вам кнопки

Поделиться:
Популярные книги

Сын Тишайшего

Яманов Александр
1. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.20
рейтинг книги
Сын Тишайшего

"Искажающие реальность" Компиляция. Книги 1-14

Атаманов Михаил Александрович
Искажающие реальность
Фантастика:
боевая фантастика
космическая фантастика
киберпанк
рпг
5.00
рейтинг книги
Искажающие реальность Компиляция. Книги 1-14

Школа. Первый пояс

Игнатов Михаил Павлович
2. Путь
Фантастика:
фэнтези
7.67
рейтинг книги
Школа. Первый пояс

Невеста на откуп

Белецкая Наталья
2. Невеста на откуп
Фантастика:
фэнтези
5.83
рейтинг книги
Невеста на откуп

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Аргумент барона Бронина 4

Ковальчук Олег Валентинович
4. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 4

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Измена. Право на обман

Арская Арина
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на обман

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Жаба с кошельком

Донцова Дарья
19. Любительница частного сыска Даша Васильева
Детективы:
иронические детективы
8.26
рейтинг книги
Жаба с кошельком

Бастард Императора. Том 11

Орлов Андрей Юрьевич
11. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 11

Академия чаросвет. Тень

Ярошинская Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Академия чаросвет. Тень

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4