Сортировка и фильтрация данных
Когда производится открытие таблицы, Access выводит строки в последовательности, определяемой значениями основного ключа. Если этот ключ не определён, строки таблицы выводятся в той последовательности, в которой они были введены. Если необходимо изменить их порядок, Access предоставляет все необходимые для этого средства.
Access позволяет сортировать и фильтровать данные в режиме таблицы. Эта возможность может пригодиться для формирования списка записей на основании нескольких условий сортировки или фильтрации.
Существует несколько способов сортировки данных. Самый простой и быстрый из них - использование кнопок на панели инструментов. Сначала необходимо открыть таблицу, затем щелкнуть мышью в любом месте столбца, значения которого требуется отсортировать. Дальнейшие действия зависят от того, в каком порядке необходимо сортировать данные. Если по возрастанию, то нажимается кнопка Сортировка по возрастанию; если по убыванию - Сортировка по убыванию.
Сортировка таблицы по нескольким полям выполняется с помощью фильтра. Когда выбирается команда ЗаписиÞФильтрÞРасширенный фильтр, на экране появится диалоговое окно Фильтр(рис. 17). Укажите нужное поле (поля), порядок (по возрастанию или по убыванию) и условие отбора. Условие указывает Access, какие записи необходимо выбрать. Условие отбора может быть выражением, включающим операторы, например «=» и «>», а также символы, например «*» и «?». Чтобы получить помощь при вводе условия сортировки, нажмите правую кнопку мыши в ячейке Условие отбора, а затем выберите команду Построить в меню быстрого доступа.
Для того, чтобы воспользоваться фильтром, выберите команду ЗаписиÞПрименить фильтрили нажмите кнопку Применить фильтрна панели инструментов. Отфильтрованные данные (выборка) появятся на экране в виде таблицы.
Рис. 17. Фильтры обеспечивают быстрый временный способ отображения части данных таблицы |
Чтобы увидеть опять все записи, выберите команду ЗаписиÞУдалить фильтрилинажмите кнопку Удалить фильтр на панели инструментов.
Чтобы отфильтровать данные, выполните такую последовательность действий:
1. Выберите команду ЗаписиÞФильтрÞРасширенный фильтр. На экране появится диалоговое окно фильтра (рис. 17).
2. Перейдите в строку Поле. В раскрывающемся списке выберите поле, по которому необходимо провести фильтрацию, или дважды щелкните на нужном имени поля в списке полей.
3. Перейдите в строку Сортировка. В раскрывающемся списке выберите нужный порядок сортировки: По возрастанию, По убыванию или Отсутствует.
4. Перейдите в строку Условия отбора и введите условия поиска.
5. Повторите пп. 2-4 для каждого поля, по которому хотите провести фильтрацию.
6. Нажмите кнопку Применить фильтр панели инструментов или выберите команду ЗаписиÞПрименить фильтр для просмотра выбранного подмножества данных.
Изменение макета таблицы
В соответствии с потребностями пользователя Access, можно менять представление таблицы на экране. При этом изменение способа изображения таблицы никак не влияет на её данные. Например, уменьшение ширины столбца в режиме вывода таблицы на экран не отсекает данные в таблице и не изменяет заданную ширину поля.
Используя команды меню Формат (см. рис. 18), можно выполнять следующие действия:
¨ Изменять шрифт.
¨ Изменять высоту строк и ширину столбцов.
¨ Показывать и убирать с экрана столбцы.
¨ Фиксировать столбцы (столбцы слева остаются на экране, в то время, как происходит прокрутка содержимого экрана вправо).
¨ Включать и выключать линии сетки.
Вышеперечисленные задачи также можно решить, выделив нужный столбец или строку, и щелкнув правой кнопкой мыши для вывода контекстного меню. Можно также изменить ширину столбца или высоту строки, перетаскивая в нужное положение линию сетки в заголовке или в столбце маркировки записи. Для того, чтобы изменить порядок следования столбцов в таблице, выделите столбец и перетащите его в новое место.
Рис. 18. Меню Формат окна режима таблицы |
Когда выполняется закрытие таблицы, Access спрашивает, хотите ли вы сохранить сделанные в структуре таблицы изменения. Выберите Да для сохранения изменений, Нет - если не хотите записывать сделанные изменения, или Отмена - для возврата в таблицу.
Для того, чтобы изменить положение поля, выполните такую последовательность действий:
1. В режиме таблицы щелкните на заголовке поля, чтобы выделить нужный столбец.
1. Снова щелкните на заголовке поля и удерживайте левую кнопку мыши нажатой. Слева от столбца Access отобразит вертикальный прямоугольник (область выделения).
2. Перетащите поле (столбец) на новое место. Access переместит вертикальный прямоугольник, чтобы показать место, где будет вставлен столбец, и отобразит прямоугольник под ним (рис. 19).
Рис. 19. Для того чтобы переместить поле, выделите столбец и перетащите его на новое место |
3. Чтобы вставить поле в нужное место таблицы, отпустите левую кнопку мыши.
4. Щелкните в любом месте таблицы, чтобы убрать выделение.
Для того, чтобы изменить ширину столбца, выполните следующие действия:
1. В режиме таблицы установите указатель мыши в строку заголовка поля, на линии между полями, размер которых необходимо изменить. Указатель мыши примет вид двунаправленной стрелки (см. рис. 20).
2. Тащите линию до тех пор, пока столбец не достигнет нужной ширины, а затем отпустите кнопку мыши.
Иногда во время просмотра данных может понадобиться держать один из столбцов все время на экране при прокрутке остальных столбцов влево и вправо. Чтобы закрепить один или несколько столбцов, выделите их и выберите команду ФорматÞЗакрепить столбцы. (Если нужно закрепить несколько несмежных столбцов, закрепите каждый из них по отдельности.) Access передвинет выделенные столбцы в левый конец экрана и зафиксирует их в этом положении, так что во время прокрутки они будут оставаться на месте. Чтобы снять закрепление столбцов, выберите команду ФорматÞОсвободить все столбцы.
В режиме таблицы между строками и столбцами обычно отображаются линии сетки. Они выводятся и при печати таблицы. Изменить внешний вид ячеек таблицы можно с помощью команды ФорматÞЯчейки. В окне диалога Вид сеткиможно скрыть горизонтальные и/или вертикальные линии сетки, изменить цвет линий и фона ячеек. Кроме того, можно использовать приподнятое или утопленное оформление ячеек.
Рис. 20. Изменение ширины столбца с помощью мыши |
Создание форм
Формы являются основой большинства бумажных и компьютеризованных информационных систем, используемых для сбора, хранения и обработки данных. Если оглянуться вокруг, можно убедиться, что формы окружают нас практически повсюду. Некоторые документы, такие, как заявления о приеме на работу, являются примером простейшей формы; другие, такие как, современные налоговые формы, используются для расчетов с помощью компьютера. Бывают формы, выполняющие роль отчетов; например, накладные или счета клиентов.
Формы дают альтернативный способ изображения табличных данных. Access позволяет создавать формы, которые можно использовать для ввода, вывода, управления, просмотра и печати данных. С помощью этой главы можно научиться разрабатывать и создавать собственную форму, перемещаться по форме, изменять внешний вид уже существующей формы.
Разработка форм
Поскольку формы представляют собой лишь другой способ вывода на экран табличных данных, первым шагом в создании форм является создание таблицы (таблиц) или анализ её (их) структуры. Проблемы при работе с формами часто возникают из-за неправильно созданной таблицы. Помните, что свойства полей и свойства таблиц, такие, как Условие на значение и Тип данных, помогают улучшить качество данных (они являются первой защитой от информационного мусора).
После создания таблицы (и тестирования её на реальных данных) можно приступить к созданию форм. Формы дают некоторые преимущества в средствах изображения информации по сравнению с такими же средствами, используемыми в режиме таблицы.
¨ Формы могут включать как поля, которые можно редактировать, так и поля, которые редактировать нельзя.
¨ Формы можно разработать таким образом, чтобы иметь максимальное сходство с рабочими (бумажными) формами.
¨ Формы позволяют изменять порядок следования полей (чтобы облегчить ввод данных и сделать его более удобным).
¨ Формы могут содержать поля из нескольких таблиц (в режиме таблицы на экране видны данные только из одной таблицы).
¨ Формы могут содержать графики и диаграммы.
¨ Формы позволяют автоматизировать задачи ввода, а также иметь собственные меню пользователя.
Хорошо разработанная форма проста в использовании. Формы следует создавать так, чтобы облегчить ввод данных. Например, «перегруженные» формы, содержащие много полей на небольшом участке экрана, раздражают пользователя, что в свою очередь приводит к ошибочному вводу данных. Чтобы решить эту проблему, продумайте возможность использования нескольких различных форм или разбивки данных по нескольким страницам одной формы.
Ниже описаны основные правила, которых следует придерживаться при разработке форм.
¨ Форма должна быть простой. Применяйте легко читаемые шрифты и цвета. Используйте графики и другие элементы для совершенствования формы, но не перегружайте форму большим количеством объектов и полей.
¨ Если форма будет печататься на черно-белом принтере, подберите цвета и разметку таким образом, чтобы распечатка хорошо читалась.
¨ Будьте внимательны с подбором цветов для экранных форм. Некоторые мониторы с плохим разрешением в графическом режиме или меньшими цветовыми возможностями не в состоянии правильно отобразить вашу форму. Чтобы устранить эту проблему, используйте установки для графической видеокарты и монитора самого низкого качества.
¨ Будьте последовательны при создании нескольких форм. Например, применяйте один и тот же стиль компоновки для формы ввода данных о клиентах и для формы, показывающей заказы клиентов.
¨ Четко указывайте, куда и какие данные следует вводить.
В Access существует несколько способов создания форм. Рассмотрим основные из них.
¨ Простая форма. Кнопка Новый объект, расположенная на панели инструментов, создает для текущей таблицы или запроса законченную форму, состоящую из одной колонки, в которой можно просматривать содержимое только одной записи.
¨ Мастера форм.С их помощью можно создать форму, выбирая наиболее подходящие шаблоны. На основании ответов на ряд вопросов, мастер построит желаемую форму.
¨ Пустая форма.Access также позволяет пользователю самостоятельно разработать форму в режиме конструктора.
Работа в режиме конструктора форм.Начать разработку формы можно путем самостоятельного размещения на ней всех необходимых элементов в режиме конструктора. Этот режим используется для создания и редактирования форм, которые нельзя сгенерировать при помощи мастеров. Например, чтобы получить форму, соответствующую какому-либо сложному в оформлении документу, или чтобы создать заявление о приеме на работу, содержащее фотографию.
Перед тем, как начать работу с конструктором, следует открыть базу данных и выбрать таблицу или запрос, которые необходимо использовать для создания формы. Выполните команду ВставкаÞФормаи Access откроет окно диалога Новая форма, представленное на рис. 21.
Рис. 21. Окно диалога Новая форма |
В поле со списком, расположенном в нижней части окна диалога, Access выводит имя таблицы или запроса, выбранного в окне базы данных. Если необходимо использовать другую таблицу или запрос, раскройте список этого поля и сделайте выбор.
В верхней части окна диалога останьтесь на строке Конструктори нажмите кнопку OK. Access откроет окно формы в режиме конструктора (рис. 22). На экране будут видны не все окна, приведенные на рисунке, а только область данных (с серой сеткой). Можно установить указатель мыши на краю этой области, и при его перетаскивании увеличить или уменьшить размер области данных. Сетку с точками можно удалить, выполнив команду ВидÞСетка. Если в форму необходимо добавить заголовки и примечания, выберите команду ФорматÞЗаголовок/примечание формы. Далее коротко рассмотрим основные инструменты, используемые при создании форм.
Рис. 22. Окно конструктора форм с его инструментами |
Панель элементов
Панель элементов (см. рис. 22) - это своеобразный «командный центр» создания формы. При желании можно переместить панель элементов, перетащив заголовок её окна в нужное место на экране, или изменить её форму, перетащив края или углы панели. Чтобы закрыть панель элементов, нажмите кнопку закрытия окна, расположенную в верхнем правом углу панели, или выберите команду ВидÞПанель элементов, либо нажмите кнопку Панель элементов на панели инструментов.
Панель элементов содержит кнопки для всех элементов управления, которые можно использовать при создании формы. Чтобы поместить в форму конкретный элемент управления, нажмите соответствующую кнопку на панели элементов. После этого, при перемещении указателя по форме, он превращается в значок выбранного элемента управления. Поместите указатель там, где будет находиться левый верхний угол элемента управления, нажмите кнопку мыши и протащите указатель до места, где должен быть правый нижний угол элемента, а затем отпустите кнопку мыши. (Размер элемента управления можно изменить и после его размещения в форме, перетащив стороны или углы элемента в новое положение).
Каждый элемент управления на панели элементов предназначен для выполнения определенных функций. Ниже приведен краткий обзор этих функций:
¨ Оформление. Для того, чтобы в форму включить текст, пользуйтесь кнопкой Надпись (например, для названия формы). Чтобы нарисовать линии, используйте кнопку Линия, а для рисования прямоугольников, группирующих элементы или просто привлекающих внимание к определенным элементам, воспользуйтесь кнопкой Прямоугольник. Кнопка Конец страницы позволяет создавать многостраничные формы. Часто, если форма становится трудной для восприятия из-за перегруженности данными, разбивка на несколько страниц может значительно улучшить её внешний вид.
¨ Ввод и вывод данных.Кнопка Поле применяется для ввода или вывода данных (включая картинки). Если в форме необходимо разместить группу элементов управления, содержащую несколько переключателей, флажков или выключателей (элементы, которые могут принимать значения Вкл/Выкл, Истина/Ложь или Да/Нет), воспользуйтесь кнопкой Группа. Каждый из перечисленных элементов управления можно поместить и отдельно, выбрав кнопки Переключатель, Флажок или Выключатель соответственно. Элемент Списокпозволяет создавать раскрывающийся перечень возможных значений для ввода в поле. Инструмент Поле со списком содержит аналогичный раскрывающийся список, но, в отличие от инструмента Список, пользователь может сам его дополнять.
¨ Внедрение форм. Для того, чтобы вставить одну форму в другую, используйте кнопку Подчиненная форма/отчет. Перед тем, как воспользоваться этой кнопкой, следует создать встраиваемую подчиненную форму. Используя мастера форм для создания основной и подчиненной форм, можно сэкономить много времени.
¨ Объекты OLE(см. раздел «Типы данных»).Для использования в форме внедренных и связанных объектов OLE применяются кнопки Свободная рамка объектаи Присоединенная рамка объекта. Первая из них служит для включения в форму рисунков, диаграмм, слайдов и других элементов OLE, хранимых вне базы данных Access (это могут быть различные приложения, поддерживающие объекты OLE), а вторая - для включения таких же элементов, но хранимых в полях базы данных. Данные средства позволяют сделать форму более наглядной и выразительной.
¨ Автоматизация задач. Элемент Кнопкаиспользуется для создания элемента управления Командная кнопка, с помощью которой можно запустить макрос или процедуру Visual Basic. Командную кнопку можно запрограммировать для печати отчета или отображения другой формы.
КнопкаМастера элементовактивизирует мастера по созданию элементов управления. Если кнопка выглядит «нажатой», то мастер поможет ввести свойства элемента управления при создании группы, поля со списком, списка или командной кнопки.
Список полей.Размещение в форме присоединенных элементов управления упрощается при использовании списка полей. Последний открывается с помощью кнопки Список полейна панели инструментов или команды ВидÞСписок полей. В строке заголовка окна списка полей Access выводит имя базовой таблицы или запроса (см. рис. 22).
Чтобы создать присоединенный элемент управления с помощью списка полей, выберите его тип, нажав соответствующую кнопку на панели элементов. Затем перетащите поле из списка в нужное место формы. (При перетаскивании поля без предварительного выбора инструмента на панели элементов в форме по умолчанию создается элемент управления Поле.) Если выбран элемент управления, не соответствующий типу данных связанного с ним поля базовой таблицы или запроса, Access создает элемент управления, используемый по умолчанию для этого типа данных. Например, какую бы не выбрать кнопку на панели элементов для объекта OLE, Access все равно создаст присоединенную рамку объекта. Если попытаться перетащить в форму поле, когда на панели элементов нажата одна из следующих кнопок: Подчиненная форма, Свободная рамка объекта, Линия, Прямоугольникили Конец страницы, то Access создаст поле, либо присоединенную рамку объекта.
Окно свойств.Свойства определяют внешний вид (оформление) и поведение объекта. Сама форма, каждый её раздел (заголовок, область данных, раздел примечаний) и элементы управления имеют свойства, и можно установить их значения с помощью окна свойств (см. рис.22). Набор свойств, представленных в этом окне, зависит от объекта. Чтобы открыть окно свойств, выделите интересующий объект и кнопку Свойствана панели инструментов или выберите команду ВидÞСвойства. Access откроет окно, подобное приведенному на рис. 23.
Рис. 23. Окно свойств формы |
Поскольку форма имеет более 70 свойств, а большинство элементов управления - более 30, то окно свойств содержит несколько корешков. На корешках представлены определенные категории свойств: свойства макета, данных, событий, другие и все.
Если некоторое свойство имеет список допустимых значений, то при его выборе справа в ячейке появляется кнопка со стрелкой вниз. Чтобы раскрыть список, нажмите эту кнопку. Для удобства ввода или просмотра длинного значения свойства можно пользоваться окном Область ввода, которое открывается при нажатии клавиш <Shift+F2>.
Для получения более подробной информации о конкретных свойствах, установите точку ввода в поле свойства и нажмите клавишу <F1>.
Изменение формы
Изменение вида и компоновки формы не представляет большого труда, независимо от того, была ли она создана с помощью мастеров форм или конструктора. В большинстве случаев все, что для этого нужно сделать, - это щелкнуть и переместить элементы управления, улучшить цветовое решение или установить некоторые свойства.
Перемещение и изменение размеров элементов управления. Чтобы изменить размер или расположение элемента управления, его нужно сначала выделить. Убедитесь, что кнопка Выбор объектовна панели элементов находится в нажатом состоянии. Выделите элемент управления, щелкнув на нем мышью. При этом вокруг элемента управления появятся маркеры перемещения и изменения размеров. Это маленькие затемненные прямоугольники, расположенные по углам элемента. Маркер в левом верхнем углу несколько больше остальных; его нельзя использовать для изменения размера элемента. Для одновременного выделения сразу нескольких элементов управления, щелкните на выделяемых элементах управления, удерживая нажатой клавишу <Shift>.
Рис. 24. Перетаскивая угловой маркер, можно изменить ширину и высоту выделенного элемента управления |
Рис. 25. Чтобы переместить выделенный элемент управления, перетащите его край |
Рис. 26. Перетаскивая маркер, расположенный в левом верхнем углу выделенного элемента управления, можно его перемещать независимо от присоединенной надписи |
Чтобы изменить размер элемента управления, используйте размерные маркеры, находящиеся на сторонах, в нижних углах и в правом верхнем углу. Если указатель мыши поместить на один из них, то он превратится в двунаправленную стрелку (рис. 24). Перетащите маркер, чтобы установить нужный размер.
Для перемещения не выделенного элемента управления, щелкните в любом месте этого элемента и, не отпуская кнопку мыши, перетащите его на новое место. Если элемент выделен, поместите указатель на любой его стороне между маркерами. Когда указатель примет вид раскрытой ладони (рис. 25), перетащите элемент управления на новое место. При этом Access показывает его контур, облегчая выполнение операции. Если элемент управления имеет присоединенную надпись, то она перемещается вместе с ним.
Перемещать элемент управления и присоединенную надпись можно независимо друг от друга с помощью маркера перемещения, расположенном в левом верхнем углу элемента. При установке указателя мыши на этом маркере, он принимает вид сжатой ладони с вытянутым указательным пальцем (рис. 26), и можно перетащить элемент управления на новое место по отношению к его надписи. Последнюю можно вообще удалить, выделив её и нажав клавишу <Del>. С помощью кнопки Надписьна панели элементов можно создать надпись, не связанную с элементом управления.
Если, случайно, была удалена надпись элемента управления и после этого выполнялся ряд других изменений (и уже нельзя отменить удаление), создайте новую присоединенную надпись, выполнив следующие действия:
1. Создайте свободную (не присоединенную) надпись.
2. Скопируйте надпись в буфер обмена: выделите её и выполните команду ПравкаÞВырезать. При этом надпись удаляется из формы.
3. Выделите элемент управления, к которому необходимо присоединить надпись, и выберите команду ПравкаÞВставить.
Для выделения самой формы необходимо щелкнуть в левом верхнем углу формы, где пересекаются вертикальная и горизонтальная линейки или щелкнуть в любом месте вне области данных, или выбрать команду ПравкаÞВыделить форму.
Панель инструментов форматирования.Для придания элементу управления нужного внешнего вида не обязательно изменять его свойства; можно воспользоваться кнопками панели инструментов форматирования, представленной на рис. 27. Кроме того, эта панель инструментов позволяет устанавливать цвет фона для разделов формы.
Рис. 27. Кнопки панели инструментов форматирования |
Ниже даются описания кнопок панели инструментов форматирования (слева направо):
Выбор объекта | Выделяет объект в форме, что особенно удобно, когда объекты располагаются поверх других. |
Шрифт | Позволяет выбрать шрифт для текста надписей, командных кнопок, выключателей, полей, списков и полей со списком. |
Размер шрифта | Используется для установки размера шрифта. |
Полужирный | Применяет или отменяет полужирное начертание шрифта. |
Наклонный | Применяет или отменяет наклонное начертание шрифта. |
Подчеркнутый | Применяет или отменяет подчеркнутое начертание шрифта. |
По левому краю | Выравнивает текст по левому краю. |
По центру | Выравнивает текст по центру. |
По правому краю | Выравнивает текст по правому краю. |
Цвет фона | Используется для изменения цвета фона элемента управления или раздела формы. |
Цвет текста | Используется для изменения цвета символов, выводимых в элементе управления. |
Цвет границы | Используется для изменения цвета границы элемента управления. Границу также можно сделать прозрачной. |
Ширина границы | Используется для установки толщины границы элемента управления: от сверхтонкой до 6 пунктов. |
Оформление | Позволяет применять специальные эффекты для оформления элемента управления: обычное, приподнятое, утопленное, вдавленное, с тенью и рельефное. (На рис. 27 показана с раскрытым списком.) |
Цветовое оформление.Чтобы разнообразить внешний вид и содержимое формы, воспользуйтесь такими кнопками панели инструментов форматирования, как Цвет фона, Цвет текста, Цвет границы. С помощью этих инструментов можно изменить цвет текста, фона и рамок для каждого элемента управления формы в соответствии с вашим вкусом. Чтобы воспользоваться палитрой цветов, сначала выделите необходимый элемент формы или саму форму, а затем нажмите соответствующую кнопку из перечисленного набора. Заметьте, что, когда вы щелкаете по различным цветам палитры, оформление выделенного элемента немедленно изменяется в соответствии с произведенным выбором. Таким образом, можно сразу видеть полученный эффект и решить, как лучше оформить тот или иной элемент.
Создание запросов
В предыдущих главах были описаны объекты, которые наряду со всеми своими возможностями ориентированы, главным образом для ввода, просмотра и редактирования информации, содержащейся в базе данных. Теперь рассмотрим способы извлечения из неё необходимой информации по определенному ключу, критерию, совокупности ограничений или требований на выборку данных. Эта задача решается в современных СУБД при помощи запросов. Они дают возможность пользователю «задавать вопросы» базе данных. Результат запроса («ответ») можно напечатать или вывести на экран.
В этой главе описаны основные возможности запросов Access, а также показано, как ими пользоваться для получения информации из базы данных.
3.5.1. Что такое «запрос»?
Запрос - это выражение, определяющее, какую информацию нужно отыскать в одной или нескольких таблицах. С помощью запроса можно также выполнить некоторые действия с данными таблицы (таблиц) и обобщить их.
Обязательно ли нужно пользоваться запросами? Нет, но если научиться с ними работать, станет намного легче ориентироваться в большом потоке информации. Конечно, можно просмотреть базу данных, последовательно перебирая записи, но значительно проще поручить Access отыскать именно то, что нужно пользователю в данный момент. Например, используя запросы, можно составить список фамилий и адресов всех клиентов, не оплативших счета за последние 60 дней. Попытка отыскать подобную информацию вручную потребовала бы больших затрат времени и сил. Использование же запросов для выполнения данной задачи приведет к результату значительно быстрее, притом сам результат будет более точным. Основной секрет использования запросов прост - знание того, что необходимо отыскать, и умение сообщить Access способ поиска. (Иногда эта задача может оказаться и не такой уж простой.)
Запросы могут использоваться как источники информации для форм и отчетов. В этом случае в запросе используются данные из нескольких таблиц. Access выполняет запрос каждый раз, когда открывается форма или отчет, и, следовательно, можно быть уверенным, что информация, которая выдается на экран, всегда самая «свежая».
Access позволяет создавать следующие типы запросов:
¨ Запрос-выборка. Используется для выборки данных из таблиц на основании определенного условия. Это наиболее простой тип запроса. Например, запрос-выборку можно использовать для получения списка всех клиентов фирмы, проживающих в Одессе.
¨ Запрос-действие. Используется для выполнения действий с записями, удовлетворяющими определенному условию. Этот тип запроса позволяет изменять или перемещать данные, создавать новые таблицы или убирать ненужные записи из таблицы. Например, можно использовать запрос-действие для удаления записей о клиентах, переставших пользоваться услугами фирмы.
¨ Перекрестный запрос. Используется для группировки и обобщения результатов расчетов по двум наборам данных в формате перекрестной таблицы на основании условия, определенного в запросе. Первый набор выводится в левом столбце и образует заголовки строк, а второй - в верхней строке и образует заголовки столбцов. Перекрестные запросы часто применяются для вывода данных в виде диаграмм.
¨ Запрос-объединение. Используется для объединения полей из нескольких таблиц. Например, можно создать запрос, выбирающий информацию о клиентах из таблицы Клиенты, а итоговые суммы по накладным из таблицы Накладные.
¨ Запрос к серверу. Используется для того, чтобы послать по сети команды удаленной базе данных, используя язык структурированных запросов SQL (Structured Query Language).
¨ Управляющий запрос. Используется для выполнения действий с записями баз данных с помощью инструкций языка SQL.
Создание запроса
Чтобы создать запрос переключитесь в окно базы данных, щелкните на корешке вкладки Запроси затем на кнопке Создать(рис. 4). На экране появится диалоговое окно Новый запрос. Так же, как для форм и таблиц, для создания запросов существует несколько способов (рис. 28). Можно сделать выбор: создать запрос самостоятельно в режиме конструктора или воспользоваться помощью мастера для создания одного из нескольких типов запросов.
Рис. 28. В Access существуют мастера запросов, предназначенные для оказания помощи пользователю при создании запроса |
Перед тем, как приступать к созданию запроса любым из возможных способов, следует хорошо продумать ответы на следующие вопросы:
¨ Какая таблица (таблицы) содержит(ат) нужную информацию?
¨ Связи таблиц (имеют ли эти таблицы соответствующие ключи?).
¨ Тип запроса, которым вы хотите воспользоваться.
¨ Условия и критерии полей, которым должны удовлетворять записи.
¨ Какие необходимо произвести вычисления?
¨ Порядок сортировки (по возрастанию или убыванию).
Рис. 29. Окно запроса в режиме конструктора |
¨ Имя, под которым необходимо сохранить запрос.
Создание запроса с помощью конструктора.Для того, чтобы создать запрос с помощью конструктора, щелкните в окне Новый запросна строке Конструктор. На экране появится окно Запрос: запрос на выборкуи диалоговое окно Добавление таблицы. По мере того, как пользователь осуществляет выбор необходимых для запроса таблиц (таблицы), Access помещает список полей этих таблиц в верхней части окна Запрос: запрос на выборку(см. рис. 29).
Для выбора таблицы, которую необходимо добавить в запрос, дважды щелкните в окне Добавление таблицы на имени таблицы или выделите имя таблицы, а затем щелкните на кнопке Добавить. Access добавит таблицу в окно Запрос 1: запрос на выборку; диалоговое окно Добавление таблицыостается открытым для того, чтобы можно было добавить другие необходимые таблицы. Access автоматически отслеживает все связи, существующие между таблицами, показывает их, рисуя линии между связанными полями (рис. 29). Эти линии называются линиями объединения. Они используются только в многотабличных запросах. Перемещая ключевое поле из одной таблицы в другую, можно самостоятельно создать линии объединения.
Закончив добавлять таблицы, щелкните на кнопке Закрыть. Для того, чтобы заново открыть диалоговое окно Добавление таблицы, щелкните на кнопке Добавить таблицу, расположенной в панели инструментов, или выберите команду ЗапросÞДобавить таблицу.
Работа с окном запроса
Существует несколько режимов просмотра запросов в окне запросов (смену режима можно произвести соответствующим выбором в меню Вид).
¨ Конструктор запросов. Используется для создания запроса.
¨ Режим SQL. Используется для вывода или изменения запроса на языке структурированных запросов SQL (Structured Query Language).
¨ Режим таблицы. Используется для вывода результатов работы запроса.
Панель инструментов конструктора запросов содержит большое количество кнопок, позволяющих значительно ускорить работу с запросами. Описание кнопок здесь не приводится. Чтобы узнать назначение каждой из них, достаточно установить указатель мыши на интересующую кнопку и после непродолжительного ожидания появится её описание.
Заполнение бланка QBE
Окно запроса в режиме конструктора (рис. 29) разделено на две части. Рассмотренная ранее верхняя часть содержит список полей всех таблиц, включенных в область действия запроса. Нижняя - сетку Query By Example (запрос по образцу или бланк QBE), которая предназначена для определения параметров запроса. Бланк QBE состоит из строк и столбцов. Каждый столбец соответствует одному из полей, используемых в запросе. Для перемещения из верхней части окна в нижнюю и обратно, можно использовать клавишу <F6> - так же, как в конструкторе таблиц. Далее рассмотрим более подробно основные параметры запроса из бланка QBE.
Выбор полей.Первым шагом при создании запроса является выбор полей, включаемых в набор записей. Это можно сделать несколькими способами. Для того чтобы добавить поле в бланк QBE, дважды щелкните на этом поле в окне списка полей или перетащите это поле в один из столбцов. Access автоматически заполнит имя поля и стандартные выборки для подсчета итоговых значений по группе, а также установит флажок опции Вывод на экран.
В самом начале списка полей, находящегося в верхней половине окна запроса (а также в раскрывающихся списках в первой строке бланка QBE), находится специальный символ звездочка «*», означающий «Все поля».Чтобы включить в запрос все поля, дважды щелкните на этом символе или просто перетащите его в бланк QBE. Для того, чтобы убрать поле, выделите соответствующий столбец, щелкнув мышью в верхней его части на серой полоске и нажмите клавишу <Del>, или установите курсор ввода внутри столбца и в меню Правкавыберите команду Удалить столбец.
Совокупность записей, являющихся результатом выполнения запроса (или фильтрации), называется динамическим набором записей. Для включения поля в динамический набор записей установите флажок опции Вывод на экранв бланке QBE (рис. 29). В запрос не обязательно включать все поля, используемые в бланке QBE. Для того, чтобы исключить поле из результирующего динамического набора записей, уберите флажок опции Вывод на экран для этого (исключаемого) поля.
Бланк QBE содержит ещё две строки, которые изначально не видны на экране. Строки Имена таблици Групповые операции спрятаны по умолчанию. Для того, чтобы вывести их на экран, выберите в меню Видодноименные команды. Когда выбор будет сделан, на экране, под строкой Полев бланке QBE, появятся строки Имена таблици Групповые операции.
Добавление вычисляемых полей.В бланк QBE можно добавить вычисляемые поля. Вычисляемые поля - это временные поля, создаваемые в динамическом наборе записей во время выполнения запроса; в них заносятся результаты вычислений над данными из полей таблицы. Вычисляемые поля можно использовать, например, для расчета стоимости продуктов по категориям или для объединения (конкатенации) текстовых полей.
Для создания вычисляемого поля в верхней строке бланка QBE выделите пустую ячей-ку - имя поля. Можно ввести выражение непосредственно в этой ячейке. Access присвоит новому полю имя, например, Выражение 1, которое можно впоследствии изменить на более осмысленное название. Кроме того, можно сразу ввести в указанную ячейку имя нового поля, далее <:> и выражение. Имена полей, используемые в вычислениях, должны заключаться в квадратные скобки <[]>, а пробелы - в кавычки <“ ”>.
В выражениях можно использовать следующие операторы:
+ | Складывает два арифметических выражения. |
- | Вычитает из первого арифметического выражения второе. |
* | Перемножает два арифметических выражения. |
/ | Делит первое арифметическое выражение на второе. |
\ | Округляет два арифметических выражения до целых значений и делит первое на второе. Результат округляется до целого. |
^ | Возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением. |
MOD | Округляет оба арифметических выражения до целых значений, делит первое на второе и возвращает остаток. |
& | Создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, Microsoft Access перед проведением объединения (конкатенации) преобразует его в строку символов. |
Рис.30. Ввод выражения в окне Область ввода |
Если необходимо ввести длинное выражение, то удобно воспользоваться окном Область ввода, которое вызывается после щелчка мышью в ячейке строки Полеи нажатия клавиш <Shift+F2> (рис. 30).
Для облегчения ввода сложных выражений Access предоставляет утилиту, называемую Построитель выражений. Чтобы начать с ним работу необходимо щелкнуть по пустой ячейке строки Полев бланке QBE и нажать кнопку Построитьна панели инструментов. Microsoft Access откроет окно Построитель выражений, показанное на рис. 31. Здесь, для более наглядной иллюстрации возможностей, показана открытой папка Функции.
В верхней частиокна построителя расположена пустая область ввода, предназначенная для создания выражений. Сюда можно самостоятельно вводить выражение, но гораздо легче использовать различные кнопки операторов, расположенные прямо под областью ввода. В нижней части окна находятся три списка, предназначенные для поиска имен полей и функций, необходимых для создания выражения. Чтобы введенное выражение было перенесено в бланк QBE, нажмите кнопку OK.
Групповые операции.Иногда возникает необходимость выполнить запрос для определения некоторых значений по группам записей (рис. 32). Например, можно посмотреть итоговые суммы продаж по определенной области, определить среднюю зарплату по отделам или максимальное количество часов, необходимых для выполнения каждого заказа. Access позволяет выполнить эти непростые вычисления, группируя записи.
Пользователь может сам определить способ разбиения на группы в строке Групповая операция. Для того, чтобы вывести эту строку на экран в меню Видвыберите команду Групповая операция или нажмите кнопку Групповые операциина панели инструментов. Одновременно со строкой Групповая операция Access автоматически добавляет слова Группировка в каждое поле бланка QBE. Теперь записи по каждому полю будут группироваться, но итоги подводиться не будут. Если выполнить запрос сейчас, то получится набор записей, включающий по одной строке для каждого уникального значения полей запроса, но без итогов. Для получения итогов замените установку Группировкав строке Групповая операция на конкретные итоговые функции.
Можно задать нужную функцию, введя её имя с клавиатуры или сделать выбор в раскрывающемся списке. Ниже перечислены все девять итоговых функций Access и две установки:
Sum | Вычисляет сумму всех значений заданного поля в каждой группе. Используется только для числовых или денежных полей. |
Avg | Вычисляет среднее арифметическое всех значений данного поля в каждой группе. Используется только для числовых или денежных полей. |
Min | Возвращает наименьшее значение, найденное в этом поле внутри каждой группы. Для текстовых полей возвращается наименьшее из символьных значений, не зависимо от регистра. |
Max | Возвращает наибольшее значение, найденное в этом поле внутри каждой группы. Для текстовых полей возвращается наибольшее из символьных значений ,не зависимо от регистра. |
Count | Возвращает число непустых записей поля в каждой группе. Чтобы выполнить расчет с учетом нулевых записей, введите в строку Полеспециальное выражение COUNT(*). |
StDev | Вычисляет среднеквадратическое отклонение всех значений данного поля в каждой группе. Эта функция применяется только к числовым или денежным полям. |
Var | Вычисляет дисперсию значений данного поля в каждой группе. Эта функция применяется только к числовым или денежным полям. |
First | Возвращает первое значение поля в группе. |
Last | Возвращает последнее значение поля в группе. |
Выражение | Позволяет создавать вычисляемое поле для группы. В выражении может использоваться одна или несколько перечисленных выше функций. |
Условие | Позволяет задать для данного поля критерий отбора записей в группы. |
Ввод условия отбора.Задав условие в строке бланка QBE, можно создать запрос только для записей, удовлетворяющих заданному условию. Условие отбора - один из чаще всего используемых элементов запроса. Можно отобрать необходимые записи, введя любое из следующих условий:
¨ Точное совпадение. Задайте буквенное выражение, например, текстовую строку Укрили $1000, которое должно точно совпадать со значением полей отбираемых записей; прописные и строчные символы считаются различными.
¨ Поиск с использованием символов шаблона. Для задания условия используйте комбинацию букв и подстановочных символов (таблица 5), например, У*или 1###; значения полей должны «вписываться» в шаблон.
¨ Поиск несовпадений. Используйте оператор NOT для исключения из области действия запроса тех записей, которые удовлетворяют заданному условию отбора.
¨ Поиск по дате. Для задания условия используйте фиксированную дату или оператор DATE(), заменяющий текущую дату (на основании системных часов компьютера). Например, можно воспользоваться условием 12/1/97или DATE().
¨ Поиск пустых полей. Используйте оператор NUL, чтобы указать, что нужны только записи, заданные поля которых пусты. Используйте оператор NOT NULL для того, чтобы указать, что в результатах запроса необходимо выдать только записи с непустыми полями.
¨ Операторы сравнения. Используйте любые операторы сравнения (таблица 6) для сопоставления значений полей записей по особым правилам. Например, чтобы увидеть только записи с датой раньше текущей, можно ввести <DATE().
¨ Значения Да/Нет. Используйте Да, Истина, Включено или 1, чтобы задать значение Да. Используйте Нет, Ложь, Отключено или 0, чтобы задать значение Нет.
¨ Сложное условие отбора. Воспользуйтесь логическими операторами (таблица. 7), чтобы задать сложное условие для одного и того же поля.
Таблица 5. Операторы - подстановочные символы
Оператор | Описание |
* | Используется вместо любого числа символов |
? | Используется вместо одного любого символа |
# | Используется вместо любой цифры |
[] | Используется для представления одного из символов внутри квадратных скобок (например, У[КИ]) |
! | Используется для представления любого символа, отсутствующего в списке (например, У[КИ]) |
- | Используется для представления одного символа, находящегося в диапазоне (например, У[И-П]) |
LIKE | Используется для представления любых символов (например, LIKE «[А-Д]*», чтобы увидеть список сотрудников, чьи фамилии начинаются с буквы А, Б, В, Г или Д) |
Таблица 6. Операторы сравнения (условные операторы)
Оператор | Описание | Оператор | Описание | Оператор | Описание |
> | Больше чем | <= | Меньше или равно | <> | Не равно |
< | Меньше чем | >= | Больше или равно | = | Равно |
Таблица 7. Логические операторы
Оператор | Описание |
AND | Подразумевает, что все условия должны быть выполнены одновременно. |
OR | Подразумевает, что должно быть выполнено хотя бы одно из условий отбора. |
NOT | Подразумевает, что условия не должны выполняться. |
BETWEEN | Подразумевает, что значения должны быть в заданном диапазоне. |
IN | Проверяет на равенство любому значению из списка. Например, выражение IN(«WA», «CA», «ID») означает то же самое, что и выражение «WA» Or «CA» Or «ID». |