
- •Санкт-Петербургский
- •Оглавление
- •5. Формы 25
- •3. Таблицы
- •3.1. Создание структуры таблицы
- •3.2. Загрузка таблицы данными
- •3.3. Модификация структуры таблицы
- •3.4. Работа с макетом таблицы
- •3.5. Схема данных
- •3.6. Печать таблицы
- •4. Запросы
- •4.1.Типы запросов
- •4.2.Создание qbe-запроса
- •4.3. Заполнение бланка запроса
- •4.4. Работа с построителем выражений
- •4.5. Редактирование запроса
- •4.6. Печать динамического набора данных
- •4.7. Примеры запросов
- •4.7.1. Запрос на выборку данных
- •4.7.2.Запрос с параметром (параметрический запрос)
- •4.7.3. Запрос на создание таблицы
- •4.7.4. Запросы на изменение данных
- •4.7.4.1. На добавление записей
- •Insert into Детали (номерд, имяд, цена )
- •Insert into Детали (номерд, имяд, цена )
- •Values ( 15, “ролик”,150);
- •Insert into Новая ( [номер поставщика], [номер детали], [имя детали], [город] )
- •4.7.4.2. Запрос на удаление записей
- •4.7.4.3. Запрос на обновление (корректировку) данных
- •4.7.5. Группирование данных в запросе
- •4.7.6. Перекрестный запрос
- •4.7.7. Подчиненные (вложенные) запросы
- •4.8.Фильтрация данных
- •5. Формы
- •5.1. Создание однотабличной формы
- •5.2. Редактирование формы
- •5.3. Часто используемые свойства формы
- •5.4. Элементы управления и их свойства
- •6. Отчеты
- •6.1. Создание отчета
- •6.2. Работа с отчетом в режиме конструктора
- •6.3. Сортировка и группировка данных
- •7. Макросы
- •7.1. Создание макросов
- •7.2. Краткая характеристика макрокоманд
- •7.3. Групповые макросы
- •7.4. Реализация ветвлений в макросах
- •7.4.1. Примеры макросов с односторонним ветвлением
- •7.4.2. Пример макроса с двусторонним ветвлением
- •7.5. Реализация циклов в макросах
- •8. Основы создания пользовательского интерфейса
- •8. 1. Взаимодействие форм
- •Интерфейс.Открыть просмотр
- •Интерфейс.Открыть редактирование
- •Интерфейс.Закрыть просмотр
- •8. 2. Создание кнопочных меню с помощью диспетчера кнопочных форм
- •8. 3. Создание пользовательских меню
- •8. 3.1. Создание пользовательских меню с помощью макросов
- •8. 3.2. Создание пользовательских меню с помощью своей панели инструментов
4.7.2.Запрос с параметром (параметрический запрос)
При исполнении параметрического запроса открывается диалоговое окно, в котором запрашивается ввод параметра. Пользователь может отобразить в этом окне свой текст - подсказку, например Введитегород. Чтобы эта подсказка появилась в окне для ввода параметра, надо ее написать,заключив в квадратные скобки, в соответствующей строке бланка запроса , Например, чтобы отобрать всех поставщиков из заданного города, надо в строкеУсловияотборадля полягородна бланке запроса написать [Введите город].
Пример 4. SQL - запрос с параметром
Вывести все сведения о поставщиках из заданного города. Город вводить в диалоге.
На QBE:
SELECT Поставщики.*
FROM Поставщики
WHERE ((Поставщики.город=[Введите город]));
При желании можно указать тип вводимого в диалоге параметра:
открыть окно Параметрызапроса:Запрос/Параметры
указать параметр Введитегороди его типТекстовый
Тогда в SQL-запросе появится оператор
PARAMETERS [Введите город] Text;
и SQL-запрос будет иметь вид:
PARAMETERS [Введите город] Text;
SELECT Поставщики.*
FROM Поставщики
WHERE ((Поставщики.город=[Введите город]));
4.7.3. Запрос на создание таблицы
Запрос на создание таблицы позволяет сохранить полученный в результате выборки динамический набор данных в таблице.
Создание запроса:
создать запрос на выборку данных
преобразовать запрос на выборку в запрос на создание таблицы:
Запрос/Создание таблицы
задать имя новой таблицы и указать ее местоположение (в текущей или другой БД).
Пример 5. Многотабличный SQL - запрос на создание таблицы
по имени Новаяс поляминомерпоставщикаиномерпоставляемой имдеталииз таблицыПоставки,имядеталииз таблицыДеталиигородиз таблицыПоставщики. Причем имя поставляемой детали нужно вводить как параметр в диалоге.
SELECT Поставки.номерп AS [номер поставщика], Постав- ки.номерд AS [номер детали], Детали.имяд AS [имя детали], Поставщи- ки.город INTO Новая
FROM Детали INNER JOIN (Поставщики INNER JOIN Поставки ON Поставщи- ки.номерп = Поставки.номерп) ON Детали.номерд = Поставки.номерд
WHERE ((Детали.имяд=[Введите имя детали]));
До ключевого слова AS указано имя поля в структуре соответствующей таблицы, а после - имя поля во вновь создаваемой таблице. Причем, если имя содержит пробелы, то его нужно заключать в квадратные скобки.
В результате исполнения этого запроса будет создана таблица
Новая(номерпоставщика,номердетали,имядетали,город).
4.7.4. Запросы на изменение данных
4.7.4.1. На добавление записей
а) Создание запроса на добавлениенесколькихзаписейиз другой таблицы:
создать запрос на выборку данных из таблицы-источника (откуда)
преобразовать запрос на выборку в запрос на добавление данных:
Запрос/Добавление
задать или выбрать из списка имя таблицы-приемника, в которую должны быть добавлены записи и указать ее местоположение (в текущей или другой БД).
в строке Добавлениебланка запроса выбрать из списка соответствующие имена полей таблицы-приемника, в которые будут добавлены значения (могут быть установлены автоматически).
б) СозданиеQBE-запроса на добавлениеоднойзаписи с конкретными значениями полей
открыть бланк запроса. Никаких таблиц в верхнюю часть бланка добавлять не нужно !
преобразовать запрос в запрос на добавление: Запрос/Добавление
задать или выбрать из списка имя таблицы-приемника, в которую должны быть добавлены записи и указать ее местоположение (в текущей или другой БД).
в строке Добавлениебланка запроса выбрать из списка соответствующие имена полей таблицы-приемника, в которые будут добавлены значения.
в строке Полеуказать для каждого поля вводимые значения в виде:псевдоним : значение. В качестве псевдонима можно указать имя поля или любое другое произвольное имя. Одинаковые имена недопустимы.
Пример 6. Добавить в таблицуДеталиновую деталь с номером 15, именемроликпо цене300. Тогда в строкеДобавлениебланка запроса нужно указать имена полейномерд,имядицена, а в строкеПолебланка запроса можно указатьа: 15для поляномерд,б:“ролик”для поляимяди150для поляцена. Здесьа,бис- псевдонимы. СоответствующийSQL-запрос: