- •Часть I. Хранение данных в таблицах 34
- •Глава 1. Создание вашей первой базы данных 35
- •Глава 2. Создание более сложных таблиц 66
- •Глава 3. Обработка листа данных: сортировка, поиск,
- •Глава 4. Блокировка неправильных данных 136
- •Глава 5. Связывание таблиц с помощью отношений 168
- •Часть II. Обработка данных с помощью запросов 206
- •Глава 6. Запросы, выбирающие записи 207
- •Глава 7. Основные хитрости, применяемые в запросах 241
- •Глава 8. Запросы, обновляющие записи ..272
- •Глава 9. Анализ данных с помощью перекрестных запросов и
- •Часть III. Отчеты 323
- •Глава 10. Создание отчетов 324
- •Глава 11. Проектирование сложных отчетов 356
- •Часть IV. Разработка пользовательского интерфейса
- •Глава 12. Создание простых форм 392
- •Глава 13. Проектирование сложных форм 426
- •Глава 14. Создание системы переходов 465
- •Часть V. Программирование в access 496
- •Глава 15. Автоматизация задач с помощью макросов 497
- •Глава 16. Автоматизация выполнения задач средствами языка
- •Глава 17. Написание кода с более развитой логикой 571
- •Часть VI. Совместное использование access 615
- •Глава 18. Совместное использование бд несколькими пользователями 616
- •Глава 19. Импорт и экспорт данных 650
- •Глава 20. Подключение Access к sql Server 692
- •Глава 21. Подключение Access к SharePoint 724
- •На профессиональном уровне. Преимущества хорошо спроектированной базы данных
- •Для тех, кто понимает. Когда программы Access недостаточно
- •Уголок ностальгии. Зачем опять изобретать колесо?
- •Уголок ностальгии. Сочетания клавиш в Access 2003
- •Часть I
- •Часто задаваемый вопрос. Использование чужой бд
- •На профессиональном уровне. Шаблоны, подходящие для разных целей
- •На профессиональном уровне. Работа Access в интерактивном режиме
- •Для тех, кто понимает. Использование Access бд, созданных в более ранних версиях программы
- •На профессиональном уровне. Проектирование бд для начинающих
- •На профессиональном уровне. Вставка больших значений в узкие столбцы
- •Для тех. Кто понимает. Если сомневаетесь, не удаляйте
- •Малоизвестная или недооцененная возможность. Копирование записи целиком за один шаг
- •Малоизвестная или недооцененная возможность. Сжатие бд
- •Часто задаваемый вопрос. У какого файла расширение laccdb?
- •Практические занятия для опытных пользователей. Изменение папки, которую Access использует для хранения бд
- •Малоизвестная или недооцененная возможность. Сворачивание ленты
- •Экономящая время подсказка. Создание ярлыка для таблицы
- •Глава 2
- •Для тех, кто понимает. Изменение типа данных может привести к потере информации
- •На профессиональном уровне. Нормативы максимальной длины
- •На профессиональном уровне. Как Access предотвращает дублирование записей
- •На профессиональном уровне. Почему так важна уникальность
- •Глава 3
- •Малоизвестная или недооцененная возможность. Настройка всех листов данных
- •На профессиональном уровне. Числа и специальные символы в текстовых полях
- •Практические занятия для опытных пользователей. Фильтры в противоположность запросам
- •Малоизвестная или недооцененная возможность. Поиск и замена
- •Глава 4
- •Для тех, кто понимает. Не требуйте слишком многого
- •На профессиональном уровне. Как работают индексы
- •Часто задаваемый вопрос. Индексы и производительность
- •Практические занятия для опытных пользователей. Вставка вашей маски в список масок программы
- •На профессиональном уровне. Создание списка подстановки, использующего другую таблицу
- •Глава 5
- •Часто задаваемый вопрос. Отключение обеспечения целостности данных
- •Для тех, кто понимает. Пользуйтесь каскадным удалением с осторожностью
- •Практические занятия для опытных пользователей. Изменение параметров подтаблицы
- •Часто задаваемый вопрос. Обновление списка
- •Для тех, кто понимает. Применяйте связи "один-к-одному" с осторожностью
- •Часто задаваемый вопрос. Работа со связями "многие-ко-многим"
- •Часто задаваемый вопрос. Печать ваших отношений
- •Часть II
- •Для тех, кто понимает. Не бойтесь подстановок
- •На профессиональном уровне. Синтаксис фильтра
- •Практические занятия для опытных пользователей. Как индексы ускоряют поиск
- •Малоизвестная или недооцененная возможность. Запросы на базе запросов
- •Для тех, кто понимает. Подумайте дважды, прежде чем изменять структуру таблиц
- •На профессиональном уровне. Сравнение: отношения и объединения
- •На профессиональном уровне. Изменение данных при использовании запроса с объединением
- •Глава 7
- •На профессиональном уровне. Синхронизация запросов
- •Малоизвестная или недооцененная возможность. Переименование поля в запросе
- •Часто задаваемый вопрос Банковское округление
- •Практические занятия для опытных пользователей. Улучшенные числовые форматы
- •Малоизвестная или недооцененная возможность. Использование случайных чисел для сортировки в случайном порядке
- •Практические занятия для опытных пользователей. Как извлечь первое слово из текстовой строки
- •Для тех, кто понимает. Вычисления для дат и времени
- •Глава 8
- •Аварийная ситуация. Когда Access блокирует ваше обновление
- •Малоизвестная или недооцененная возможность. Скрытие запроса
- •Глава 9
- •Часто задаваемый вопрос. Итоговый проигрыш; итоговый запрос против перекрестного
- •Для тех, кто понимает. Создание запроса с объединением для лучшей группировки
- •На профессиональном уровне. Правильный выбор групп
- •Малоизвестная или недооцененная возможность. Помещение сводных таблиц в их собственные формы
- •Часть III
- •Глава 10. Создание отчетов
- •Глава 11. Проектирование сложных отчетов
- •Глава 10
- •На профессиональном уровне. Выполнение тяжелой работы с помощью запроса
- •Часто задаваемый вопрос. Добавление изображений в отчеты.
- •На профессиональном уровне. Учитесь любить pdf-файлы
- •Часто задаваемый вопрос. Разные способы экспорта данных
- •Малоизвестная или недооцененная возможность. Формат по образцу.
- •Практические занятия для опытных пользователей. Разные линии сетки
- •Глава 11
- •Часто задаваемый вопрос. Ошибки выражений
- •Часть IV
- •На профессиональном уровне. Поля типа Счетчик в формах
- •На профессиональном уровне. Разные люди — разные формы
- •Малоизвестная или, недооцененная возможность. Вывод на экран изображений из бд
- •На профессиональном уровне. Семейство форм Access
- •Глава 13
- •На профессиональном уровне. Присоединенные элементы управления
- •Малоизвестная или недооцененная возможность. Повторное применение ваших любимых настроек стиля границ
- •Часто задаваемые вопросы. Осовременивание элементов управления Windows
- •Практические занятия для опытных пользователей. Как освободиться от привязки к сетке
- •На профессиональном уровне. Насколько велик ваш экран?
- •Глава 14
- •Малоизвестная или недооцененная возможность. Варианты сортировки и просмотра в области переходов
- •На профессиональном уровне. Кнопочные формы с несколькими страницами
- •За кадром. Меню кнопочных форм сохраняются в бд
- •Часть V
- •На профессиональном уровне. Макросы по сравнению с программным кодом
- •Практические занятия для опытных пользователей. Обработка ошибок макроса
- •На профессиональном уровне. Макрокоманды, которым Access не доверяет
- •На профессиональном уровне. ОтправитьОбъект работает с вашей программой элекронной почты
- •Часто задаваемый вопрос. Внедренный макрос
- •Глава 16
- •Малоизвестная или недооцененная возможность. Справка по Visual Basic
- •Для тех кто понимает. Как код связывается с событиями
- •Малоизвестная или недооцененная возможность Разбиение длинных строк кода
- •На профессиональном уровне. Взаимодействие с другими формами
- •Практические занятия для опытных пользователей. Получение нужного цвета
- •Часто задаваемый вопрос. Ленточные формы и неприсоединенные элементы управления
- •Практические занятия для опытных пользователей. Связывание записей с рисунками
- •Глава 17
- •Практические занятия для опятных пользователей. Применение более сложных переменных
- •Практические занятия для опытных пользователей. Применение пользовательских функций в запросах
- •На профессиональном уровне. Алгоритм Луна (Luhn Algorithm)
- •Часто задаваемый вопрос. Запуск других Windows-программ
- •На профессиональном уровне. Станьте знатоком статистических функции по подмножеству
- •Уголок ностальгии. Dао против аdо
- •Часть VI
- •Для тех, кто понимает. Поиск места в сети для вашей бд
- •На профессиональном уровне Указание местонахождения в сети
- •Часто задаваемый вопрос. Как поведут себя старые версии Aсcess?
- •Аварийная ситуация. Мистическая ошибка “Файл уже используется”
- •Часто задаваемый вопрос. Когда не следует пользоваться форматом accde
- •Уголок ностальгии. Отмирание страниц доступа к данным
- •Практические занятия для опытных пользователей. Разделение таблиц для более безопасных корректировок
- •Уголок ностальгии. Защита с помощью рабочих групп упразднена
- •Глава 19
- •На профессиональном уровне. Sql Server и SharePoint: два частных случая
- •Сберегающая время подсказка. Копирование из одной бд в другую
- •На профессиональном уровне. Опасность дубликатов
- •Малоизвестная или недооцененная возможность. Экспорт отчетов
- •На профессиональном уровне. Более внимательный взгляд на теги
- •Глава 20
- •На профессиональном уровне. Важнейшие причины перехода на sql Server
- •Часто задаваемые вопрос. Можно ли доверять корпорации Microsoft?
- •На профессиональном уровне. Проекты Access по сравнению со связанными таблицами
- •0 Запросах
- •Для тех, кто понимает. Синтаксические различия
- •Глава 21
- •Часто задаваемый вопрос. Путаница, связанная с SharePoint
- •На профессиональном уровне. Установка SharePoint
- •На профессиональном уровне. Пять интересных инструментов программы SharePoint, которые стоит опробовать
- •Малоизвестная или недооцененная возможность.
- •Малоизвестная или недооцененная возможность. Представление таблицы данных Access
- •Малоизвестная или недооцененная возможность. Параметры списков SharePoint
Часть II
Обработка данных с помощью запросов
Глава 6. Запросы, выбирающие записи
Глава 7. Основные хитрости, применяемые в запросах
Глава 8. Запросы, обновляющие записи
Глава 9. Анализ данных с помощью перекрестных запросов и сводных таблиц
Глава 6
Запросы, выбирающие записи
В типичной БД с тысячами или миллионами записей поиск нужной информации может оказаться трудной и неприятной работой. В главе 3 вы узнали, как отправляться на охоту, вооружившись средствами, предлагаемыми на листе данных, включая фильтрацию, поиск и сортировку. На первый взгляд эти средства могут показаться отличным способом добывания крупиц глубоко спрятанной информации. Но, к сожалению, средства листа данных временны.
Для того чтобы понять, о чем идет речь, представьте себе, что вы создаете БД в программе Access для компании Boutique Fudge, принимающей по почте заказы на пищевые продукты. С помощью фильтрации, сортировки и скрытия столбцов можно сократить таблицу Orders, так чтобы в ней отображались только самые дорогие заказы, сделанные в прошлом месяце. (Эти сведения хороши для выявления транжир или ведения кампании маркетинга самых кодовых товаров (hot marketing).) Затем можно применить другой набор параметров, чтобы определить клиентов, заказывающих более пяти фунтов (2 кг) сливочной помадки каждую субботу. (Вы могли бы использовать эти данные для более детального исследования рынка сбыта или для передачи Министерству здравоохранения.) Но каждый раз, применяя на листе данных новый набор параметров, вы теряете предыдущие результаты. Если нужно перейти от одной выборки к другой, придется скрупулезно переопределять все ваши параметры. Если на создание удачного представления ваших данных было затрачено какое-то время, этот процесс добавит вам много ненужной дополнительной работы.
Решить описанную проблему можно с помощью запросов: заранее подготовленных процедур поиска, которые хранятся в вашей БД. Несмотря на то, что у компании Boutique Fudge только одна таблица Orders, у нее могут быть десятки (и больше) запросов с разными параметрами фильтрации и сортировки каждый. Если вы ищете самые дорогостоящие заказы, вам не нужно применять фильтрацию и сортировку вручную — вместо этого вы можете просто запустить запрос MostExpensive Orders LastMonth (самые дорогостоящие заказы за последний месяц) и он извлечет только нужную вам информацию. Аналогичным образом, если нужно найти страстных любителей сливочной помадки, можно выполнить запрос LargeRepeatFudgeOrders (большие, повторяющиеся заказы сливочной помадки).
Запросы — основной элемент проекта БД. В данной главе вы узнаете все, что нужно для разработки и тонкой настройки базовых запросов.
Основные сведения о запросах
Как следует из названия, запросы позволяют сформировать вопросы о ваших данных, например, какие продукты приносят больше всего денег, где живет большинство клиентов и
кто заказал разукрашенную зубную щетку? Программа Access сохраняет каждый запрос в вашей БД, как любой другой ее объект (см. разд. "Что такое базы данных Access" главы 1). Сохранив запрос, вы можете выполнить его в любое время, когда захотите взглянуть на реальные данные, отвечающие заданным вами критериям.
Основное достоинство запросов заключается в их способности многократно выполнять тяжелую работу за вас. Кроме того, запросы открывают новые функциональные возможности, которых вы лишены при использовании только листа данных.
Запросы могут объединять связанные таблицы. Такая возможность невероятно полезна, т. к. позволяет при поиске принимать в расчет связанные данные. В примере с компанией Boutique Fudge благодаря этой способности можно создать запросы, которые находят заказы конкретных продуктов или заказы клиентов, живущих в определенных городах. Оба эти поиска должны использовать связи, т. к. они выходят за пределы таблицы Orders и включают данные из других таблиц (например, Products (товары) и Customers (клиенты)). Как действуют такие запросы, вы узнаете в разд. "Запросы и связанные таблицы "далее в этой главе.
Запросы могут выполнять вычисления. В таблице Products БД Boutique Fudge приведены сведения о ценах наряду с данными о количестве товаров на складе. Запрос может перемножить эти данные, а затем вставить столбец, в котором представлена вычисленная стоимость товара, находящегося у вас под рукой. В главе 7 вы попробуете выполнить такой подсчет.
Запросы могут подсчитывать итоги. Для анализа больших массивов данных вы можете сгруппировать строки с подобными данными. Можно сгруппировать вместе заказы одного клиента, чтобы узнать его максимальные затраты. Или вы можете сгруппировать заказы по продуктам, чтобы на лету построчно сравнить объем продаж товара ThermoNutcular Fudge с объемом продаж продукта Vanilla Bean Dream. С этим методом вы познакомитесь в главе 7.
Запросы могут автоматизировать внесение изменений. Если нужно найти все заказы, сделанные определенным человеком, и снизить стоимость каждого на 10%, запрос можно применить сразу к группе записей. Это действие требует применения запроса другого типа, запроса на изменение (action query), с которым вы познакомитесь в главе 8.
В данной главе рассматривается простейший и самый распространенный тип запроса: запрос на выборку (select query), который извлекает подмножество данных из таблицы. После получения этого подмножества вы можете напечатать или отредактировать его с помощью листа данных так же, как таблицу.
Создание запросов
Программа Access предлагает три способа создания запросов.
■ Мастер запросов предоставляет самый легкий способ построения простого запроса. Но этот метод обладает минимальным набором средств управления.
Примечание
Если вы решите использовать Мастер запросов для формирования вашего запроса, возможно, впоследствии вам придется переопределить этот запрос с помощью Конструктора.
Конструктор предлагает самый общий метод построения запросов. Он обладает удобным графическим инструментом, который можно применять для улучшения вашего запроса.
В Режиме SQL вы можете увидеть скрытую команду запроса, представляющую собой текстовый фрагмент (состоящий из одной строки или десятка строк), который задает конкретные действия программе Access. Многие профессиональные разработчики творят именно в Режиме SQL, и хотя на первый взгляд он кажется мудреным, на самом деле в нем не так трудно разобраться.
Создание запроса в Конструкторе
Лучшая стартовая точка для создания запроса — режим Конструктора. Далее перечислены необходимые действия. (Для того чтобы самостоятельно попробовать создать запрос, можно использовать базу данных BoutiqueFudge.accdb, включенную в примеры к данной главе, загружаемые из Интернета.) Окончательный результат — запрос, получающий данные за 2007 г. — показан на рис. 6.6.
Рис.6.1. Вы уже видели окно Добавление таблицы — с его помощью вы вставляли таблицы в схему данных в главе 5
Далее описано, что следует сделать.
1. Выберите Создание → Другие → Конструктор запросов (Create → Other → Query Design).
Па экране появится новое окноКонструктора, в котором вы сможете создать вага запрос. Но сначала программа Access распахивает диалоговое окно Добавление таблицы (Show Table), в котором можно выбрать таблицы для обработки (рис. 6.1).
2. Выберите таблицу, содержащую нужные вам данные, и щелкните мышью кнопку Добавить (Add) (или дважды щелкните таблицу кнопкой мыши).
В примере с БД Boutique Fudge вам нужна таблица Orders.
Access вставляет прямоугольник, представляющий таблицу в окне Конструктора. Вы можете повторить этот шаг и вставить несколько связанных таблиц, но пока остановимся на одной.
3. Щелкните мышью кнопку Закрыть (Close).
Диалоговое окно Добавление таблицы исчезает, открывая доступ в Конструктор для формирования запроса.
Рис. 6.2. Каждый двойной щелчок мышью поля в прямоугольнике таблицы заставляет программу Access добавлять это поле к списку полей в нижней части окна. Вы задаете условия отбора и сортировку для этого столбца. Если не хотите возвращать мышь в прямоугольник таблицы, можно добавить поле прямо из списка столбца, выбрав его имя из раскрывающегося списка в строке Поле
4. Выберите поля, которые хотите включить в ваш запрос.
Для выбора поля в прямоугольнике таблицы щелкните поле дважды кнопкой мыши (рис. 6.2). Не включайте одно и то же поле дважды, иначе столбец будет отображаться
два раза. Если вы пользуетесь примером Boutique Fudge, обязательно выберите, по крайней мере, поля ID, DatePlaced и CustomerID.
Для того чтобы выбрать все поля из таблицы, можно щелкнуть дважды кнопкой мыши звездочку (*). Но в большинстве случаев лучше добавлять каждое поле отдельно. Такой способ не только помогает видеть, каков ваш запрос, но и позволяет выбрать порядок столбцов о запросе и использовать поле для сортировки и фильтрации.
Примечание
Хороший запрос содержит только самые нужные поля. Чем меньше полей в запросе, тем легче сконцентрироваться на важной информации (и легче разместить распечатку на странице).
5. Расположите поля слева направо в том порядке, в каком вы хотите, чтобы они появились на экране результатов запроса.
При выполнении запроса столбцы появляются в том же порядке, в каком они перечислены в списке столбцов в Конструкторе. (Обычно это означает, что столбцы выводятся слева направо в том порядке, в каком вы их добавляете.) Если вы хотите изменить порядок, то нужно переместить столбцы с помощью мыши (как показано на рис. 6.3).
Рис. 6.3. Для реорганизации столбцов перетащите с нажатой кнопкой мыши серую полоску на вершине столбца, который вы хотите перенести на новое место. Такой же способ применяется для упорядочивания столбцов на листе данных. В рассматриваемом примере поле DatePlaced перемещается в крайнее левое положение
6. Если вы хотите скрыть один или несколько столбцов, сбросьте у них флажок Вывод на экран (Show).
Как правило, программаAccess отображает все столбцы, добавленные в список столбцов. Но в некоторых ситуациях вам нужен столбец при обработке запроса, но отображать его данные нет никакой необходимости. Обычно так бывает, если значения столбца применяются для сортировки или фильтрации.
7. Выберите порядок сортировки.
Если вы не зададите порядок сортировки, то получите записи прямо из БД в том порядке, в каком они там хранятся. Это правило обычно (но не всегда) означает, что самые ранние записи появятся первыми, в верхней части таблицы. Для явной сортировки таблицы выберите поле, которое вы хотите использовать для сортировки результатов, и затем в соответствующем поле Сортировка (Sort) задайте вариант упорядочивания. В данном примере таблица сортируется по дате в порядке убывания, поэтому самые последние заказы оказываются первыми в списке (рис. 6.4).
Рис. 6.4. Выберите вариант по возрастанию, если хотите отсортировать текстовое поле от А до Я, а числовое поле от меньшего значения к большему или поле даты от самой давней к самой свежей дате. Выберите вариант по убыванию для обратного порядка
Подсказка
Вы можете сортировать по нескольким полям. Единственная хитрость заключается в том, что столбцы должны быть упорядочены таким образом, что первый сортируемый столбец выводится первым (слева) в списке столбцов. Для получения корректных результатов воспользуйтесь методом переупорядочивания столбцов, описанным в пункте 5.
Задайте условие фильтрации или отбора.
Фильтрация (см. разд. "Фильтрация" главы 3) — это средство, позволяющее акцентировать внимание только на интересующих вас записях и игнорировать все остальные.
Фильтрация или отбор урезает большой пласт данных до нужной вам информации и является сутью множества запросов. (Вы узнаете больше о создании условий фильтрации в следующем разделе.)
Если вы сформировали нужное условие фильтрации, поместите его в поле Условие отбора (Criteria) соответствующего поля (рис. 6.5). В данном примере можно поместить это условие в Условие отбора поля DatePlaced таблицы для того, чтобы выбрать заказы, сделанные в течение первых трех месяцев года: >=#1/1/2007# And <=#3/31/2007#
Вы можете не ограничиваться одним фильтром — на самом деле можно вставить собственное условие отбора в каждое поле. Если вы хотите использовать поле для фильтрации, но не желаете выводить его на экран в окне результата, сбросьте флажок Вывод на экран для этого ноля.
Рис. 6.5. Здесь показан фильтр, определяющий заказы, сделанные в заданном диапазоне дат (с 1 января по 1 марта в 2007 году). Учтите, что когда вы используете реальную жестко закодированную дату как часть условия (например, 1 января 2007 г. в данном примере), ее следует обрамлять символами #
9, Выберите Работа с запросами | Конструктор → Результаты → Выполнить (Query Tools | Design → Results → Run).
Теперь создание запроса закончено и он готов к выполнению. Когда вы запустите запрос, то увидите результаты, представленные на листе данных (дополненные подстановками в связанных полях) и напоминающие таблицу в режиме редактирования. (На рис. 6.6 показан результат запроса к таблице Orders.)
Вернуться в Конструктор можно, щелкнув правой кнопкой мыши заголовок вкладки и выбрав команду Конструктор (Design View).
Рис. 6.6. Здесь представлены результаты запроса, отображающего заказы, сделанные в течение заданного временного периода. Окно листа данных можно использовать для просмотра и вывода на печать результатов или редактирования информации, так же как данных таблицы, отображенной на листе данных
Примечание
Лист данных с вашим запросом приобретает те же параметры форматирования, которые вы задали на листе данных с базовой таблицей. Если вы применили ярко-розовый фон и наклонный шрифт на листе данных с таблицей Orders, те же параметры будут у всех запросов, использующих таблицу Orders. Но вы можете изменить оформление вашего запроса точно так же, как и в случае таблицы.
10. Сохраните запрос.
Вы можете сохранить ваш запрос в любое время с помощью сочетания клавиш <Ctrl>+<S>. Если вы этого не сделаете, программа Access автоматически сохранит его, когда вы закроете вкладку запроса (или всю вашу БД). Конечно, вы не обязаны сохранять ваш запрос. Иногда запрос создается для конкретной решаемой один раз задачи. Если вы не планируете повторно использовать запрос, нет смысла загромождать вашу БД лишними объектами.
При первом сохранении запроса программа Access запрашивает его имя. Применяйте те же правила именования, которым вы следуете при задании имен таблиц — воздержитесь от использования пробелов и специальных символов и делайте заглавной первую букву каждого слова. Удачное имя запроса описывает представление данных, которое он формирует. Хороший выбор FirstQuarterOrders_2007 (заказы первого квартала 2007) показан на рис. 6.6.
Примечание
Помните о том, что, сохраняя запрос, вы сохраняете не результаты, а структуру запроса со всеми его параметрами. В этом случае вы можете выполнить запрос в любое время и получить реальные результаты, соответствующие вашим условиям отбора.
После создания запроса вы увидите его в области переходов вашей БД (рис. 6.7). Если использовать стандартный режим отображения Все таблицы (All Tables), запрос появится под таблицей, которую он использует. Если запрос использует несколько таблиц, он появится в нескольких группах области переходов.
Вы можете запустить запрос в любой момент, дважды щелкнув его кнопкой мыши. Предположим, что вы создали запрос с именем TopProducts, который захватывает все дорогие
продукты из таблицыProducts (с помощью условия фильтра >50 в поле Price). Если нужно просмотреть, отредактировать или напечатать информацию о дорогих товарах, вы выполняете запрос TopProducts. Для тонкой настройки параметров запроса щелкните его правой кнопкой мыши в области переходов и затем выберите режим Конструктор.
Рис. 6.7. По умолчанию в области переходов ваши запросы выводятся сразу под таблицами, которые они используют. Например, запрос TopProducts (показанный здесь) появляется под таблицей Products
Программа Access разрешает открывать одновременно таблицу и любые запросы, ее использующие. (Все они отображаются на отдельных вкладках.) Но вы не сможете изменить структуру таблицы, пока не закроете все запросы на базе этой таблицы.
Если вы добавляете в таблицу записи, когда открыт запрос, новые записи не будут автоматически появляться в запросе. Вам придется повторно выполнить ваш запрос. Самый быстрый способ — выбрать последовательность Главная → Записи → Обновить → Обновить все (Home → Records → Refresh → Refresh All). Можно также закрывать запрос и снова открывать его, поскольку Access каждый раз выполняет запрос, когда вы открываете его в Режиме таблицы.
Примечание
Напоминаю, запрос — это представление некоторой части данных вашей таблицы. Когда вы редактируете результаты вашего запроса, программа Access изменяет данные в базовой таблице. С другой стороны, совершенно безопасно переименовывать, изменять и удалять запросы — в конце концов, они существуют для облегчения вашей жизни.
Построение условий отбора
Секрет хорошего запроса — извлечение только нужной вам информации и ничего больше. Для того чтобы сообщить программе Access, какие записи следует взять (а какие нужно игнорировать), вам понадобится условие фильтрации или отбора.
Условие отбора определяет интересующие вас записи. Если нужно найти осе заказы, сделанные клиентом с номером 1032, можно применить следующее условие отбора:
=1032
Для того чтобы заставить это условие действовать, необходимо поместить его в поле Условие отбора (Criteria) под полем CustomerID.
В этом поле можно написать просто 1032 вместо =1032, но лучше придерживаться второй формы, поскольку этот шаблон применяется в более сложных условиях фильтрации. Они начинаются с оператора (в данном случае знака равенства), определяющего способ сравнения данных программой Access, за которым следует значение (в данном случае 1032), которое вы хотите применять для сравнения.
Примечание
Если вы используете многозначное поле (см. разд. "Многозначные поля" главы 5), программа Access включает в результаты запроса запись, хотя бы одно значение которой соответствует условию отбора. Представьте себе, что таблица Classes содержит многозначное поле InstructorID (указывающее на то, что несколько преподавателей могут объединиться для ведения одного и того же учебного курса). Если написать условие =1032 в поле InstructorID, Access включает в результат любую запись, в которой преподаватель 1032 ведет класс независимо от того, назначены ли для ведения этого класса другие преподаватели.