Лабораторная работа №10
Создание реляционной базы данных, автоформа, добавление вычисляемых полей в формы и отчеты
Создадим реляционную базу данных, которая будет содержать сведения о продуктах на складе. Она будет включать три таблицы: Типы продуктов, Поставщики и Продукты.
Вначале с помощью конструктора создайте таблицу Типы продуктов следующей структуры (ключевое поле задавать не нужно):
Перейдите в режим таблицы и введите данные в таблицу:
Теперь создайте в режиме конструктора таблицу Поставщики такой структуры (без ключевого поля):
Заполните ее в режиме таблицы следующими записями:
После этого можно приступить к созданию основной таблицы Продукты, структура которой выглядит следующим образом:
Ключевым полем сделайте поле Код продукта. Заполните таблицу данными, приведенными ниже:
Создайте запрос, который будет содержать сведения об имеющихся на складе кондитерских изделиях.
Для этого Вам понадобится последовательно добавить в режиме конструктора таблицы Поставщики, Продукты и Типы продуктов, затем создать связи между полями таблиц: поле Код таблицы Поставщики связать с полем Код поставщика таблицы Продукты, поле Код типа таблицы Продукты – с полем Код таблицы Типы продуктов. Чтобы создать связь нужно нажать левую кнопку мыши на названии одного из связываемых полей и переместить указатель мыши на другое связываемое поле (в другой таблице).
- Включите в запрос следующие данные:
- Сохраните запрос под именем Кондитерские изделия, просмотрите его.
- Построение двух следующих запросов начните с добавления и связывания тех же таблиц, что и в запросе Кондитерские изделия. В запрос Зарубежные товары включите данные:
- В запрос Продукты, поставки которых прекращены добавьте следующие поля и условия:
- Откройте запрос для просмотра.
- Создайте отчет по запросу Зарубежные товары с группировкой по полю Страна.
Создадим форму с полем, которое производит простое численное вычисление. Таблица Продукты включает поля Цена и Количество. Чтобы отобразить стоимость имеющихся продуктов, можно просто перемножить эти два поля.
Закройте все окна, кроме окна базы данных. Здесь выберите закладку Таблицы и таблицу Продукты. Щелкните на кнопке Автоформа панели инструментов. Access отобразит автоформу, выведите ее в режиме Конструктора. Изменить размер окна таким образом, чтобы можно было добавить новое поле ниже существующих (переместите нижнюю границу окна вниз).
На панели элементов (если ее еще не видно, отобразите ее, нажав кнопку Элементы) щелкните на инструменте Поле. Затем щелкните на форме и перетащите текстовое поле чуть пониже поля Поставки прекращены:
Для текстового поля (с надписью «Свободный») вызовите из контекстного меню команду Свойства, перейдите на вкладку Данные. Справа от свойства Данные щелкните на инструменте Построить.
Появится Построитель выражений. В средней панели двойным щелчком по полю Цена добавьте его в выражение. Затем щелкните на кнопке с оператором умножения * (кнопки расположены ниже поля с выражением). И, наконец, двойным щелчком по полю Количество (На складе) закончите создание выражения:
- Нажмите ОК.
- Перейдите в окне на вкладку Макет и установите денежный формат поля:
Закройте страницу свойств. Двойным щелчком выделите надпись текстового поля (слева от выражения), измените его название Поле 18 на Стоимость. Закройте форму, сохранив ее под предложенным названием, откройте ее для просмотра.
Помимо форм, поля с выражениеми могут быть использованы в отчетах. Действия по созданию вычисляемого поля в отчете аналогичны описанным выше для форм. Создается произвольный отчет (например, с помощью мастера). Затем его следует открыть в режиме конструктора, освободить место для нового поля, расширив границы поля данных, добавить новое поле с помощью панели элементов и т. д.
В качестве самостоятельной работы создайте произвольный отчет по таблице Продукты, откройте его в режиме конструктора и добавьте вычисляемое поле. Например, поле Стоимость поставки, которое будет содержать произведение полей Цена и Ожидается.
Источник: http://matematiku5.ru/zadach/sozdanie-relyacionnoj-bazy-dannyx-v-access
Создание запросов в Microsoft Access
Подробности Категория: Материалы студентам Опубликовано 09.03.2015 09:27 Шитов В.Н. Просмотров: 7209
Если при редактировании схемы запросов существует требование, чтобы ни одна таблица не была открыта, то при работе с запросами открытые таблицы никак не влияют на запросы. Для создания запросов выполните команду Создание → Конструктор запросов. После этого открывается окно для создания запросов, а также окно с перечнем таблиц, запросов или таблиц и запросов одновременно. Если такое окно не открыто, например, оно было закрыто случайно, то открыть его можно следующим образом: щелкните правой клавишей мыши в свободном месте окна запросов и из открывшегося контекстного меню выполните команду Добавить таблицу. В окне с перечнем таблиц добавьте нужные таблицы и/или запросы (запросы можно использовать точно так же, как и обычные таблицы, потому что в них имеются точно такие же поля, как и в таблицах). Так как у нас пока нет никаких запросов, то пока мы можем работать только с таблицами.
В окне Добавление таблицы выделите таблицы (поочередно или сразу все с нажатой клавишей Shift для смежных или клавишей Ctrl для несмежных) и нажмите на кнопку Добавить.
Если таблица была добавлена в запрос случайно, то щелкните по этой таблице (в любом месте) правой клавишей мыши и из открывшегося контекстного меню выполните команду Удалить таблицу. Таблица удаляется всего лишь из запроса, а не из БД. Закройте окно Добавление таблицы.
При создании запросов используются не все таблицы. Для большинства типов запросов число лишних открытых таблиц не имеет значения, лишние таблицы просто не будут участвовать в запросе.
Но в некоторых типах запросов лишние таблицы открывать нельзя, иначе будет выводиться сообщение об ошибке, причем, обычно, в чем состоит ошибка, не говорится.
К таким типам запросов относятся Обновление, Удаление.
Расставьте таблицы так, чтобы они позволяли видеть связи между таблицами (Рис. 13).
![]() |
В нижней части конструктора запроса находятся столбцы, состоящие из нескольких полей. Заполнение столбцов выполняется слева направо. В верхней строке каждого столбца указывается поле, необходимое для запроса. Поле можно выбрать несколькими способами:
1. В очередном пустом столбце Конструктора поместите курсор в строку, в которой находится надпись Поле. После этого в правой части поля появляется миниатюрная треугольная кнопочка. Нажмите на нее и выберите нужное поле.
Каждое поле в таблице состоит из 2-х частей: имени таблицы, в которой это поле имеется, и имени поля в этой таблице. Все поля сортированы по именам таблиц.
Если одно и то же поле создано в нескольких таблицах, то из какой именно таблицы брать это поле, совершенно все равно.
2. Подхватите поле из таблицы и перетащить его в столбец конструктора запросов (Рис. 14). Отпустите мышь.
![]() |
3. Поместите курсор в тот столбец, в который нужно вставить поле. В таблице выполните двойной щелчок мышью по имени поля.
Если поле было вставлено ошибочно, то его можно удалить. Для этого наведите указатель мыши над именем столбца так, чтобы появилась небольшая стрелка, направленная вниз. Щелкните мышью для выделения столбца. Щелкните правой клавишей мыши по выделению. Выполните команду Вырезать из контекстного меню.
Другой вариант: можно не удаляя столбец с полем просто отключить это поле. Для этого нужно сбросить флажок из опции Вывод на экран в столбце с полем, которое нужно отключить.
Для примера создадим запрос Анализ продаж. Выберите следующие поля: Код_заказа, Дата, Наименование_тура, Цена, Количество, Название_фирмы, Город, Телефон, Скидка (Рис. 15).
![]() |
Для выполнения анализа и расчета нажмите на кнопку Конструктор → Выполнить. Укажите имя запроса. После этого результаты запроса будут выведены на экран (Рис. 16). Так как записей в таблице Запросы всего 100, то и в результатах запроса должно быть 100 записей.
![]() |
В данном запросе мы использовали все 4 исходные таблицы. После создания запроса под каждой таблицей в списке таблиц теперь находится имя созданного запроса.
В следующем запросе создайте те же самые поля, что и в предыдущем (Код_заказа, Дата, Наименование_тура, Цена, Количество, Название_фирмы, Город, Телефон, Скидка). Прокрутите список столбцов в Конструкторе запросов вправо так, чтобы был виден следующий (справа) пустой столбец. В верхнем поле этого пустого столбца введите следующую формулу:
[Цена]*(1-[Скидка])*[Количество]
В квадратных скобках указаны поля, участвующие в расчете формулы. В отличие от аналогичного приложения Microsoft Excel, в котором формула начинается с символа =, в приложении Microsoft Access символ = в формуле не используется.
Щелкните мышью в любом свободном поле, например, на 1 строчку ниже. Сразу после этого перед формулой появляется автоназвание этого поля: Выражение1. Формула и автоназвание разделены между собой символом двоеточия.
Выделите мышью текст автоназвания (двоеточие или символы формулы ни в коем случае выделять не нужно). Введите вместо него заголовок поля К оплате. Выполните команду Конструктор → Выполнить (кнопка в виде восклицательного знака).
Укажите имя запроса (Анализ продаж с оплатой).
В списке таблиц (в левой части рабочего окна Access) выделите последний запрос, щелкните по нему правой клавишей мыши и из открывшегося контекстного меню выполните команду Конструктор. Выделите столбец с формулой и удалите эту формулу.
Обратите внимание, что в предыдущем примере мы создавали формулу с участием полей. Эти поля мы указывали в формуле вручную.
Это очень опасный способ, так как ошибка в одной букве названия поля или символе приведет к неработоспособности всей формулы, а вместе с формулой и всего запроса. Поэтому формулы обычно создают с помощью Построителя выражений.
Для этого в первом поле столбца щелкните правой клавишей мыши и из открывшегося контекстного меню выполните команду Построить. После этого открывается окно Построитель выражений (Рис. 17).
![]() |
В левом списке находятся все объекты БД. Откройте группу Таблицы. Откройте таблицу Туры: список полей таблицы выводятся в средней части построителя. Двойным щелчком включите поле Цена в формулу. Квадратные скобки и имя таблицы включаются в формулу автоматически.
Одиночным щелчком вставьте символ умножения (*). Вставьте открывающуюся круглую скобку. Введите с клавиатуры цифру 1. Вставьте символ вычитания (-). В списке таблиц щелкните по таблице Клиенты. Двойным щелчком включите поле Скидка в формулу. Вставьте закрывающуюся круглую скобку. Вставьте символ умножения (*).
В списке таблиц щелкните по таблице Заказы. Двойным щелчком включите поле Количество в формулу. Нажмите на кнопку ОК.
В созданной формуле с клавиатуры потребовалось ввести только цифру 1 — все остальные объекты (поля, операторы и даже скобки) выбирались готовыми: чем меньше потребуется ручного ввода, тем меньше ошибок будет в формуле.
После возвращения в Конструктор запросов название поля измените точно так же, как в и предыдущем примере (щелкните по соседнему полю и автоназвание Выражение1 измените на К оплате).
Как видно из этого примера работа с построителем намного проще, чем ручное создание формулы. Если при ручном вводе формулы нам потребовалось все символы вводить вручную, что рано или поздно приведет к ошибкам, то при использовании построителя нам пришлось с клавиатуры ввести всего один символ: цифру 1.
Для создания следующего запроса откройте конструктор запросов (команда Создание → Конструктор запросов). В предыдущих примерах мы в качестве исходных данных использовали вкладку Таблицы в окне Добавление таблицы.
Запрос Анализ продаж является компиляцией из всех 4-х таблиц. Поэтому использовать таблицы в следующем запросе не обязательно. В окне Добавление таблицы перейдите на вкладку Запросы и добавьте запрос Анализ продаж в исходные данные создаваемого запроса.
Включите в новый запрос следующие поля: Код_заказа, Дата, Наименование_тура, Название_фирмы, Город, Телефон. В столбце с полем Город найдите поле Условие отбора. Введите в это поле Волгоград. Щелкните мышью в любом соседнем поле (лучше пустом): название города будет автоматически заключено в парные кавычки.
Данная операция не является обязательной: просто здесь объясняется, откуда берутся кавычки — они устанавливаются автоматически. Поэтому нет никакого смысла вводить их вручную. В столбце с полем Наименование_тура в поле Условие отбора введите Стамбул (Рис. 18).
Выполните команду Конструктор → Выполнить. Сохраните запрос под именем Анализ по регионам (Рис. 19).
![]() |
![]() |
Откройте запрос Анализ по регионам в режиме Конструктора. Измените Волгоград на Ижевск. Наименование_тура измените из Стамбул на Мальорка. Выполните запрос, убедитесь в правильности работы запроса. Самостоятельно выберите Город и Наименование_тура и выполните запрос.
В предыдущем запросе мы указывали условия отбора записей в теле Конструктора. Кроме этого имеется возможность выбора условий непосредственно при работе с запросом. Такие запросы называются параметрическими.
Условия поиска указываются не в кавычках, как мы это делали в предыдущем запросе, а в квадратных скобках, причем указывать нужно не конкретное значение, а вопрос (Рис. 20). Например, в предыдущем примере мы в качестве параметра поиска указывали город Волгоград.
В параметрическом запросе нужно ввести между квадратными скобками: Введите город. Выполните запрос. Укажите имя запроса Анализ по регионам-П. Введите параметры в окно Введите значение параметра (Рис. 21). Нажмите на кнопку ОК.
Укажите следующий параметр (так как в нашем запросе имеются 2 условия в квадратных скобках).
![]() |
Сравните 2 запроса, созданные по-разному, но выдающие один и тот же результат.
Выполните этот же запрос с другими значениями параметров.
Запрос: список фирм из города Пенза
Откройте Конструктор запросов. В качестве исходных данных используйте таблицу Клиенты. Выберите поля Название_фирмы, Город, Индекс, Адрес и Телефон. Для поля Город выберите условие: Пенза (Рис. 22). Выполните запрос. Сохраните запрос под именем Фирмы Пензы.
Запрос: список агентов, стаж работы которых не превышает 5 лет
Откройте Конструктор запросов. Откройте таблицу Сотрудники. Выберите следующие поля: ФИО и Стаж. Для поля Стаж укажите условие отбора (Рис. 23):
Источник: http://obrazovanie-saratov.ru/index.php/news/materialy-studentam/998-sozdanie-zaprosov-v-microsoft-access
Вычисляемые поляв запросе БД Access 2003
2010-02-28
Владимир Ткаченко
Источник: Обучение в интернет
В БД Microsoft Access вычисляемые поля могут быть созданы в запросе, форме или отчете.
Вычисляемые поля используются для различных целей, в том числе и для проведения расчетов, Для выполнения подсчетов в вычисляемые поля объектов базы данных Access вводят Выражения.
Выражения — это формулы аналогичные формулам Excel, но только вместо ссылок на ячейки в них используются имена полей. Ввод выражений возможен как вручную, так и с помощью Построителя выражений.
Выражения могут содержать следующие элементы:
- идентификаторы (имя поля и элемента управления, которые заключаются в квадратные скобки);
- операторы (арифметические, логические, сравнения и другие операторы);
- функции (готовые формулы, которые состоят из имени и аргумента, помещенного в круглые скобки)
- константы (элементы, которые не изменяются в Выражении, например Null, Истина, Ложь);
- значения (например, значения даты и времени, численные положительные или отрицательные значения).
- Примеры Выражения:
- =[Оценка]/1,2, где «=» — опрератор, [Оценка] — имя поля, а 1,2 — значение;
- Date(), где Date — имя функции текущей даты, которая не имеет аргумента.
Рассмотрим создание вычисляемых полей в бланке запроса базы данных Access 2003. Для ввода Выражения в запрос его необходимо открыть в режиме Конструктора.
Чтобы создать вычисляемое поле в запросе (в существующем или вновь создаваемом запросе) открытого в режиме конструктора, необходимо ввести Выражение в строку Поле свободного столбца бланка запроса.
Выражение может выполнять вычисления, обрабатывать текст, указывать время и дату, проверять данные и т.д. Необходимо отметить, что каждая формула вычисляется только для отдельной строки таблицы бланка запроса.
Рассмотрим создание вычисляемого поля в бланке запроса на примере базы данных Training_students_VP. Постановка задачи: в запросе на выборку (Запрос 3) создать поле, в котором должны отображаться итоговые оценки (ниже на 20% от полученных по результатам рейтинга). Для решения этой задачи откроем бланк «Запроса 3» в режиме конструктора (Рис. 1).
Рис. 1.
Для создания вычисляемого поля можно применить «Построитель выражений». Для этого надо установить курсор в свободное поле и выбрать на панели инструментов команду Построить (можно также воспользоваться контекстным меню), откроется окно Построитель выражений.
В верхней области построителя расположено текстовое поле выражения, предназначенное для записи выражения. Ниже поля выражения размещается строка с операторами. Три текстовых поля в нижней области используются для выбора элементов, которые могут быть вставлены в текстовое поле выражения. Выражение можно записать с клавиатуры или сформировать из готовых функций, операторов и других элементов.
Для поставленной задачи в Построитель можно ввести выражение =[Оценка]/1,2 с клавиатуры (Рис.2) и щелкнуть на кнопке ОК. Рис. 2.
В результате в бланке запроса появится вычисляемое поле =[Оценка]/1,2
Рис. 3.
Далее надо закрыть бланк запроса в режиме конструктора и открыть его в режиме таблицы. В таблице вычисляемое поле состоит из слова «Выражение» и цифры 1, которая показывает, каким по счету создано выражение. Необходимо также отметить, что результаты вычислений, отображаемые в записях, не отформатированы.
Рис. 4.
С учетом вышеизложенного следует изменить название вычисляемого поля и отформатировать его. Для этого необходимо вернуться в режим конструктора и слово Выражение1 заменить на «Итог_оценка». Затем щелкнуть правой кнопкой мыши на вычисляемое поле и в контекстном меню выбрать команду Свойства, откроется диалоговое окно Свойства поля (Рис. 5)
Рис. 5.
В окне Свойства поля установить формат, например Фиксированный и закрыть это окно. Затем закрыть запрос в режиме конструктора и открыть его в режиме таблицы. В результате на экране будет отображен запрос с отформатированным вычисляемым полем. Необходимо отметить, что значения вычисляемого поля не хранятся в базе данных, а являются результатом вычислений при формировании запроса.
Источник: https://www.lessons-tva.info/articles/informat/8.html
Основные хитрости, применяемые в запросах
Все специалисты Access хранят в своих БД несколько (или несколько десятков) полезных запросов, упрощающих решение повседневных задач.
В предыдущей главе вы узнали, как создавать запросы, обрабатывающие огромные объемы информации и предлагающие вам именно то, что вы хотите увидеть.
Но знатоки программы Access знают, что гораздо больше мощи прячется за пределами окна конструктора запросов.
В этой главе вы проникните в магические тайны создания запросов, которые, конечно же, произведут впечатление на вашего шефа, коллег и партнеров.
Вы узнаете, как выполнять вычисления в запросе и подводить итоги, сжимающие колонки цифр до лаконичных итоговых сумм.
Вы также научитесь писать сверхинтеллектуальные условия отбора и создавать динамические запросы, запрашивающие информацию при каждом выполнении. Эти методы — неотъемлемая часть набора рабочих средств любого настоящего фанатика запросов.
Вычисляемые поля
Когда вы начинали проектировать таблицы, то узнали, что в мире БД считается преступлением включение информации, основанной на данных другого поля или другой таблицы. Примером такой ошибки может служить таблица Products, в которой есть и поле Price (цена), и поле PriceWithTax (цена с включенным налогом).
Проблема в том, что поле PriceWithTax вычисляется на основании поля Price. Хранение обоих полей — это избыточное расходование дискового пространства.
Еще хуже, если налоговая ставка изменится, тогда вы останетесь с множеством записей, нуждающихся в обновлении, и возможностью появления противоречивых данных (например, когда цена с налогом окажется ниже цены без налога).
Даже зная, что не следует создавать поля, такие как PriceWithTax, иногда вы вынуждены отображать в программе Access вычисляемые данные.
Прежде чем компания Boutique Fudge напечатает список для одного из своих наименее любимых розничных продавцов, она хочет установить для цены надбавку 10%.
Для этого компании необходимо откорректировать информацию о цене до вывода данных на печать. Если продавец увидит более низкую цену без надбавки, компания будет вынуждена запросить ее.
Запросы предлагают отличное решение такого рода проблем, поскольку они содержат универсальные методы математической обработки данных.
Хитрость состоит в добавлении вычисляемого поля: поля, определенного в вашем запросе, но не существующего в таблице. Программа Access вычисляет значение этого поля, основываясь на одном или нескольких других полях таблицы.
Значения вычисляемых полей никогда не хранятся в БД — программа генерирует их при каждом выполнении запроса.
- Определение вычисляемого поля
- Для создания вычисляемого поля следует задать два компонента: имя поля и выражение, определяющее вычисление, которые должна выполнить программа Access. Вычисляемые поля определяются с помощью следующего состоящего из двух частей шаблона:
- ИмяВычисляемогоПоля: Выражение
- Например, поле цены с налогом, PriceWithTax, определяется следующим образом:
- PriceWithTax: [Price] * 1.10
По сути, это выражение сообщает программе Access о том, что нужно взять поле Price и умножить его на 1.10 (что эквивалентно повышению цены на 10%).
Access повторяет это вычисление для каждой записи, входящей в результаты запроса. Для того чтобы это вычисление выполнялось, в таблице должно существовать поле Price.
Но вовсе необязательно отображать отдельно это поле в окне результатов запроса.
Можно сослаться на поле Price, используя его полное имя, состоящее из имени таблицы с последующей точкой, за которой указано имя поля:
PriceWithTax: [Products].[Price] * 1.10
Такая синтаксическая запись нужна, если в ваш запрос включено несколько таблиц (например, использование запроса с операцией объединения (query join), описанного в разд.
«Запросы и связанные таблицы» главы 6), и одно и то же поле есть в обеих таблицах. В этой ситуации следует применять полное имя для того, чтобы избежать неоднозначности.
(Если не сделать этого, Access выдаст сообщение об ошибке при попытке выполнить запрос.)
Примечание
Пользователи предыдущих версий программы Access иногда вместо точки используют восклицательный знак (например, [Products] ! [ Price]), что равнозначно.
Для добавления вычисляемого поля PriceWithTax вам понадобится Конструктор. Сначала найдите столбец, в который вы хотите вставить вычисляемое поле. (Обычно оно добавляется и конец, в первый свободный столбец, хотя можно раздвинуть существующие столбцы и освободить для него место.) Далее в ячейке Поле введите полное определение поля (рис. 7.1).
Теперь вы готовы к выполнению запроса. Когда вы выполните его, вычисляемые данные появятся рядом с другими столбцами (рис. 7.2).
Если вы не довольны тем, что вычисляемые данные несколько иначе отформатированы — больше знаков в дробной части и нет символа валюты — это можно исправить с помощью округления (см. разд.
«Применение функций » далее в этой главе) и форматирования (см.разд. «Форматирование чисел «далее в этой главе).
У вычисляемых полей есть одно ограничение — поскольку информация не сохраняется в вашей таблице, вы не можете их редактировать. Если нужно изменить цену, необходимо отредактировать базовое поле Price — попытка корректировать поле PriceWithTax привела бы программу Access в полное замешательство.
Примечание
Выражение в каждый конкретный момент времени обрабатывает отдельную запись. Если вы хотите объединить информацию из некоторых записей для вычисления итогов или средних значений, необходимо использовать свойства группировки, описанные в разд. «Итоговые данные» далее в этой главе.
Рис. 7.1. Этот запрос отображает два поля непосредственно из БД (ID и Name)
- и вставляет вычисляемое поле PriceWithTax. Обычное поле Price, которое программа Access
- применяет для вычисления поля PriceWithTax, вообще не отображается
Рис. 7.2. Результаты запроса отображают поле PriceWithTax с надбавкой 10%. Главное состоит в том, что вычисляемая информация теперь доступна постоянно, несмотря на то, что она не хранится в БД. Попробуйте проверить это с помощью карманного калькулятора
На профессиональном уровне. Синхронизация запросов
Можно опробовать интересный прием. Выполните запрос ProductsWithTax и оставьте его открытым, отображающим свои результаты. Теперь откройте таблицу Products, содержащую реальные данные, и измените цену любого продукта. Вернитесь снова в запрос Products WithTax. Изменилось значение в этом запросе?
Если вы не знаете, что произойдет, не бойтесь — PriceWithTax автоматически обновляется для отображения новой цены. Программа Access автоматически синхронизирует представления запросов с реальными данными в вашей таблице. Access отслеживает изменение записи и немедленно обновляет окно результатов запроса.
Есть лишь несколько исключений из этого правила.
• Access не отслеживает добавление новой записи после запуска запроса — для того чтобы она учитывалась в результатах вашего запроса, необходимо обновить результаты.
• Если вы изменили запись так, что она больше не должна попадать в результаты запроса, она не удаляется автоматически из окна результатов. Если в вашем запросе отображаются все продукты, стоящие больше 100 долларов, и вы уменьшили цену одного из них до 50 долларов, этот продукт останется в результирующем перечне вашего запроса (с новой ценой) до тех пор, пока вы не обновите результаты.
• Аналогично, если вы изменили запись так, что она должна попасть в результирующий набор, она не появится в нем, пока вы не выполните запрос еще раз.
• Если несколько пользователей на разных компьютерах редактируют БД (как описано в главе 18), вы не увидите немедленно изменения, внесенные другими пользователями.
Для получения самых свежих результатов можно обновить отдельные записи или весь запрос целиком. Для обновления одной записи выберите Главная > Записи > Обновить > Обновить запись (Home >Records >Refresh > Refresh Record).
Для повторного выполнения запроса и полного обновления выберите Главная > Записи > Обновить > Обновить все (Home > Records > Refresh > Refresh All).
Это действие также выводит на экран любые новые записи и скрывает те записи, которые после внесения изменений больше не удовлетворяют вашим условиям отбора.
Прежде чем двигаться дальше, есть смысл рассмотреть правила создания и использования вычисляемых полей. Далее приведено несколько рекомендаций.
¦ Всегда выбирайте уникальное имя. Выражение Price: [Price] * 1.10 создает циклическую ссылку, поскольку имя используемого вами поля такое же, как имя создаваемого поля. Программа Access не допускает подобных проделок.
¦ Формируйте выражения из полей, чисел и математических операций. Наиболее распространенные вычисляемые поля содержат одно или несколько существующих полей или числовые константы и соединяет их друг с другом с помощью хорошо знакомых знаков математических операций, таких как сложение (+), вычитание (-), умножение (*) или деление (/).
¦ Не удивляйтесь присутствию квадратных скобок. Выражение PriceWithTax: [Price] * 1.10 эквивалентно выражению PriceWithTax: Price * 1.10 (единственное отличие — квадратные скобки вокруг имени поля Price). Технически скобки нужны только,
¦
если в имени ноля есть пробелы или специальные символы. Но если в Конструкторе вы вводите в запрос выражения без квадратных скобок, программа Access автоматически добавляет их, просто чтобы обезопасить себя.
Малоизвестная или недооцененная возможность. Переименование поля в запросе
Устали от длинных имен полей в окне результатов ваших запросов? Используя толькочто полученные знания, касающиеся выражений, можно безболезненно переименовать поле в окне результатов вашего запроса. Все что вам требуется — это вычисляемое поле.
Хитрость заключается в создании (с помощью выражения) вычисляемого поля, совпадающего с одним из существующих полей и присвоении ему нового имени. Технически в этом поле не выполняются никакие вычисления, но оно все равно корректно действует.
Далее приведен пример вычисляемого поля, которое переименовывает DateCustomerPlacedPurchaseOrder в Date: Date: DateCustomerPlacedPurchaseOrder Новое имя (в данном примере Date) называют псевдонимом (alias).
Используя этот прием, помните о том, что исходное иоле (в данном случае DateCustomerPlacedPurchaseOrder) не надо включать в ваш запрос. Нужная вам информация отображается в вычисляемом поле (Date).
Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.
Источник: http://crypto.pp.ua/2011/03/osnovnye-xitrosti-primenyaemye-v-zaprosax/
Создание запросов в СУБД Access 2007
- Губская Ольга Васильевна
- Тема урока: Создание запросов в СУБД Access
- 11 класс
- Цель урока: Повторить основные понятия темы Базы данных, Системы управления базами данных; познакомить учащихся с различными способами создания запросов в БД; научить отбирать записи по нескольким условиям, использовать выражения в запросах
- Тип урока, продолжительность урока.
- Комбинированный урок, 45 минут.
- Средства обучения.
- Технические средства: — мультимедийный проектор.
- Программные средства обучения: — программа MS Access 2007, MS PowerPoint 2007.
- Информационные средства: — созданная учителем база данных «Школьная библиотека», презентация «Создание запросов в СУБД Access 2007», задания для компьютерного практикума и самостоятельной работы; тестовые задания.
- План урока:
-
Организационный момент (1 минута)
-
Постановка темы и целей урока (1 минута)
-
Фронтальный опрос (7 минут)
-
Ознакомление с новым материалом (15 минут)
-
Первичное осмысление и применение изученного. — Компьютерный практикум (10 минут) — Самостоятельная работа, тестирование по теме (8 минут)
-
Подведение итогов урока, выставление оценок (2 минуты)
-
Домашнее задание (1 минута)
- Ход урока
- 1. Организационный момент
- 2. Постановка темы и целей урока
- Слайд 1
- Мы продолжаем изучать базы данных, на прошлых уроках вы познакомились с понятием базы данных, с понятием СУБД, с различными классификациями баз данных, с полями и записями, с типами данных и с операциями над информацией в базах данных. Тема сегодняшнего урока: «Создание запросов в СУБД Access 2007»
- Слайд 2
- Итак, на этом уроке мы:
- 1. Повторим основные понятия темы Базы данных, Системы управления базами данных;
- 2. Познакомимся с различными способами создания запросов в БД;
3. Научимся отбирать записи по нескольким условиям, использовать выражения в запросах.
3. Фронтальный опрос
Слайд 3
Чтобы повторить основные понятия темы, я предлагаю вам «прогуляться» по полю понятий. Выбираете номер овала, появляется термин и вы формулируете соответствующее правило. (Приложение 1)
4. Ознакомление с новым материалом
Вы научились создавать таблицы, формы. На очереди запросы. Так что же такое запрос?
Слайд 4
Запрос – это требование на отбор записей, хранящихся в таблицах или на выполнение определённых действий с ними.
Запрос это временная таблица. Это значит, что данные в запросах не хранятся постоянно, а только временно вызываются из таблицы по заданному шаблону, в момент активизации запроса. Поэтому в базе данных постоянно сохраняется только шаблон вызова данных, а не сама информация. Следовательно, запрос не занимает много места в БД.
Запросы позволяют:
-
выбирать нужные поля из разных таблиц БД;
-
фильтровать и сортировать данные;
-
производить расчёты;
-
группировать записи, рассчитывая различные итоговые значения;
-
вносить изменения сразу в несколько записей;
-
создавать таблицы как результат запроса.
Слайд 5
Какими бывают запросы?
-
Запрос на выборку. Осуществляет загрузку и отображение записей в режиме таблицы.
-
Запрос на изменение. Выполняет операции с записями, удовлетворяющими заданным критериям.
- а) запрос на удаление (удаляет заданные записи из таблицы);
- б) запрос на обновление (изменяет соответствующие записи таблицы);
- в) запрос на добавление (добавляет в конец таблицы новые записи соответствующие условиям отбора).
-
Запрос с параметрами. После запуска на выполнение просит ввести значения определенных параметров.
-
Перекрёстный запрос. Позволяет выполнить подсчёты по данным одного поля таблицы и группировать результаты.
Слайд 6
Способы создания запросов
-
SQL;
-
Конструктор;
-
Мастер.
Существует универсальный язык запросов, на котором формулируются запросы во многих СУБД. Он называется SQL (Structured Query Language [strʌk.tʃəd ˈkwɪə.
ri ˈlæŋɡwɪdʒ]) – структурированный язык запросов. В большинстве современных СУБД существуют вспомогательные средства для составления запросов, позволяющие обходиться без изучения SQL.
В MS Access это конструктор запросов.
- Простой запрос на выборку или один из 3-х специальных запросов можно создать с помощью Мастера, но конструктор является более универсальным способом создания запросов.
- Слайд 7
- Итак, запрос на выборку — это производная таблица, которая содержит те же структурные элементы, что и обычная таблица (столбцы-поля и строки), и формируется на основе фактических данных системы.
Например, есть база данных Школьная библиотека, в которой создана таблица Книги. Запрос на выборку записей по полям Автор, Название, Год издания будет выглядеть как на слайде.
- Рассмотрим процесс создания этого запроса с помощью Мастера.
- Слайд 8
- 1 шаг – на вкладке Создание выбираем Мастер запросов.
- 2 шаг – в диалоге Новый запрос выбираем Простой запрос à ОК
- Слайд 9
- 3 шаг – в диалоге Создание простых запросов выбираем из списка таблицу
- Слайд 10
- 4 шаг – перемещаем из списка Доступные поля в список Выбранные поля нужные имена полей à нажимаем кнопку Далее >
- Слайд 11
- 5 шаг – выбираем один из вариантов отображения записей с данными: подробный (без выполнения операции сведения) или итоговый с использованием сведения (нахождение суммы, среднего значения, минимума, максимума для определенных записей) à нажимаем кнопку Далее >
- Слайд 12
- 6 шаг – вводим имя запроса à нажимаем кнопку Готово.
- Слайд 13
- Теперь рассмотрим пример создания запроса при помощи Конструктора.
- 1 шаг – на вкладке Создание выбираем Конструктор запросов.
- 2 шаг – в диалоге Добавление таблицы выбираем таблицы, поля из которых будут использоваться в запросе à Добавить à Закрыть
- Появляется бланк запроса, в верхней части которого отображаются макеты выбранных таблиц. А нижняя часть содержит такие строки:
- Поле, в которой будут отображаться имена выбранных полей;
- Имя таблицы, в которой будет отображаться имена таблиц, в состав которых входят соответствующие поля;
- Сортировка, в которой при необходимости можно выбрать вид сортировки;
- Вывод на экран, содержащая флажок, установленная метка которого свидетельствует о том, что данное будет отображаться в запросе;
- Условие отбора, которая может содержать условие – выражение для выборки данных из соответствующего поля;
- или – для записи еще одного выражения, которое является частью составного условия.
- Слайд 14
- 3 шаг – выбираем нужные поля.
- Чтобы выбрать поле, можно выполнить двойной щелчок по этому полю, или перетащить его из макета таблицы в строку Поле.
- Слайд 15
- 4 шаг – вводим условие отбора и нажимаем кнопку Выполнить.
- Слайд 16
- 5 шаг – закроем вкладку запроса à в окне сохранения структуры запроса выберем Да à введем имя запроса à ОК
- Слайд 17
Логическое выражение, представляет собой операцию отношения, при записи которого используются символы >,=105
Not физика
Источник: https://infourok.ru/sozdanie_zaprosov_v_subd_access_2007-187163.htm
Иллюстрированный самоучитель по Microsoft Access 2002
Арифметические операторы, как следует из названия, выполняют сложение, вычитание, умножение и деление. Арифметические операторы оперируют только с числовыми значениями и должны, за исключением унарного минуса, иметь два числовых операнда.
В табл. 4.2 приведен список арифметических операторов для выражений Access.
Таблица 4.2. Арифметические операторы.
+ | [Итог] + [Надбавка] | Складывает два операнда |
— | Date () – 7 | Считает разность двух операндов |
– (унарный) | -12345 | Меняет знак операнда |
* | [Коробок] * [Цена коробки] | Перемножает два операнда |
/ | [Количество] / 12.55 | Делит один операнд на другой |
[Коробок] 2 | Делит один целый операнд на другой нацело. При использовании деления нацело операнды с десятичными дробями округляются до целого, а дробные части отбрасываются | |
Mod | [Коробок] Mod 12 | Возвращает остаток от деления нацело. Например, 15 Mod 12 равно 3 |
^ | ^ [Показатель] | Возводит операнд Основание в степень Показатель |
В таблице отсутствует знак равенства (=), поскольку он отнесен к группе операторов присваивания и сравнения.
Операторы присваивания и сравнения
Обычно в качестве оператора присваивания значения объекту, переменной или константе используется знак равенства (=).
Например, выражение =Now() может присваивать полю таблицы значение по умолчанию, и тогда знак равенства действует как оператор присваивания.
С другой сторону, знак = представляет собой оператор сравнения, определяющий, равны ли два операнда.
Оператор сравнения соотносит значения двух операндов и возвращает логические значения (True или False), соответствующие результату сравнения.
Основное назначение операторов сравнения – создание условий на значение, установление критериев выборки записей в запросах, определение действий макросов и контроль выполнения программ в VBA. В табл. 4.
3 приведен список операторов сравнения Access.
Таблица 4.3. Операторы сравнения.
= 1 | True | Больше либо равно | |
> | 100 > 100 | False | Больше |
1 100 | True | Неравно |
Замечание
Если один из операндов имеет значение Null (пустое значение), то любое сравнение возвращает значение Null (тоже пустое значение).
Источник: http://samoychiteli.ru/document18092.html
Вычисления в запросах
Для
боле быстрой загрузки базы данных и
уменьшения размера
внутренних файлов следует придерживаться
правила размещать
информацию в таблицах, а вычисления
производить в запросах.
Вычисляемое
поле существует только в результирующей
таблице
запроса, в базовую таблицу оно не
переносится.
Для
создания запроса
с вычислениями служит
тот же бланк простого
запроса. Разница только в том, что в
одном из пустых
столбцов вместо имени записывается
формула.
В
формулу входят заключенные в квадратные
скобки названия
полей, участвующих в расчете, и знаки
математических
операций (рис. 25).
Рис.
25. Пример записи формулы.
Для
ввода длинной формулы размер окна
раздела Поле недостаточен,
поэтому формулу не видно целиком. Границы
поля,
конечно, можно увеличить, но тогда не
будет видно остальных
полей запроса. Эти неудобства можно
ликвидировать
нажатием клавиш Shift+F2
.
Откроется диалоговое окно Область
ввода (рис.
26), где формула будет видна целиком.
(Сама
формула вводится с клавиатуры).
Рис.
26. Запись и просмотр формулы в окне
Область ввода.
Вводить
формулу можно также с помощью построителя
выражений
(рис.
27), который вызывается на экран клавишами
Ctrl+F2.
Рис.
27. Составление формулы в окне Построителя
выражений.
Поля,
входящие в формулу, можно не выводить
на экран, то есть снять флажок в разделе
Вывод
на экран, если
они не отображаются
в новой таблице, но участвуют в расчетах.
Эти поля
даже можно не отбирать, достаточно того,
чтобы были отобраны
таблицы, в которые они входят.
К
результирующему полю можно применить
сортировку.
3.5. Работа с формами в субд Access
Форма
—
это объект Access,
без которого можно обойтись. Он создан
специально для пользователя. Экран
принимает удобный для обработки
информации вид с учетом того, что
пользователь может работать в БД
несколько часов.
Оттого, каким будет
экран компьютера все это время, зависит
настроение и здоровье. Часто формы
приближают к виду уже известных бумажных
документов. Такой подход позволяет
специалистам других отраслей легко
перейти на электронные документы.
Через
формы можно загружать данные в таблицы,
просматривать и корректировать их.
Работая с формой, пользователь может
добавлять и удалять записи в таблицах,
изменять значения в полях, получать
расчетные данные. В форме можно
контролировать вводимые данные,
устанавливать ограничения на доступ к
информации, выводить необходимые
сообщения.
Источником
данных для создания форм являются
таблицы или запросы. Форму можно создать
с помощью мастера или конструктора.
Таким
образом, можно сделать вывод, что формы
в Access
являются главным средством разработки
пользовательского интерфейса. В
зависимости от того, с какой целью
создается форма, разработчик определяет
параметры ее внешнего вида.
Источник: https://studfile.net/preview/1957319/page:9/