- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Microsoft Access 2007 - Александр Днепров
Шрифт:
Интервал:
Закладка:
Текст итогового запроса с объединением приведен в листинге 6.15.
...Листинг 6.15.
Запрос на добавление
INSERT INTO Заказы (Дата, Товар, Количество, Сумма, Клиент)
SELECT Заказы. Дата, Заказы. Товар, Заказы. Количество, Заказы. Сумма,
Заказы. Клиент
FROM Заказы;
8. Перейдите на вкладку Конструктор и выберите команду Выполнить . Откроется окно подтверждения операции добавления.
9. Нажмите кнопку Да .
10. Откройте таблицу Заказы (рис. 6.30).
Рис. 6.30. Таблица Заказы после выполнения запроса на добавление
Теперь таблица Заказы содержит некорректные данные, которые необходимо исправить. Для этого используйте мастер запросов.
1. На вкладке Создание в группе Другие нажмите кнопку Мастер запросов . Откроется окно Новый запрос (рис. 6.31).
Рис. 6.31. Окно Новый запрос2. Теперь выберите пункт Повторяющиеся записи , а за тем нажмите кнопку ОК . Откроется окно Поиск повторяющихся записей (рис. 6.32).
Рис. 6.32. В этом окне нужно указать таблицу для поиска повторяющихся записей3. Укажите таблицу Заказы и нажмите кнопку Далее .
4. Выберите поля Дата , Товар , Клиент (рис. 6.33) и нажмите кнопку Готово .
Рис. 6.33. Здесь следует задать поля с повторяющимися значениямиБудет выведен список повторений по таблице Заказы (рис. 6.34).
Рис. 6.34. Результат поиска повторяющихся записейЕсли записи различаются значениями других полей, не вошедших в выборку, возможно, лучшим способом удаления будет удаление записей вручную, ведь только вы знаете критерий, по которому можно отделить корректные записи от ошибочных.
В данном случае записи действительно полностью одинаковые, и процесс их удаления хотелось бы автоматизировать запросом. Если просто преобразовать данный запрос на выборку в запрос на удаление, то удалятся все повторяющиеся записи. Обычно все же требуется оставить по одному экземпляру записей.
Чтобы получить желаемый результат, следуйте нижеприведенным действиям.
1. Добавьте в таблицу временное поле Сохранить логического типа. Это поле будет хранить значение 1 , если запись требуется оставить, и значение 0 – если удалить.
2. Оставьте все записи с минимальным значением поля Номер . Щелкните правой кнопкой мыши на заголовке вкладки запроса. Выберите пункт контекстного меню Режим SQL .
3. Скопируйте содержимое листинга 6.16 в запрос....Листинг 6.16.
Запрос на установку флага для последующего удаления дубликатов
UPDATE Заказы
SET Сохранить = 1
WHERE [Номер (ID)] IN
(SELECT Min([Номер (ID)]) FROM Заказы GROUP BY Заказы. Дата, Заказы.
Товар, Заказы. Клиент HAVING (((Count(Дата))>1) AND
((Count(Клиент))>1)))
Как видите, запрос является запросом на обновление, но в качестве условия используется упрощенный запрос на выборку, составленный мастером запросов. Запись помечается только в том случае, если ее номер совпадает с минимальным значением номера в ее группе дубликатов.
4. Перейдите на вкладку Конструктор и выберите команду Выполнить . Откроется окно подтверждения операции обновления.
5. Нажмите кнопку Да .
6. Откройте таблицу Заказы (рис. 6.35).
Рис. 6.35. Результат выполнения запроса
Теперь осталось удалить повторяющиеся записи с неустановленным флажком.
1. Откройте мастер запросов, как было описано выше. Выберите пункт Повторяющиеся записи и нажмите кнопку ОК .
2. Добавьте поля Товар , Дата , Клиент и нажмите кнопку Далее .
3. Добавьте поле Сохранить (рис. 6.36) и нажмите кнопку Готово .
Рис. 6.36. Окно поиска повторяющихся записей4. Щелкните правой кнопкой мыши на заголовке вкладки запроса. Выберите команду Конструктор .
5. В бланке запроса в строке Условие отбора для поля Сохранить введите 0.
6. На вкладке Конструктор в группе Тип запроса выберите команду Удаление .
Результирующий бланк запроса на удаление показан на рис. 6.37.
Рис. 6.37. Результирующий бланк запроса на удалениеТекст запроса на удаление приведен в листинге 6.17.
...Листинг 6.17.
Запрос на удаление дубликатов
DELETE Заказы. [Дата], Заказы. [Товар], Заказы. [Клиент],
Заказы. [Сохранить]
FROM Заказы
WHERE (((Заказы. [Дата]) In (SELECT [Дата] FROM [Заказы] As Tmp GROUP
BY [Дата],[Товар],[Клиент] HAVING Count(*)>1 And [Товар] =
[Заказы].[Товар] And [Клиент] = [Заказы].[Клиент])) AND
((Заказы. [Сохранить])=0));
7. Перейдите на вкладку Конструктор и выберите команду Выполнить . Откроется окно подтверждения операции удаления.
8. Нажмите кнопку Да .
9. Откройте таблицу Заказы и удалите поле Сохранить .
Таким образом, таблица Заказы приведена в исходное состояние, и все некорректные записи удалены.
Резюме
В данной главе вы узнали, что такое запросы на изменение и каких типов они бывают, научились преобразовывать запросы на выборку в запросы на изменение и выполнять эти запросы.
На практических примерах были рассмотрены случаи применения запросов на создание таблиц, добавление и удаление записей, обновление данных. Сфера применения запросов на изменение очень широка, поэтому приведенные примеры стоит рассматривать как общую концепцию построения запросов. Комбинирование различных условий выборки, объединений таблиц, встроенных функций, прямого редактирования SQL позволяет решить все задачи, которые могут возникнуть при работе с базами данных.
Глава 7 Создание и печать отчетов
Автоматическое создание отчета на основе данных таблицы или запроса
Создание отчета с использованием мастера
Экспорт отчетов Access
Создание снимков отчета и работа с ними
Режимы работы с отчетами
Форматирование элементов отчета
Панель элементов
Изменение свойств отчета и его элементов
Оформление внешнего вида отчета
Применение автоформата для отчета
Предварительный просмотр и печать отчета
Резюме
Чтобы получить наиболее полное представление о данных, содержащихся в таблицах и запросах, а также для удобства их использования и наглядности отображения, вся необходимая информация представляется в форме отчета. В данной главе вы узнаете об основных способах создания отчетов и редактирования уже готовых, научитесь работать с отчетами различной степени сложности, а также ознакомитесь с другими возможностями, предоставляемыми для этого программой Access 2007.
Автоматическое создание отчета на основе данных таблицы или запроса
Процесс создания отчета необходимо начинать с выбора полей, которые должны входить в отчет, а также определения таблиц или запросов, в которых эти поля находятся. Возможно, что при создании отчета вам могут потребоваться данные какой-нибудь одной таблицы, но чаще всего в нем должна содержаться информация из нескольких таблиц. В таком случае сначала должен быть создан запрос, который будет объединять в себе все нужные поля, взятые из разных таблиц.
Наиболее простым способом, позволяющим быстро решить эту задачу, является использование инструмента автоматического генерирования отчетов. Данное средство позволяет сформировать отчет, включающий в себя все необходимые записи используемой таблицы или запроса, что, в свою очередь, дает возможность быстро просматривать необходимые базовые данные. После этого отчет может быть изменен и сохранен в нужном виде.
Автоматически создать отчет можно следующим образом.
1. Необходимо выбрать источник записей, на основе которых требуется создать отчет. Для этого в области переходов щелчком кнопки мыши выделяется нужная таблица или запрос, как показано на рис. 7.1.
Рис. 7.1. Выбор таблицы или запроса для автоматического создания отчета
2. Затем нужно нажать кнопку Отчет , расположенную на вкладке Создание в группе Отчеты . После этого программа Access автоматически создаст отчет на основе выбранных вами данных и отобразит его в режиме макета.
Режим макета позволяет легко редактировать и видоизменять отчет, регулировать размеры столбцов, добавлять нужные поля, а также менять их местами. Кроме того, в режиме макета можно задавать практически любое размещение полей и записей, но чаще всего данные представляются в виде таблицы или в столбик.

