А.Ю. Гончаров Access 2003 (960524), страница 19
Текст из файла (страница 19)
Как видноиз рис. 5.6, ими могут быть объекты базы данных Access: таблицы, запросы,формы и т. д. Для облегчения поиска нужной информации список представленв таком же виде, как и дерево каталогов в Windows. Кроме этого, в левый списоквключены папки, содержащие функции, константы и операторы, которые могутбыть использованы в выражении. Средний список служит для показа элементов,входящих в выбранный объект из левого списка. Например, если в левой областиуказано имя конкретной таблицы (например, Заказано), то средний список будетсодержать имена ее полей.
Если выбрана «папка» с функциями, то средний список будет содержать перечень групп функций. И наконец, правый список служитЗапросы103Построитель выражений[Эаказано]![Цеиз] * [Эак эано]! [Количеств о]|ОКОтмена \ }Назад^] jd-kklilrlM >J And] O[ |N«|IJ<EJj £j Таблице!-Q Доставка1 -ВЗаказано-.л^f!I - CD Клиентыt|)JКодЗака;аКодТоваоаЦенаКоличествоВставить]<3маченив> • ,,;'•Справка 1 .-,-\!-О Поставщик и- CD Сотрудники-СЗ Типы- СИ Товары'•-Рис. 5.6, Построитель выражений: момент создании вычисляемогополя для запросадля выбора самых примитивных объектов.
Для того чтобы перенести имя объектав выражение, нужно щелкнуть два раза мышью имя объекта в одном из нижнихсписков. Кнопка Назад позволяет отменить ввод данных в выражение. Текствыражения можно редактировать и обычным образом.Кнопки с изображенными на них знаками математических операции позволяют быстро вводить соответствующие символы в выражение.В нашем примере следует поступить так: найти таблицу Заказано, щелкнутьполе Цена (в средней области), щелкнуть на кнопке со знаком умножения, щелкнуть поле Количество, щелкнуть на кнопке ОК.После того как окно построителя выражений закрыто, полезно посмотреть.что записано в строке «Поле». В нашем случае это будет:Выражение!: [Заказано]![Цена]*[Заказано]![Количество]Слово «Выражение!» можно заменить на слово «Сумма», потому что это будет заголовок новой колонки.
После этого запрос можно переключить к режимпросмотра. На рис. 5.7 показана таблица-запрос для нашего примера.Выражения, созданные с помощью построителя, могут быть весьма сложными. Кроме традиционных знаков математических действий существует еще несколько операторов.Between A n d - заменяет знаки «больше или равно» и «меньше или равно». Например, условие Between 1981 And 1994 эквивалентно условию >=1981 And <=1994.Оператор In позволяет использовать списки значений. Например, выражениеГлава 5104Сотрудники Запрос;:1]" tfena* ™ Количество |Крылова АннаКрылова АннаАйнак Новиков Павел.
Новиков Павел.... Новиков Павел_ Крылова_-lanpoc на выборкуНовиков ПавелНовиков ПавелЧ~-...:^^.ГКг,-.-01-05-1998 Sir Rodiey's Scones Sir Rodney'? S01-05-1998 TourtiereTcurtisre05-05-1998 KonbuKonbuGenen StiouyijGenen ShniwNord-Osl Maijesliermi Nord-Osi MatjiNuNuCa Nuss-Nougal NuNuCa NussOnginal Frankfurter gr Original FrankiOutback LagerOutback LageiO-...U.,-,D™.!.—Запись; HJ|T] I;oo ад р2dO,OQp130, OOpiao,oop!7Д,50р210,00p125 .OOpJ5i30p1Gn ППг.HO35504030102020inСумма<•> ,12 000, OOpa 400, oop9 000, OOp7 200, OOp5 235. OOp2 100 OOp2 500 OOp'900 OOpv•э onn nri.,'из 2169Рис.
5.7. Таблица-запрос с вычисляемым полемIn ("Петров";"Сидоров")позволяет отобрать записи с указанными фамилиями.Выражение Not Null (Is Not Null) используется для отбора непустых записейв указанном поле.Выражение Is Null используется для отбора пустых записей в указанном поле.\ - обратная косая черта обозначает деление целых частей делимого и делителя.Результат округляется до целого.- обозначает операцию возведения в степень.Mod - операция получения остатка от деления целых частей аргументов.Знак & используется для «сложения» данных символьного типа. Для соединения строк можно использовать и более привычный знак «плюс». Например, следующие три выражения эквивалентны;"Петров""Петр" & "ов""Петр" + "ов"Оператор Like используется для создания масок при определении строк с неизвестными символами и требует дополнительных специальных символов и правил синтаксиса.? - знак вопроса обозначает любой одиночный символ.
Например, если неизвестно, как написать: Саг! или Karl, то условие можно задать как Like "?arl".* - звездочка обозначает любую последовательность символов.tt - обозначает любую неизвестную цифру.[ ] - квадратные скобки подразумевают, что перед выполнением запросадолжно быть активизировано окно диалога с приглашением ввести параметр,являющийся критерием отбора.
Выражение в скобках выводится в этом окнев качестве сообщения-под сказки.ЗапросыЮ5Логические операторы также используются для построения условий отбора.Они могут применяться к двум или более выражениям и используются со скобками. Чаще всего используются связки And (логическое И) и Ог (логическое ИЛИ).Кроме них, часто используется оператор логического отрицания Not. Условие Not"Иванов" позволяет выбрать все строки, которые НЕ содержат указанный литералв соответствующем поле. Есть и более «экзотические» связки: Eqv, Xor, Imp.
Передих использованием полезно заглянуть в справочник по математике. Например,результат выполнения логической операции Imp (импликация) зависит от порядкаследования операторов,Операторы «меньше» и ((больше» могут использоваться не только с числовыми данными, но и с датами или текстом. Применительно к текстовым строкамони позволяют отбирать записи, предшествующие указанной строке или следующие за ней. В этих случаях учитывается алфавитный порядок значений поля.Например, выражение [Город]>"Москва" подразумевает, что в поле Город надо отобрать все названия, которые стоят в алфавитном списке ниже Москвы.5.4. Перекрестный запросПерекрестный запрос - это операция построения таблицы для вычисленияитоговых значений на основе существующей таблицы или запроса. Перекрестный запрос создается в предположении, что исходная таблица содержит необходимые данные для формирования заголовков строк и столбцов новой таблицы.Для иллюстрации работы мастера перекрестных запросов рассмотрим таблицуЗаказы из базы данных «Борей».
Эта таблица содержит записи обо всех заказах, сделанных клиентами за определенный промежуток времени. Используя эту таблицу,при помощи перекрестного запроса можно проследить распределение клиентов компании по городам. Вся необходимая информация в таблице уже имеется.Для запуска мастера перекрестного запроса надо нажать кнопку Создать навкладке Запросы, выбрать из списка Перекрестный запрос и нажать кнопку ОК.На первом шаге мастера, показанном на рис.
5.8, надо выбрать таблицу. Бели необходимые для запроса поля находятся в разных таблицах, то вначале необходимосоздать запрос, который создаст виртуальную таблицу со всеми нужными полями.В нашем случае все проще: мы же выберем имя таблицы Заказы и перейдем к следующему шагу, нажав кнопку Далее.Глава 5106Со1дание перекрестных таблиц:Выберите таблицу или запрос полякоторых необходимо вывести в• Для включения попей из:: нескольких таблиц сначала:! создайте обычный запрос.содержащий есе необходимые поля|Таблица: доставкаТаблица: ЗаказаноТаблица: КлиентыТаблица. ПоставщикиТаблица.
СотрудникиТаблица; Типы! Таблица: товаре:ПоказатьЛ ТаблицыQ ЗапросыО Таблицы и запросыРис. 5.8. Первый шаг мастера перекрестных запросовНа втором шаге мастера (рис. 5.9) необходимо выбрать поле (поля), значениякоторого (которых) будут использованы для создания строк таблицы. В нашемслучае можно выбрать поле, в котором хранятся имена клиентов (КодКлиента) (прижелании можно было бы выбрать имена менеджеров (КодСотрудника). Если поле содержит повторяющиеся значения, то в перекрестном запросе будет выполненагруппировка данных. Мы укажем поле КодКлиента, Напомню читателю, что недостаточно выделить нужное поле - его необходимо перенести в список Выбранныеполя из списка Доступные поля, нажав кнопку со стрелкой. Программа сразу жепоказывает, как будут располагаться в таблице значения поля.
Поле является подстановочным: таблица хранит только коды клиентов, а из таблицы Клиенты выбираются реальные имена клиентов.На третьем шаге мастера надо определить поле, значения которого будут использованы для формирования колонок и их заголовков (рис. 5.10). Это поле неможет быть подстановочным, иначе в заголовках столбцов появятся коды, а неудобные для чтения названия. Выберем поле Город Получателя.
Для этого достаточно выделить нужный элемент списка. Каждому уникальному значению указанного поля будет соответствовать свой столбец в новой таблице. Так что врядли есть смысл строить таблицу, в которой окажется очень много столбцов.ЗапросыW?перекрестных таблицВыберите поля, значения которыхбудут использованы в качествезаголовков строк,Доступные по ля:Допускается выбор не более трехпопей.ДатэРаз м ещеничДатаНазначенияДатаИсполненияДоставкаС * они о;ть д остаекиНа званиеПопуч эте га.АдреснодучатепяГ ородПолучателиОбластьПолучателяВыберите поля по порядкусортировки данных, Например,можно сначала выполнитьсортировку значений по странам, азатем по городам.Выбранные поля:КодЗаказаРис, 5.9.