Билеты — субд access — файл 38. назначение запросов, их виды и использование в субд access.txt

Способы подсчета данных

Подсчитать количество элементов в поле (столбце значений) можно с помощью функции Число. Функция Число принадлежит к ряду функций, называемых агрегатными. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. Кроме функции Число, в Access есть следующие агрегатные функции:

Сумма для суммирования столбцов чисел;

Среднее для вычисления среднего значения в столбце чисел;

Максимум для нахождения наибольшего значения в поле;

Минимум для нахождения наименьшего значения в поле;

Стандартное отклонение для оценки разброса значений относительно среднего значения;

Дисперсия для вычисления статистической дисперсии всех значений в столбце.

В Access предусмотрено два способа добавления функции Count и других агрегатных функций в запрос. Вы можете:

Открыть запрос в режиме таблицы и добавить строку итогов. Строка итогов позволяет использовать агрегатные функции в одном или нескольких столбцах в результатах запроса без необходимости изменять его структуру.

Создать итоговый запрос. В итоговом запросе вычисляются промежуточные итоги по группам записей. Например, если вы хотите вычислить промежуточную сумму всех продаж по городам или по кварталам, следует использовать итоговый запрос для группировки записей по нужной категории, а затем просуммировать все объемы продаж. С другой стороны, с помощью строки итогов можно вычислить общий итог для одного или нескольких столбцов (полей) данных.

Примечание: Ниже в разделах этой статьи подробно описано применение функции Сумма, однако следует помнить, что вы можете использовать другие агрегатные функции в строках итогов и запросах. Дополнительные сведения об использовании других агрегатных функций см. ниже в разделе Справочные сведения об агрегатных функциях.

Дополнительные сведения о способах использования других агрегатных функций см. в разделе Отображение итогов по столбцу в таблице.

В следующих разделах описаны шаги, которые следует выполнить, чтобы добавить строку итогов, а также описывается использование итогового запроса для подсчета данных

Следует обратить внимание на то, что функция Число работает с большим числом типов данных, чем другие агрегатные функции. Функцию Число можно использовать для любого типа полей, кроме тех, которые содержат сложные повторяющиеся скалярные данные, например поле с многозначными списками

С другой стороны, многие агрегатные функции работают только с данными в полях, имеющих определенный тип данных. Например, функция Сумма работает только с типами данных «Число», «Действительное» и «Денежный». Дополнительные сведения о типах данных, требуемых для каждой функции, см. ниже в разделе Справочные сведения об агрегатных функциях.

Общие сведения о типах данных см. в статье Изменение типа данных для поля.

Расширенный перекрестный запрос

Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме «Конструктора» можно создавать подобный запрос.

Для этого необходимо нажать «Конструктор запросов» — «Перекрестный».

Открывается меню добавления исходных таблиц, а также возможность заполнения выборочных полей

Единственное, на что следует обратить внимание, – пункты «групповая операция» и «перекрестная таблица». Их нужно заполнять правильно, иначе процедура не будет выполнена корректно

Перекрестные запросы – это наиболее простой способ поиска и выборки информации из нескольких источников данных, плюс с возможностью формирования диаграмм и графиков.

Более того, при использовании данной процедуры быстрее выполняется поиск, даже с несколькими вариантами развития.

Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».

Создание запроса с несколькими таблицами

Теперь, когда мы запланировали наш запрос, мы готовы его спроектировать и запустить. Если вы создали письменные планы для своего запроса, обязательно обращайтесь к ним часто в процессе разработки запроса.

Чтобы создать запрос с несколькими таблицами:

  1. Выберите команду « Конструктор запросов» на вкладке « Создать » на ленте.

В появившемся диалоговом окне « Показать таблицу » выберите каждую таблицу, которую вы хотите включить в свой запрос, затем нажмите « Добавить» . После того, как вы добавили все нужные таблицы, нажмите « Закрыть» . Когда мы планировали наш запрос, мы решили, что нам нужна информация из таблицы Customers и Orders , поэтому мы добавим их.

Таблицы появятся в панели «Связывание объектов» , которая связана линией соединения . Дважды щелкните тонкий раздел линии соединения между двумя таблицами, чтобы изменить направление соединения.

Регистрация Свойства диалоговое окно. Выберите вариант, чтобы выбрать направление вашего соединения.

  • Выберите вариант 2: для объединения слева направо . В нашем запросе левая таблица — таблица Customers , поэтому выбор этого означает, что все наши клиенты, которые соответствовали нашим критериям местоположения, независимо от того, разместили ли они заказ, будут включены в наши результаты. Мы не хотим выбирать этот вариант для нашего запроса.
  • Выберите вариант 3: для запроса справа налево . Поскольку наш правильный стол является нашей таблицей Orders , выбор этого параметра позволит нам работать с записями для всех заказов и только для клиентов, разместивших заказы. Мы выберем этот вариант для нашего запроса, потому что это именно те данные, которые мы хотим видеть.

В окнах таблицы дважды щелкните имена полей, которые вы хотите включить в свой запрос. Они будут добавлены в дизайнерскую сетку в нижней части экрана.

В нашем примере мы будем включать большинство полей из таблицы Customers : имя , фамилия , адрес , город , штат , почтовый индекс и номер телефона . Мы также будем включать идентификационный номер из таблицы Orders .

Установите критерии поля , введя требуемые критерии в строке критериев каждого поля. Мы хотим установить два критерия:

  • Во-первых, чтобы найти клиентов, которые не живут в Роли, мы будем вводить Not In («Raleigh») в поле City.
  • Во-вторых, чтобы найти клиентов , которые имеют телефонный номер , начинающийся с кодом 919 , мы вводим Like ( «919 *») в номер телефона поле.

После того, как вы установили критерии, запустите запрос, нажав команду « Выполнить» на вкладке « Дизайн запросов ».

Результаты запроса будут отображаться в представлении Datasheet запроса , которое выглядит как таблица. Если вы хотите, сохраните запрос, нажав команду « Сохранить» на панели быстрого доступа. Когда появится запрос на его имя, введите нужное имя и нажмите «ОК» .

Новые статьи

  • Проектирование собственной базы данных в Access — 21/08/2018 15:16
  • Форматирование форм в Access — 21/08/2018 15:11
  • Создание форм в Access — 21/08/2018 15:05
  • Изменение таблиц в Access — 21/08/2018 14:58
  • Дополнительные параметры отчета в Access — 21/08/2018 14:48
  • Создание отчетов в Access — 21/08/2018 14:42
  • Дополнительные параметры дизайна запроса в Access — 21/08/2018 14:36

Предыдущие статьи

  • Сортировка и фильтрация записей в Access — 21/08/2018 04:37
  • Работа с формами в Access — 21/08/2018 04:25
  • MS Access — Работа с таблицами, создание, удаление, настройка внешнего вида — 20/04/2018 17:18
  • MS Access — Управление базами данных и объектами — 30/03/2018 16:18
  • Начало работы в Access. Знакомство с Access 2010 — 10/02/2018 18:24
  • MS Access: Введение в объекты — Таблицы, формы, запросы и отчеты — 07/02/2018 08:32
  • MS Access: Что такое база данных? Отличие Access от Excel. — 03/02/2018 18:18

Запросы на добавление

Этот тип операций используется для вставки новых строк в существующую таблицу БД. Можно добавлять конкретные значения полей, а можно извлекать информацию из одной таблицы и добавлять ее в другую. Как извлекать данные, мы уже знаем, давайте посмотрим, как добавить строки.

Создадим еще одну таблицу «Новые студенты» и добавим в нее 2 записи:

Код Имя Фамилия Дата рождения
1 Юрий Семенов 11.12.2002
2 Алексей Торопов 13.08.2002

А теперь вставим эти данные в таблицу «Студенты» с помощью «Конструктора запросов». Для этого на вкладке «Конструктор» выберем пункт «Добавить», а в открывшемся окне укажем таблицу «Студенты», в которую будут вставляться данные. В окне запроса добавим таблицу «Новые студенты», из которой будем брать записи. Выберем поля, информация из которых будет добавлена в таблицу «Студенты»:

И выполним запрос. Таблица стала выглядеть так.

В режиме языка запросов SQL на добавление принимает вид:

Объединение таблиц в запросы

Последнее, что вам нужно учитывать при разработке запроса, — это то, как вы связываете или присоединяетесь к столам, с которыми работаете. Когда вы добавляете две таблицы в запрос Access, это то, что вы увидите в области « Связывание объектов» :

Строка, соединяющая две таблицы, называется линией соединения . Посмотрите, как линия соединения на самом деле является стрелкой? Это связано с тем, что он указывает порядок, в котором запрос просматривает данные из двух таблиц. На изображении выше, стрелка указывает от налево на право , это означает , что запрос будет смотреть на данные в левой таблице первой, то только данные в правой таблице, относится к записям это уже видели в левой таблице.

Ваши таблицы не всегда будут соединены таким образом, иногда Access к ним присоединятся право на левый. В любом случае вам может потребоваться изменить направление соединения, чтобы убедиться, что ваш запрос содержит правильную информацию. Направление объединения может повлиять на информацию, которую получает ваш запрос.

Чтобы понять, что это значит, рассмотрите вопрос, который мы разрабатываем. По нашему запросу нам нужно увидеть клиентов, которые разместили заказы, поэтому мы включили таблицу Customers и таблицу Orders . Давайте рассмотрим некоторые данные, содержащиеся в этих таблицах.

Что вы замечаете, когда смотрите эти списки? Каждый заказ в таблице « Заказы» связан с кем-то в таблице « Клиенты» — клиентом, который разместил этот заказ. Однако, когда вы смотрите таблицу Customers, вы увидите, что клиенты, разместившие несколько заказов, связаны более чем с одним заказом, а те, кто никогда не размещал заказ, не привязаны к никаким заказам. Как вы можете видеть, даже когда две таблицы связаны, возможно иметь записи в одной таблице, которые не имеют отношения к какой-либо записи в другой таблице.

Итак, что происходит, когда Access пытается запустить наш запрос с текущим соединением слева направо ? Во-первых, он извлекает каждую запись из таблицы влево: таблица наших клиентов.

Затем он извлекает каждую запись из правой таблицы, которая имеет отношение к записи Access, уже взятой из левой таблицы.

Поскольку наше соединение началось с таблицы Customers , наш запрос будет включать записи для всех наших клиентов, включая тех, кто никогда не размещал заказы. Это больше информации, чем мы хотим! Мы только хотим , чтобы увидеть записи для клиентов , которые разместили заказы .

К счастью, мы можем исправить эту проблему, изменив направление линии соединения. Если мы присоединяемся к таблицам справа налево , Access сначала получит все заказы из правой таблицы, которая является нашей таблицей Orders :

Затем Access будет смотреть на левую таблицу и извлекать только записи клиентов, которые связаны с ордером справа.

Теперь у нас есть именно та информация, которую мы хотим: все клиенты, которые разместили заказ, и только те клиенты. Как вы можете видеть, нам нужно было присоединиться к нашим таблицам в правильном направлении, чтобы получить нужную нам информацию.

Теперь, когда мы понимаем, какое направление соединения нам нужно использовать, мы готовы построить наш запрос!

В нашем запросе, мы должны использовать право — налево Join, но правильное направление присоединиться к таблицам в запросах будет зависеть от того, что информация , которую вы хотите увидеть и где хранится эта информация. Когда вы добавляете таблицы в запрос, Access автоматически присоединяется к таблицам для вас, но часто не присоединяет их в правильном направлении

Вот почему важно всегда пересматривать соединения между вашими таблицами перед созданием запроса

Установка первичного ключа

Если вы сразу не установили ключевое поле, то надо это проделать. Для определения первичного ключа выделите поле Код группы и нажмите на панели конструктора таблиц кнопку с изображением ключа или выберите команду Ключевое поле из меню. В Microsoft Access можно выделить три типа ключевых полей:

счетчик, простой ключ и составной ключ.

Если первичный ключ не установлен пользователем до сохранения вновь созданной таблицы, Access выдаст запрос о необходимости включения в таблицу поля первичного ключа. При положительном ответе Access создаст ключевое поле типа счетчикс именем Код, в которое для каждого блока данных будет вводиться уникальный номер.

Простойключ определяется полем, содержащим уникальное значение.

Ключевое поле не позволит вводить в таблицу повторяющиеся или пустые значения, поскольку поле первичного ключа содержит однозначный идентификатор для каждой записи. Ключевое поле помогает Microsoft Access наиболее активно организовать поиск, хранение и объединение данных.

В случаях, когда невозможно гарантировать уникальность значений каждого поля, создают составной ключ, состоящий из нескольких полей. Такая ситуация возникает для таблицы, используемой для связывания двух таблиц в отношении «многие-ко-многим».

ПАРАМЕТРИЧЕСКИЕ ЗАПРОСЫ

В некоторых случаях вам может
потребоваться получить данные по отдельным группам, не выводя на экран остальные.
При этом вы заранее не знаете, какие итоговые данные вам могут понадобиться в
данный момент.  В этом случае, использование  конкретных критериев отбора в
бланке запроса, оказывается нецелесообразным из-за затрат времени.

Access для решения этой задачи предлагает вместо того, чтобы
в строку  «Условие
отбора
» вводить конкретное
значение, ввести в нее текст, заключенный в квадратные скобки [].

То, что будет находиться внутри этих
скобок, Access будет воспринимать как имя параметра и запрашивать
его в специальном окне. Весьма разумно,
в скобки помещать осмысленное слово или фразу, с тем, чтобы потом не ломать
голову над тем, что от нас требует Access.

·  Измените предыдущий запрос так, чтобы Access задавал вопрос при каждом его выполнении, например,
такой: «Введите название подразделения».

2.4. Microsoft Access 2007

2.4.5. Создание запросов и поиск информации в базе данных

В СУБД Access 2007 можно создавать queries для отображения требуемых полей из записей одной или нескольких таблиц.

В СУБД Access 2007 применяются различные типы запросов: на выборку, на обновление, на добавление, на удаление, перекрестный query, выполнение вычислений, создание таблиц. Наиболее распространенным является query на выборку. Применяются два типа запросов: query по образцу (QBE) и query на основе структурированного языка запросов (SQL).

Запросы на выборку используются для отбора требуемой пользователю информации, содержащейся в нескольких таблицах. Они создаются только для связанных таблиц. Queries могут основываться как на нескольких таблицах, так и существующих запросах. СУБД Access 2007 включает такие средства создания запросов, как Мастер и Конструктор.

Кроме того, в СУБД Access 2007 существует множество средств для поиска и отображения информации, которая хранится в базе данных. Данные в таблицах можно отсортировать на основе любого поля или комбинации полей. Для извлечения из базы данных необходимых записей можно отфильтровать таблицу, применив средства фильтрации.

На скриншоте (рисунок 1) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.


Рис. 1.

Рассмотрим создание запроса на выборку с помощью Конструктора

Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).


Рис. 2.

Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.

Рис. 3.

В окне Добавление таблицы следует выбрать несколько таблиц из представленного списка таблиц, на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, а окно «Запрос1» станет активным (рисунок 4).


Рис. 4.

Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.

Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.

При необходимости можно задать принцип сортировки (по возрастанию или по убыванию) результатов запроса. В строке «Вывод на экран» автоматически устанавливается флажок просмотра информации.

Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).


Рис. 5.

Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).


Рис. 6.

Далее создаем параметрический query или query с параметрами. Создаем этот query также как и предыдущий, в режиме конструктора, но только в строке Условия отбора для поля Фамилия введем условие отбора в виде приглашения в квадратных скобках, например . В этом случае в результате выполнения запроса на экране будет отображаться фамилия студента и все дисциплины, по которым он получил оценку.

Закрыть окно запроса на выборку. На вопрос о сохранении изменения ответить — Да и ввести имя запроса, например «Параметрический query». Запустим Параметрический query, дважды щелкнув на нем. В открывшемся на экране окне диалога «Введите значение параметра» надо ввести фамилию студента, информацию об успеваемости которого необходимо получить (рис. 8).


Рис. 7.

Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).


Рис. 8.

В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.

Далее >>> Раздел: 2.4.6. Создание форм для ввода данных в таблицы базы данных Access 2007

Запросы на удаление

И наконец бывают ситуации, когда часть записей оказываются ненужными и их следует удалить, для чего в СУБД предназначены запросы на удаление строк. Приведем пример такой команды, удалив недавно добавленную запись из таблицы «Студенты» — учащегося Алексея Торопова.

В «Конструкторе запросов» выбираем тип «Удаление» и формируем команду с помощью условий:

В режиме SQL видим текст:

Выполнив команду, получаем результат в таблице:

Таким образом, мы на практике изучили, для чего предназначены запросы в БД. Их разнообразие больше и применение шире, чем описано в данной статье. Если вас заинтересует тема баз данных, вы можете продолжить изучение самостоятельно.

Шаг 4. программный вызов инструкцииSelect()SqlDataSource

В примерах, приведенных в предыдущем учебном курсе, и в этом руководстве ранее привязываются элементы управления SqlDataSource к GridView. Однако данные элемента управления SqlDataSource могут быть программно доступны и перечислены в коде. Это может быть особенно полезно, если необходимо запросить данные для проверки, но не нужно отображать их. Вместо того чтобы писать весь стандартный код ADO.NET для подключения к базе данных, указать команду и получить результаты, можно разрешить SqlDataSource обработку этого кода монотонную.

Чтобы продемонстрировать работу с данными SqlDataSource s программным способом, представьте, что ваш начальник поработал с запросом на создание веб-страницы, в которой отображается имя выбранной категории и связанных с ней продуктов. То есть, когда пользователь посещает эту страницу, нам нужно случайным образом выбрать категорию из таблицы , отобразить имя категории, а затем перечислить продукты, принадлежащие этой категории.

Для этого нам нужно два элемента управления SqlDataSource, чтобы получить случайную категорию из таблицы , а другую — для получения продуктов категории. Мы создадим средство SqlDataSource, которое получает запись случайной категории в этом шаге. Шаг 5 рассматривает создание средства SqlDataSource, которое получает продукты категории.

Начните с добавления элемента SqlDataSource в и задайте для его значение . Настройте его так, чтобы он использовал следующий запрос SQL:

возвращает записи, отсортированные в случайном порядке (см. раздел использование для случайной сортировки записей). возвращает первую запись из результирующего набора. Вместе этот запрос возвращает значения столбцов и из одной, случайной выбранной категории.

Чтобы отобразить категорию значение, добавьте на страницу веб-элемент управления Label, задайте для его свойства значение и удалите его свойство . Для программного получения данных из элемента управления SqlDataSource необходимо вызвать метод . Метод принимает один входной параметр типа , который указывает, каким образом данные должны быть сообщены перед возвратом. Это могут быть инструкции по сортировке и фильтрации данных, а также используются веб-элементами управления данными при сортировке или разбиении по страницам данных из элемента управления SqlDataSource. Однако в нашем примере мы не хотим, чтобы данные были изменены перед возвратом, и поэтому перейдут в объект .

Метод возвращает объект, реализующий . Точный возвращаемый тип зависит от значения свойстваэлемента управления SqlDataSource. Как обсуждалось в предыдущем руководстве, этому свойству можно присвоить значение либо , либо . Если задано значение , метод возвращает объект DataView . Если задано значение , то возвращается объект, реализующий . Так как для свойства SqlDataSource задано значение (значение по умолчанию), мы будем работать с объектом DataView.

В следующем коде показано, как извлечь записи из SqlDataSource как DataView, а также как считать значение столбца из первой строки DataView:

возвращает первый в объекте DataView. возвращает значение столбца в первой строке

Обратите внимание, что объект DataView слабо типизирован. Чтобы сослаться на конкретное значение столбца, необходимо передать имя столбца в виде строки (CategoryName, в данном случае)

На рис. 13 показано сообщение, отображаемое в при просмотре страницы. Конечно, фактически отображаемое имя категории выбирается случайным образом SqlDataSource при каждом посещении страницы (включая обратные передачи).

Рис. 13. отображается случайно выбранное имя категории s (щелкните, чтобы просмотреть изображение с полным размером)

Note

Если свойству элемента управления SqlDataSource было присвоено значение , то для возвращаемого значения метода необходимо привести к . Чтобы считать значение столбца из первой строки, мы используем следующий код:

При случайном выборе категории с помощью SqlDataSource мы повторно готовы добавить GridView, в котором перечислены продукты категории.

Note

Вместо использования элемента управления Label для вывода имени категории s можно было добавить FormView или DetailsView на страницу, привязывая его к SqlDataSource. Однако использование метки позволило нам исследовать, как программным способом вызвать инструкцию SqlDataSource и работать с полученными в коде данными.

Как используются запросы?

Запросы гораздо более мощные, чем простые поиски или фильтры, которые вы могли бы использовать для поиска данных в таблице. Это связано с тем, что запросы могут извлекать информацию из нескольких таблиц. Например, если вы можете использовать поиск в таблице клиентов, чтобы найти имя одного клиента в вашей компании или фильтр в таблице заказов, чтобы просмотреть только заказы, размещенные за последнюю неделю, ни один из них не позволит вам просматривать как клиентов, так и заказы на один раз. Однако вы можете легко запустить запрос, чтобы найти имя и номер телефона каждого клиента, совершившего покупку за последнюю неделю. Хорошо спроектированный запрос может предоставить информацию, которую вы, возможно, не сможете найти, просто просмотрев данные в ваших таблицах.

Когда вы запускаете запрос, результаты представлены вам в таблице, но при его разработке вы используете другое представление. Это называется представлением Query Design , и оно позволяет увидеть, как ваш запрос объединяется.

Заполнение таблицы

 Введём в специальную таблицу только следующие данные

Поле

Тип данных

Описание

Счетчик

Фамилия

Текстовый

Имя

Текстовый

Дата

Дата / время

Дата рождения

Пол (м)

Логический

Пол мужской  ?

Улица

Текстовый

Дом

Числовой

Квартира

Числовой

Учебная группа

Текстовый

Группа здоровья

Текстовый

Группа здоровья по физкультуре

Увлечения

Текстовый

Глаза

Текстовый

Цвет глаз

     В ячейках левого столбца появившейся таблицы вводим имена полей. В соседней правой ячейке вводим тип данных. По умолчанию он задается так Текстовый. Любой другой выбирается с помощью ниспадающего меню.

     Например, вводя в четвёртой строке таблицы имя поля Дата, установим тип данных Дата/время.  В раскрывающемся списке Свойства поля установить курсор в наборном поле Формат поля. Во вновь раскрывающемся списке Формат поля установить Краткий формат даты.

    Напоминание. Переход от ячейки к ячейке осуществляется одним из следующих способов: мышью; нажатием на клавишу Enter; клавишей Tab.

     Сохраните таблицу, щелкнув на ней правой клавишей мыши — Закрыть.

     В  появившемся  окне  введите  имя  таблицы «Список_учеников» и  щелкните  на  кнопке ОК. Появится запрос на создание ключевого поля – уникального  поля записи. По ключевому  полю  можно  однозначно идентифицировать запись– его значение не повторяется  у  разных  записей. Ключевым сделаем атрибут таблицы №. Для этого установим курсор на имя этого поля и щёлкнем по кнопке  − Ключевое поле. Это поле позднее будем использовать для  связи  записей из разных таблиц. При заполнении данной таблицы данными значения счётчика №  будут формироваться  самостоятельно (в поле №  для каждой записи будут появляться числа – номера записей).

         Заполните базу данных — не менее 20 произвольных значений.

Вставка рисунка или объекта

Создание других таблиц для этой базы данных — аналогичное. 

Создайте еще 5 таблиц самостоятельно.

Вставка в запись рисунка или объекта

Рисунок или объект добавляется из имеющегося файла либо создается в приложении OLE (например, в MS Paint), а затем вставляется в текущую запись.

Рассмотрим размещение объекта OLE на примере поля Фотография начальника в таблице Преподаватели. Фотографии хранятся в формате графического редактора Paint в файлах с расширением .bmp. Если рисунка в вашем файле нет, то создайте его самостоятельно и сохраните.

  1. В окне базы данных установите курсор на таблице Преподаватели и нажмите кнопку Открыть
  2. Заполните строки (записи) открывшейся таблицы данными в соответствии с названиями столбцов (полей)
  3. Для размещения поля Фотография начальника выполните внедрение объекта OLE в файл базы данных. Установите курсор в соответствующее поле таблицы. Выполните команду меню Вставка|Объект
  4. В окне Вставка объекта выберите тип объекта Paintbrush Picture и установите флажок Создать из файла
  5. В этом окне можно ввести имя файла, содержащего фотографию.
  6. Для просмотра внедренного объекта установите курсор в соответствующее поле и дважды щелкните кнопкой мыши
  7. Чтобы вернуться из программы Paint, выполните команду Файл|Выход и возврат к таблице Преподаватели.
Размещение данных типа МЕМО в таблице

В таблице ПРЕДМЕТ предусмотрено поле ПРОГРАММА, которое будет содержать длинный текст – краткую программу курса. Для такого поля выберите тип данных ПолеМЕМО.

Создание запросов на обновление таблиц

Запросы на обновление используются главным образом для того, чтобы внести изменения сразу в большое количество записей с помощью одного запроса. Классическим примером такого запроса является изменение цены в таблице «Товары» (Products) на некоторый постоянный коэффициент, например можно увеличить цену одной из категорий товара на 20%. Чтобы создать такой запрос:

  1. Раскройте список таблиц, щелкнув мышью по ярлыку Таблицы (Tables) окна базы данных.
  2. Выделите таблицу «Товары» (Products). Щелкните левой кнопкой мыши по стрелке на кнопке Новый объект (New Object) на панели инструментов и выберите из списка значение Запрос (Query). Появится окно Конструктора запросов с таблицей «Товары» в верхней части. Перенесите в бланк запроса поля «Цена» и «КодТипа».
  3. Введите условие отбора записей: например, в столбец «КодТипа» введите значение 1.
  4. Выполните запрос, чтобы убедиться, что отбираются все записи, содержащие напитки.
  5. Теперь изменим запрос, превратив его в запрос на обновление. Для этого выполните команду меню Запрос → Обновление (Query → Update). Изменяется заголовок запроса и появляется дополнительная строка Обновление (Update To). При этом исчезают строки Сортировка (Sort) и Вывод на экран (Show) (рис. 4).
  6. Теперь нужно в строку Обновление (Update To) ввести выражение, по которому будет вычисляться новая цена: * 0.2. В других случаях можно вводить константу, например, если нужно поменять дату во многих записях на текущую.
  7. Теперь можно выполнить запрос. Для этого нажмите кнопку Запуск (Run) на панели инструментов. Так же, как и при добавлении записей в таблицу, Access выдает сообщение о количестве обновляемых записей и запрашивает подтверждение на обновление. Вы можете подтвердить обновление записей или отвергнуть.

Рис. 4. Запрос на обновление записей

Совет
Прежде чем выполнять запрос на обновление, щелкните левой кнопкой мыши по стрелке на кнопке Вид (View) и выберите Режим таблицы (Datasheet View). Вы увидите все записи, которые будут обновлены, хотя данные в обновляемых полях будут еще старые. И только убедившись, что отобраны нужные записи, можно выполнять запрос.

В приведенном примере изменялись значения в поле, которое не является первичным ключом в таблице «Товары» (Products). Особый случай возникает, когда требуется обновить значение первичного ключа в таблице. Если эта таблица связана отношением «один-ко-многим» с другими таблицами, то при изменении первичного ключа записи должны одновременно измениться значения внешних ключей во всех связанных записях подчиненных таблиц. Access обеспечивает выполнение такого изменения автоматически, т. к. поддерживает каскадное обновление записей. При определении связи между таблицами можно установить флажок Каскадное обновление связанных полей (Cascade Update Related Fields) (см. разд. «Поддержка целостности данных» гл. 2).

Если такой флажок установлен, то при изменении значения первичного ключа в главной таблице Access автоматически выполняет специальный запрос, с помощью которого обновляются внешние ключи всех связанных записей в подчиненной таблице.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector