В этой главе рассмотрены различные методы отображения информации, представленной в базе данных, методы исключения из просмотра записей, не интересующих пользователя при решении поставленной задачи. Вы ознакомитесь со следующими материалами:
типы запросов и их создание; создание таблицы с помощью запроса; поиск и замена записи. применение сортировки и фильтра.
Запрос позволяет получить из одной или нескольких таблиц базы данных необходимую информацию, отвечающей заданному условию, выполнить вычисления над данными, добавить, изменить или удалить записи в таблице. Например, запрос позволяет просмотреть в таблицах «Клиенты» и «Заказы» данные о клиенте и заказы, которые он разместил, подсчитать их стоимость. С помощью запроса можно обновлять данные в таблице, добавлять и удалять записи, Он может служить основой для формы или отчета.
Назначение запросов:
выбор записей, отвечающих определенным критериям отбора без предварительного открытия конкретной таблицы или формы; выбор таблиц, содержащих нужные записи, с возможностью последующего добавления других таблиц; отбор полей, выводящихся на экран при отображении результирующего набора записей; создание новой таблицы на основе данных, полученных из существующих таблиц; обновление, добавление и удаление записей таблицах; выполнение вычислений над значениями полей. В Access различают следующие типы запросов: запрос на выборку данных (Select query) — позволяет извлечь данные из одной или нескольких таблиц согласно заданному критерию и отобразить их в новой таблице; перекрестный запрос (Crosstab query) — суммирует в электронной таблице данные из одной или нескольких таблиц. Они используются для анализа данных, создания диаграмм; запрос с параметрами (Parameter query) — позволяет извлечь данные из одной или нескольких таблиц согласно одному или нескольким параметрам. Например, для поля, в котором отображаются даты, можно ввести приглашения следующего вида «Введите начальную дату:» и «Введите конечную дату», чтобы задать границы диапазона значений; запрос на изменение (Action query) — создают новые таблицы из запросов. Они позволяют включить новые записи или удалить старые, внести в них изменения с помощью выражений, встроенных в запрос; запрос SQL (SQL query) — основан на инструкциях SQL (Structured Query Language — язык структурированных запросов). Язык SQL является стандартом для большинства СУБД. В формате SQL в базе данных хранятся все запросы.
Наиболее часто используемым типом запроса является запрос на выборку. Например, из многостраничного железнодорожного расписания, вас могут интересовать только поезда, которые направляются в определенный город в заданно отрезке времени. Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений. Внесенные в таблицу изменения автоматически отображаются в запросе.
По результатам запроса создается временная таблица, которая хранится в памяти компьютера. После сохранения запроса сохраняется только описание его конструкции, а не данные, полученные в результате запроса. Сохраненный запрос можно использовать многократно.
Рис. 24.1
Окно базы данных после . выбора значка Запросы на панели Объекты
До выполнения некоторых запросов на экране могут отобразиться последовательно два окна для ввода начальной и конечной даты, в течение которых будут отбираться данные (рис. 24.2).
Рис. 24.2
Окно для ввода начальной даты отбора данные
Запрос можно открыть в режиме таблицы (рис. 24.3) или в режиме конструктора (рис. 24.8).
Рис. 24.3
Отображение запроса на выборку в режиме таблицы
Запрос можно создать с помощью мастера или в режиме конструктора. Как обычно, наиболее простой способ построения запроса предусматривает использование мастера.
Режим конструктора (Query Design) позволяет задавать не только условия выбора данных, но и порядок сортировки. Запросы сохраняются как отдельные объекты и отображаются в окне базы данных.
Создание простого запроса с помощью мастера
Для открытия окна мастера запроса в окне базы данных на панели Объекты (Objects) выберите значок
Запросы (Queries) и дважды щелкните значок Создание запроса с помощью мастера (Create Query By Using Wizard) (см. рис. 24.1). Другой способ отображения мастера запроса описан ниже в разделе «Создание многотабличных запросов».
В окне Создание простых запросов (Simple Query Wizard) в раскрывающемся списке
Таблицы и запросы (Table/Query) выберите таблицы и запросы, поля которых будут использоваться в запросе (рис. 24.4). В списке
Доступные поля (Available Fields) дважды щелкните имена используемых в запросе полей. Эти поля переместятся в список Выбранные поля (Selected Fields) . Нажмите кнопку
Далее (Next) .
Рис. 24.4
Окно мастера создания простых запросов
При создании запроса по нескольким таблицам во втором окне положением переключателя вам надо выбрать подробный (вывод каждого поля каждой записи) (Detail (shows every field of every record)) или итоговый (Summary ) запрос (рис. 24.5). Итоговые запросы содержат поля, по которым группируются данные, и числовые поля, по которым определяют, например, суммарное, среднее, максимальное или минимальное значение. В итоговом запросе можно произвести подсчет количества записей в группе (Count records in). Для добавления вычислений в результаты запроса нажмите кнопку Итоги (Summary Options) и выберите нужные поля или установите флажок Подсчет числа записей в Итоги (Count records in Quarterly Orders by Product).
Рис. 24.5
Выбор типа создаваемого отчета
В следующем окне мастера вам будет предложено дать имя запросу и положением переключателя определить дальнейшие действия:
Открыть запрос для просмотра данных (Open The Query To View Information) или
Изменить макет запроса (Modify the query design). После того как вы нажмете кнопку
Готово (Finish) , откроется запрос в режиме таблицы.
Создание запроса в режиме конструктора
Создание запроса в режиме конструктора предоставляет большие возможности по сравнению с мастером простого запроса.
В диалоговом окне Новый запрос (New Query) выберите в списке в правой части окна элемент Конструктор (Design View)
и нажмите кнопку OK (рис. 24.6). На экране отобразится окно запроса в режиме конструктора и диалоговое окно Добавление таблицы
(Show Table) (рис. 24.7), которое позволяет выбрать, по каким таблицам и запросам или их комбинации будет создан новый запрос. Окно запроса разделено посредине по горизонтали. В верхней части окна отображены списки доступных в запросе полей всех таблиц, в нижней — спецификация запросов. Каждый столбец отображает поле, используемое для выделения тех записей, которые будут включены в запрос.
Рис. 24.6
Выбор метода создания запроса
Рис. 24.7
Выбор таблицы, для которой будет составлен запрос
На вкладке Таблицы (Tables) диалогового окна Добавление таблицы укажите название исходной таблицы. Нажмите кнопку
Добавить (Add) , чтобы добавить список полей этой таблицы в верхнюю часть окна запросов. Для добавления полей таблицы в запрос можно дважды щелкнуть ее имя.
При составлении запроса по нескольким таблицам выберите необходимые таблицы, а затем нажмите кнопку
Закрыть (Close). На экране отобразится окно, позволяющее выполнить настройку запроса в режиме конструктора (рис. 24.8). В нижней части окна отображен пустой бланк запроса, который предназначен для определения запроса или фильтра в режиме конструктора запроса или в окне расширенного фильтра.
Рис. 24.8
Окно
структуры
запроса:
1 — список полей,
2 — бланк запроса
В тех случаях, когда вас интересуют записи, отвечающих определенному условию, например, фамилии клиентов, сделавших заказ дороже определенной суммы, применяют запрос по образцу.
При создании запроса вы даете, как бы образец (QBE, query by example — запрос по образцу ), по которому будет составлен ответ или выполнены операции. Поэтому в более версиях Access использовался термин бланк запроса по образцу (QBE).
Запросы составляются в интерактивном режиме. Включите в запрос таблицы и поля, которые вас интересуют, укажите условия выбора записей и какие вычисления необходимо произвести. Включить поле в запрос можно следующими способами:
в строке Поле (Field) поставить курсор в нужный столбец и дважды щелкнуть имя поля в списке. Нажать клавишу стрелка-вправо или клавишу Tab, переместить курсор в следующий столбец и добавить новое поле в запрос; щелкнуть на кнопке раскрытия списка около правой границы ячейки в строке Поле (Field) или нажать клавишу F4, чтобы открыть список имен полей и выбрать требуемое поле; перетащить имя поля мышью из списка полей в верхней части окна. Для ввода нескольких полей из списка можно удерживать клавишу Ctrl при выделении нужных полей в списке, а затем перетащите выделенные поля мышью. Access автоматически распределит выбранные поля по ячейкам строки
Поле. Если выбрать в первой строке звездочку «*», то это означает, что в ответе должны быть представлены все столбцы таблицы.
Для выполнения сортировки результатов запроса по какому-нибудь полю переместите курсор в строку
Сортировка (Sort) этого поля и нажмите клавишу F4, для отображения вариантов сортировки: по возрастанию (Ascending),
пo убыванию (Descending) или отсутствует (not sorted). Более подробно выбор условий сортировки дальше в этой главе.
Если вы в запросе используете какое-нибудь поле для указания условий отбора, но не хотите, чтобы оно было отображено в ответе на запрос, то снимите флажок в этом поле в строке
Вывод на экран (Show) .
Если вы хотите использовать текстовой критерий отбора, то введите необходимый текст в строку
Условие отбора (Criteria). Например, введите в эту строку слово фрукты для выяснения, на какую сумму продан именно этот товар. После нажатия клавиши Enter слово будет помещено в кавычки. Для каждого поля, которое предполагается использовать как параметр, введите в ячейку строки
Условие отбора (Criteria) текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст приглашения должен отличаться от имени поля, но может включать его.
При желании пользователь может изменить или уточнить запрос, построить по результатам запроса графики. Более подробно выбор условий отбора записей в запросе рассмотрен ниже.
Запуск запроса
В режиме конструктора запрос можно запустить следующими способами:
выбрать в меню Запрос (Query) команду Запуск (Run); нажать кнопку Запуск (Run) на панели инструментов.
Результаты ответа на запрос будут представлены в таблице. Чтобы прервать запуск запроса, нажмите клавиши Ctrl+Break.
Чтобы создать таблицу с помощью запроса, откройте ранее созданный запрос в режиме конструктора. Для этого в окне базы данных щелкните значок
Запросы (Query) в списке Объекты (Objects), выберите нужный запрос и нажмите кнопку
Конструктор (Design) на панели инструментов окна базы данных. Выберите в меню
Запрос (Query) команду Создание таблицы (Make Table Query) или щелкните на панели инструментов в раскрывающемся списке кнопки
Тип запроса (Query Type) строку Создание таблицы. (Make Table).
В диалоговом окне Создание таблицы. (Make Table) заполните поле имя таблицы (Table Name) (рис. 24.9). Положением переключателя укажите, где
будет
находиться создаваемая таблица: в текущей базе данных (Current Database) или в другой базе данных (Another Database). Если таблица будет находиться в текущей базе данных, то ее можно выбрать в раскрывающемся списке, если в другой базе данных, то в поле
имя файла (File Name) введите полное имя файла базы данных в формате: «полное имя файла» «имя базы данных», например, «C:\Data\Sales» «Paradox».
Рис. 24.9
Создание таблицы с помощью запроса
Нажмите кнопку OK и закройте запрос, нажав кнопку закрытия окна. На экране отобразится окно с вопросом: «Сохранить изменения макета или структуры объекта . ?)». Нажмите кнопку
Да (Yes). В окне со списком запросов перед именем созданного запроса появится восклицательный знак.
Двойным щелчком мыши запустите новый запрос. На экране появится сообщение, что запрос на создание таблицы приведет к изменению данных таблицы, созданной ранее на основе запроса (рис. 24.10). Нажмите кнопку
До (Yes) . Посмотрите список таблиц в окне базы данных, и дважды щелкните значок таблицы, созданной по результатам запроса, чтобы просмотреть ее.
Рис. 24.10
Предложение подтвердить запрос на создание таблицы
В Access предусмотрено большое количество вариантов отбора записей из базы данных. Разберем некоторые широко распространенные условия отбора записей, используемые в запросе.
Операторы
Оператор — это символ или слово, например, = или Оr, указывающие выполнение операции над одним или несколькими элементами. Операторы позволяют выполнять операции над элементами формулы. Access позволяет использовать различные типы операторов для вычислений на листе:
арифметические операторы — служат для выполнения арифметических операций над числами (таблица); операторы сравнения — используются для сравнения двух значений. Результатом сравнения может являться логическое значение: либо ИСТИНА, либо ЛОЖЬ; текстовый оператор конкатенации Амперсанд (&) — используется для объединения нескольких текстовых строк в одну строку; операторы ссылки — применяются для описания ссылок на диапазоны ячеек.
Запрос записей в определенном диапазоне значений может выполняться с использованием следующих операторов сравнения: = — равно; > — больше, чем; < — меньше, чем;
<> — не равно;
>= — больше или равно;
<= — меньше или равно.
Допустим, вас интересуют сотрудники, зарплата которых превышает 300 рублей. В строку
Условия отбора (Criteria) введите: >300.
Как правило, операторы сравнения используются в числовых полях или полях дат, но они могут применяться и в текстовых полях. Например, если ввести в текстовое поле условие отбора < 'П', то будут выбраны значения поля, начинающиеся после буквы «П».
Оператор LIKE
Если вы не уверены в написании какого-либо слова, то можете использовать оператор LIKE и подстановочный знак. Напомним, что знак вопроса заменяет один символ, а звездочка * — группу символов. Например, выражение: LIKE
П?Л выполняет поиск слов, начинающихся с буквы П. Выражение: LIKE выполняет поиск слов, пел, пал, пол и т.п.
Под выражением подразумевается любая комбинация операторов, констант, значений текстовых констант, функций, имен полей (столбцов), элементов управления или свойств, результатом которой является конкретное значение.
Выполнение стандартных вычислений нал значениями поля
Одним из широко распространенных методов анализа табличных данных является использование следующих итоговых функций для полей с числовыми данными:
Sum — вычисление суммы значений поля; Avg — определение среднего значения поля; Min — нахождение минимального значения поля; Мах — нахождение максимального значения поля; Count — подсчет количества записей поля (может применяться для всех полей); StDav — расчет стандартного отклонения поля; Var — расчет изменения значений поля.
Выполнение групповых операций
Столбец итогов может содержать итоговые данные для всех записей таблицы или сгруппированных по какому-нибудь принципу. Например, нас может интересовать максимальная или средняя цена товаров (поле Цена) каждого типа (поле Тип), представленных в таблице. Для использования итоговых операторов в указанной задаче выполните следующие действия:
в запросной форме в строке Вывод на экран (Show) поставьте флажки в полях: Тип и Цена, которое будет использоваться для вычислений; выберите в меню Вид (View) команду Групповые операции (Totals) или jm-жмите одноименную кнопку на панели инструментов; установите курсор в поле, над значениями которого будут выполняться вычисления, и выберите в ячейке Групповая операция (Total) требуемую функцию; в меню Запрос (Query) выберите команду Запуск (Run).
С помощью запроса могут быть подсчитаны сумма (Sum) и среднее арифметическое (Avg), найдены минимальное (Min) и максимальное (Max) значения в поле. Закончив работу с запросом, можно сохранить его под каким-нибудь именем.
Рис. 24.11
Составление запроса
с использованием групповой
операции
Расширение условий отбора
Например, вы хотите узнать объем продаж дорогих (дороже 2500 руб.) и дешевых (меньше 500 руб.) заказов. Введите в ячейку
Условия отбора (Criteria) : >2500, в ячейку или (or) <500. Условия, заданные в ячейке или, будут восприниматься как дополнительные.
Использование вычисляемого поля
Вычисляемое поле отображает данные, полученные в запросе по результатам расчета выражения. Значение поля пересчитывается при каждом изменении выражения.
Например, если каждый заказ стоит 5 рублей и вы хотите вычислить стоимость всех заказов, сделанных каждым покупателем, то введите в ячейку Поле выражение: Стоимость:[Количество заказов]*5.
Построитель выражений
Для отображения окна построителя выражений (рис. 24.12) выполните следующие действия:
перейдите в режим конструктора запроса; в строке Условие отбора (Criteria) щелкните правой кнопкой мыши столбец, для которого необходимо задать критерии отбора, и выберите в контекстном меню команду Построить (Build) или нажмите одноименную кнопку на панели инструментов.
Рис. 24.12
Построитель выражений
В верхней части диалогового окна построителя выражений расположено поле, отображающее выражение по мере его создания. Access часто помещает в это поле прототипы, заключенные в двойные угловые кавычки, вместо которых пользователь должен подставить нужные элементы. Следует либо ввести соответствующее значение, либо выделить прототип, и заменить его на элемент из правого списка.
В средней части окна построителя находится раздел, предназначенный для создания элементов выражения. В нем расположены кнопки с часто используемыми операторами. При нажатии на одну из этих кнопок построитель вставит соответствующий оператор в текущую позицию поля выражения. Например, вы можете нажать кнопку
Like , чтобы не вводить это слово с клавиатуры.
В нижней части окна построителя находятся три поля. В левом поле выводятся папки, содержащие таблицы, запросы, формы, объекты базы данных, , встроенные и определенные пользователем функции, константы, операторы и общие выражения. В среднем поле задаются определенные элементы или типы элементов для папки, заданной в левом поле. В правом поле выводится список значений (если они существуют) для элементов, Например, если выбрать в левом поле Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access, в правом поле будет выведен список всех встроенных функций, заданных левым и средним полями.
Чтобы вывести полный список операторов, выберите папку Операторы в нижнем левом поле и нужный тип в среднем поле. В правом поле будут выведены все операторы выбранного типа. Возможен непосредственный ввод части выражения в верхнее поле.
Для возвращения в бланк запроса нажмите кнопку ОК, Построенное выражение будет вставлено в то поле, где расположен курсор. Имена полей при вводе в бланк запроса следует заключить в квадратные скобки
Запрос на обновление записей позволяет изменять данные в существующих таблицах. Он вносит общие изменения в группу записей одной или нескольких таблиц. Например, необходимо внести изменения в таблицу в связи с тем, что на 10 процентов увеличивается зарплата сотрудников определенной категории. Можно задать условия отбора, например, возрастает зарплата только тех сотрудников, которые проработали больше трех лет.
Название окна запроса изменится на запрос на обновление (Update Query) . Перетащите из списка полей в бланк запроса поля, которые нужно обновить или которые должны использоваться в условиях отбора. Задайте условие отбора в ячейке
Условие отбора (Criteria).
Названия полей заключите в квадратные скобки. Для полей, которые необходимо обновить, введите в ячейку
Обновление (Update To) выражение или значение, которое должно быть использовано для изменения полей. Чтобы просмотреть список записей, которые будут обновлены, нажмите кнопку Вид на панели инструментов. Выводимый список не будет содержать новых значений. Для возврата в режим конструктора запроса снова нажмите кнопку Вид на панели инструментов. Завершите создание запроса в режиме конструктора. Нажмите кнопку Запуск на панели инструментов, чтобы обновить записи.
Запрос на базе нескольких связанных таблиц создается в той же последовательности, что и из одной таблицы, только добавляется ввод имен дополнительных таблиц.
Укажите сначала имя первой таблицы или запроса, на котором должен быть основан создаваемый запрос, выберите поля, данные которых нужно использовать, а затем укажите дополнительную таблицу или запрос и выберите нужные поля. Повторяйте этот шаг до тех пор, пока не будут выбраны все необходимые поля.
В верхней части макета видны линии связи между таблицами, а в нижней части на бланке запроса — имена таблиц и полей (рис. 24.13).
Рис. 24.13
Многотабличный запрос
Редактирование запроса в режиме конструктора
Режим конструктора позволяет не только создать новый запрос, но и редактировать существующий. В этом режиме можно добавлять поля, задавать порядок сортировки и условия отбора. Чтобы открыть запрос в режиме конструктора, перейдите в окно базы данных, на панели
Объекты (Objects) выберите значок Запросы (Queries), выделите нужный запрос в правой части окна и нажмите кнопку
Конструктор (Design View) на панели инструментов (рис. 24.4). Если запрос уже открыт, то для перехода в режим конструктора в меню
Вид (View) выберите команду Конструктор (Design View ) или нажмите кнопку Вид (View) на панели инструментов.
Если вы захотите снять в запросе какое-либо поля, то в строке Вывод на экран (Show) снимите флажок в соответствующей ячейке. Чтобы удалить поле из бланка запроса, щелкните область выделения столбца и нажмите клавишу
Delete .
Для изменения положения поля в запросе поместите указатель в область выделения столбца, он примет вид жирной стрелки, направленной вниз. Щелкните мышью в области выделения и переместите выделенный столбец, удерживая нажатой кнопку мыши.
Печать отчета по манным, полученным в результате запроса
Таблицу, полученную по результатам запроса, можно напечатать, выбрав в меню Файл (File) команду
Печать (Print). Рекомендуется сначала просмотреть отчет в окне Предварительный просмотр (Print Preview).
Поиск информации в базе данных путем просмотра большой таблицы, содержащей тысячи записей, займет много времени. Access предлагает несколько способов поиска или замены нужных данных при выполнении поиска конкретного значения, одной записи или группы записей:
прокрутить таблицу или форму либо ввести номер нужной записи в поле номера записи (см. рис. 24.3); провести автоматизированный поиск конкретных записей или определенных значений в полях с помощью диалогового окна Найти и заменить (Find and Replace), которое отображается на экране после выбора команды Найти (Find) в меню Правка (Edit); временно изолировать с помощью фильтра и просмотреть определенный набор записей в таблице или открытой форме; просмотреть определенный набор записей из одной или нескольких таблиц базы данных, удовлетворяющий заданным с помощью запроса условиям. Запрос позволяет работать с набором записей независимо от конкретной формы или таблицы.
Поиск и замена значения в поле таблицы
Выберите объект в режиме таблицы или форму для поиска по всем полям во всех записях. Для ускорения поиска поставьте курсор в поле, по которому будет проводиться поиск, или в раскрывающемся списке
Поиск в (Look in) выберите поле для поиска. Слово или фразу введите в поле
Образец (Find What). Нажмите кнопку Найти далее (Find Next).
Поиск только в текущем поле, особенно в индексированном поле, обычно выполняется быстрее. Первичный ключ таблицы индексируется автоматически. Создание индексов для полей с некоторыми типами данных не допускается. Быстрее всего операция поиска выполняется по полному значению поля или по первым символам в одном индексированном поле. Если приходится часто выполнять поиск в одном и том же неиндексированном поле, для этого поля полезно создать индекс.
Раскрывающийся список Совпадение (Match) содержит три позиции, определяющих тип совпадений:
Рис. 24.14
Поиск информации в базе данных
С любой частью поля (Part of Field) — производит поиск информации, часть которой совпадает с представленной в таблице, например, по образцу "ань" будут найдены города Казань, Рязань и т.п. Поля целиком (Whole Field) — искомая информация должна полностью совпадать с той, которая приведена в поле. С начала поля (Start of Field) — искомая информация должна быть представлена в начале поля, например, по образцу «нев» будет найдена Нева, а не Кишинев. Раскрывающийся список Просмотр (Search) — позволяет выбрать направление поиска: Вверх (к первой записи), Вниз (к последней записи) или Все (во всей таблице). Флажок С учетом регистра (Match Case) — задает поиск с учетом регистра символов при сравнении с образцом, заданным в поле Образец. Флажок С учетом формата полей (Search Fields As Formatted) — устанавливают для поиска данных в указанном формате отображения (например, дата, сохраненная в формате 05.01.92, может выводиться как 05-янв-92). Такой поиск является обычно самым медленным. Снимите флажок для поиска данных по их значению.
Если требуется заменить конкретные значения, обнаруженные при поиске, откройте вкладку Заменить (Replace). Более подробно операции поиска и замены описаны в главе 4.
Для повышения скорости сортировки и поиска записей можно проиндексировать отдельное поле или комбинацию полей. Индекс — это средство, ускоряющее поиск и сортировку в таблицы за счет использования ключевых значений, которое позволяет обеспечить уникальность строк таблицы. Первичный ключ таблицы индексируется автоматически. Не допускается создание индексов для полей с некоторыми типами данных.
Первичный ключ запрещает ввод в поле повторяющихся значений, Однако запрет на ввод повторяющихся значений может потребоваться и для других полей. Например, чтобы не повторялись номера пропусков сотрудников. Для нескольких полей, ввод в которые повторяющихся значений должен быть запрещен, можно использовать составной индекс. При создании индексов можно использовать поля разных типов.
Для одной таблицы Access позволяет создать до 32 индексов, из которых пять могут быть составными. Составной индекс может включать до 10 полей. С увеличением количества индексов уменьшается скорость добавления новых записей, так как каждая новая запись требует добавления к ней индексов.
Сознание индекса для одного поля
Создание индекса для одного поля покажем на примере таблицы «Товары». Откройте ее в режиме конструктора. В верхней части окна нажмите кнопку выделения поля, для которого необходимо создать индекс (рис. 24.15). В нижней части окна на вкладке
Общие (General) выделите ячейку Индексированное поле (Indexed) и установите значение
Да (Допускаются совпадения) (Yes (Duplicates OK)) , если допускает дублирование данных для выбранного поля. Значение
Да
(Совпадения не допускаются) (Yes (No Duplicates OK)) не допускает совпадения ни для каких двух записей значения этого поля.
Рис. 24.15
Выбор свойства индексированного поля
Создание составного индекса
Для создания составного индекса откройте таблицу в режиме конструктора и на панели инструментов Конструктор таблиц нажмите кнопку
Индексы (Indexes) . Откроется окно Индексы, содержащее информацию обо всех индексах таблицы. На рис. 24.16 это окно показано для таблицы Заказано. В первой пустой строке столбца
Индекс (Index Name) введите имя индекса. Для этой строки, можно использовать либо имя одного из индексируемых полей, либо другое подходящее имя.
Рис. 24.16
Создание составного индекса
В столбце Имя поля (Field Name) нажмите кнопку раскрытия списка и выберите первое поле, для которого необходимо создать индекс. В следующей строке столбца Имя поля (Field Name)
укажите второе индексируемое поле. Оставьте пустым для этой строки поле Индекс (Index Name). Повторите эти действия для всех полей, которые необходимо включить в индекс/Допускается использовать до 10 полей.
В верхней части окна индексов выберите новое имя индекса. В нижней части окна индексов в ячейке
Уникальный индекс (Unique) выберите значение Да .
Отметим, что после создания индекса по умолчанию будет использоваться порядок
сортировки По возрастанию (Ascending). Чтобы сортировать некоторые
поля по убыванию, установите для этих полей в столбце Порядок сортировки (Sort Order)
значение По убыванию (Descending).
Современные СУБД позволяют различным образом отобразить содержащуюся в них информацию без изменения действительного размещения данных. Одним из наиболее эффективных методов упорядочивания данных по заданным полям является сортировка. В процессе сортировки текстовые записи можно сортировать в.алфавитном порядке. Числовые, денежные, временные данные можно сортировать по возрастанию или убыванию, например, работнику коммерческой фирмы могут потребоваться сведения, кто из клиентов сделал наиболее дорогие заказы.
Записи можно сортировать в режиме таблицы или в режиме формы. Более наглядно результаты сортировки отображаются в режиме таблицы. Если вы попытаетесь закрыть таблицу после сортировки, то появится запрос:
«Сохранить изменения макета или структуры таблицы (Do you want to save changes to the design of query)» После закрытия формы измененный порядок сохраняется автоматически.
Сортировка записей осуществляется в соответствии с порядком ключевых полей в бланке в режиме конструктора таблицы. Если необходимо указать другой порядок сортировки без изменения порядка ключевых полей, то сначала определите ключ, а затем нажмите кнопку
Индексы (Indexes) на панели инструментов и в окне Индексы (Indexes) и укажите другой порядок полей для индекса с именем PrimaryKey.
Сортировка по нескольким полям одновременно
Вы можете выделить в таблице два или несколько соседних столбцов, а затем выполнить по ним сортировку. В форме возможна сортировка записей только по одному полю. Набор условий, применяемых для отбора подмножества данных или для их сортировки, называется фильтром.
Для сортировки данных в таблице по нескольким полям выберите в меню Записи (Records) команду Фильтр (Filter), Расширенный фильтр (Advanced Filter, Sort) . На экране отобразится окно, в верхней части которого отображен список всех полей таблицы (рис. 24.17). Это окно используется для выбора полей, по которым будет выполняться сортировка. Можно перетащить мышью названия полей из списка в строку
Поле (Field). Названия полей, по которым будет производиться сортировка, можно выбрать в строке Поле (Field ) из раскрывающегося списка. (Подробнее работа с окном списка рассмотрена ранее в разделе «Создание запроса» настоящей главы.)
Рис. 24.17
Окно, позволяющее выполнить сортировку по нескольким полям одновременно
В Access сначала сортируются записи, расположенные в самом левом столбце, затем в следующем столбце справа и т.д. Условия сортировки: по возрастанию, по убыванию и т.д. задаются в строке
Сортировка (Sort).
После задания условий сортировки выберите в меню Фильтр (Filter) команду
Применить фильтр (Apply Filter). Для отображения не отсортированной таблицы выберите в меню Записи (Records) команду
Удалить фильтр (Remove Filter, Sort) . Если фильтр создается в форме или таблице, в которой уже есть фильтр, оставшийся от предыдущего сеанса работы, то новый фильтр замещает его.
Фильтром называется набор условий, применяемых для отбора или сортировки данных. Применение фильтра позволяет ограничить количество просматриваемых записей и отобрать только те записи, которые удовлетворяют заданным условиям. Фильтры не сохраняются после закрытия таблицы или формы, поэтому их приходится создавать заново после открытия таблицы или формы.
Для проведения отбора по определенным условиям укажите таблицу или форму и поле, по которому будет производиться фильтрация записей. Например, вас могут интересовать сотрудники фирмы, проработавшие в ней 5 лет. В Access поддерживаются различные способы отбора записей с помощью фильтров. Ниже рассмотрены два способа фильтрации: фильтр по выделенному фрагменту и расширенный фильтр.
Фильтр по выявленному фрагменту
В некоторых случаях нам надо найти в базе данных только те записи, которые содержат выделенное значение и служит образцом для отбора. Например,, существует большая таблица с данными об автомобилях. Выделим в таблице поле 2109 в столбце Машины ВАЗ. При фильтрации по выделенному в таблице фрагменту останутся только записи о ВАЗ 2109.
С помощью фильтра можно также отобрать те записи, которые в данном поле не содержат выделенное значение. Для создания фильтра выделите значение, щелкните его правой кнопкой мыши и выберите команду
Исключить выделенное (Filter Excluding Selection) . Применительно к рассмотренному выше примеру после проведения фильтрации с исключением выделенного в столбце Машины ВАЗ отобразятся записи обо всех моделях ВАЗ, за исключением ВАЗ 2109.
Команда Фильтр для (Filter for) позволяет ввести значение или выражение, которое будет служить критерием фильтрации при поиске. Для выполнения процесса фильтрации выберите в меню
Записи (Records) команду Применить фильтр (Apply Filter, Sort) или нажмите кнопку Применить фильтр (Apply Filter) на панели инструментов.
Расширенный фильтр
На экране отобразится окно, рассмотренное в предыдущем разделе «Применение сортировки». В ячейку Условия отбора (Criteria) введите критерии, по которым будет производиться фильтрация. В качестве критерия можно использовать различные текстовые значения, например,
Or, если вы хотите отобразить заказы стоимостью больше 1500 рублей (рис. 24.18), операторы равно «=», больше «>», меньше«<», не равно «0», даты, например, вы можете выбрать заказы, полученные на последний день каждого месяца.
Для поиска записей, имеющих в конкретном поле пустые или непустые значения, введите в это поле выражение
Is Null или Is Not Null. (Эти значения
можно выбрать из списка в полях, имеющих тип «поле MEMO», «поле объекта OLE» или «Гиперссылка», и в вычисляемых полях в запросах.)
Рис. 24.18
Окно, позволяющее выполнить фильтрацию с определенным условием отбора
Для выполнения фильтрации выберите команду Применить фильтр (Apply Filter))
в меню Записи (Records). Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно снова применить сохраненный фильтр. При сохранении запроса фильтр сохраняется автоматически, но условие фильтра не добавляется к содержимому бланка запроса. При повторном открытии запроса можно снова применить сохраненный фильтр. После окончания работы с фильтром для отображения всей таблицы выберите в меню
Записи (Records) команду Удалить фильтр (Remove Filter, Sort) или выключить на панели инструментов кнопку
Применить фильтр (Apply Filter) .
Упражнения
1. В окне учебной базы данных Борей выберите таблицу Клиенты и проведите фильтрацию по выделенному значению в поле Должность. Упражнение можно выполнить следующим образом:
в окне базы данных на вертикально расположенной панели Объекты (Objects) выделите значок Таблицы (Tables) (см. рис. 24.1), в списке таблиц дважды щелкните Клиенты и просмотрите данные по клиентам; выберите в меню Вид (View) команду Режим таблицы (Datasheet View) ; с помощью горизонтальной полосы прокрутки перейдите к полю Должность и выделите в нем значение Бухгалтер; выделите в меню Записи (Records) команду Фильтр (Filter), Фильтр по выделенному (Filter by Selection) .
2. В окне учебной базы данных Борей проведите сортировку записей по полю Город. Упражнение можно выполнить следующим образом:
в окне базы данных на вертикально расположенной панели Объекты (Objects) выделите значок Таблицы (см. рис. 24.1), в списке таблиц дважды щелкните Клиенты; выделите столбец Город, щелчком мыши в области выделения столбца. Обратите внимание, что когда указатель мыши находится в области выделения столбца, он принимает вид жирной стрелки, направленной вниз; на панели инструментов нажмите кнопку Сортировать по возрастанию (Sort Ascending).
Выводы
1. Для просмотра результатов запроса в окне базы данных на вертикально расположенной панели Объекты (Objects) выберите значок
Запросы (Queries) и дважды щелкните имя запроса в списке (см. рис. 24.1).
2. Любые изменения в запрос следует вносить в режиме конструктора. Чтобы создать запрос в режиме конструктора на вертикально расположенной панели
Объекты (Objects) выберите значок Запросы (Queries) (см. рис. 24.1) и нажмите кнопку
Создать (New) на панели инструментов.
3. Для расширения условий отбора можно использовать строку или (or ) в бланке запроса.
4. При составлении запроса с использованием вычисляемого поля введите в ячейку Поле бланка запроса имя столбца, в котором будут представлены результаты вычислений, и после двоеточия выражение в квадратных скобках.
5. Для упрощения процесса добавления в запрос функций, констант, операторов и общих выражений можно использовать
Построитель выражений (Expression Builder).
6. Для изменения группы записей с помощью запроса на обновление откройте запрос в режиме конструктора (см. выше раздел «Создание и запуск запроса») и выберите в меню
Запрос (Query) команду Обновление (Update Query) или нажмите стрелку рядом с кнопкой Тип запроса на панели инструментов и выберите команду Обновление.
7. Для поиска значения в поле выберите команды Найти (Find) в меню
Правка (Edit) (см. рис. 24.14). Для ускорения поиска поставьте курсор в поле, по которому будет проводиться поиск. Нажмите кнопку
Найти далее (Find Next).
8. Для создания сложных фильтров выберите в меню Записи (Records) команду
Фильтр (Filter), Расширенный фильтр (Advanced Filter/Sort).