21019

ВЫБОРКА ДАННЫХ В VISUAL FOXPRO

Реферат

Информатика, кибернетика и программирование

ОПЕРАТОР ВЫБОРКИ SELECTSQL Оператор выборки SELECT предназначен для описания и исполнения запросов к БД. РАБОТА С КОНСТРУКТОРОМ ЗАПРОСОВ Конструктор Запросов предназначен для создания оператора SELECT путем автоматизированного формирования фраз оператора. Открытие Конструктора Запросов Запуск Конструктора Запросов для создания нового запроса может быть выполнен: а нажатием кнопки New окна проекта при выбранной группе Queries. При выполнении указанных действий открывается окно Конструктора Запросов и окно выбора таблиц.

Русский

2013-08-02

114 KB

41 чел.

ВЫБОРКА ДАННЫХ В VISUAL FOXPRO

Выборка данных используется для извлечения из БД данных, отвечающих заданным поисковым требованиям, и представления их пользователю в заданной форме. Основным средством выборки является оператор выборки SELECT, в котором задаются область поиска, требования к содержанию выбираемых данных и способ представления полученного результата. При работе пользователь может явно задавать и исполнять оператор выборки, либо неявно запускать на выполнение заранее созданный оператор, размещенный в приложении или внешнем файле.

1. ОПЕРАТОР ВЫБОРКИ SELECT-SQL

Оператор выборки SELECT предназначен для описания и исполнения запросов к БД. В Visual FoxPro оператор выборки SELECT имеет форму:

SELECT < ограничение повтора > < ограничение объема > <выходной список>

FROM <входной список >

<направление вывода>

NOCONSOLE

NOWAIT

WHERE <условие ограничения>

GROUP BY <поля группирования>

HAVING <условие выборки групп>

UNION <команда SELECT> 

ORDER BY <поля сортировки>

Исполнение оператора SELECT формально можно представить следующей последовательностью действий:

- формирование единой таблицы,

- ограничение единой таблицы по строкам,

- отбор выходных столбцов выборки,

- группирование строк таблицы выборки,

- ограничение по групповым строкам,  

- объединение выборки,

- упорядочивание записей выборки,

- определение направления вывода выборки,

- задание дополнительных условий вывода.

Формирование единой таблицы

Формирование выполняется в соответствии с информацией, заданной фразой FROM. Во фразе FROM  перечисляются через запятую входные элементы. Элементом может быть  исходная таблица или соединение исходных таблиц.

Таблица в списке указывается ее именем. Для уточнения ссылки на таблицу может быть указана ее БД в виде   

<БД>!<таблица>

Это позволяет обрабатывать данные из нескольких БД и предотвращать конфликт имен при совпадении имен таблиц.

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

        <таблица1> <вид соединения> JOIN <таблица2> ON <условие>

Вид соединения может принимать значения:

INNER – внутреннее соединение,

LEFT – левое внешнее соединение,

RIGHT  – правое внешнее соединение,

FULL – полное внешнее соединение.

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

Состав таблицы соединения зависит от вида соединения. Соединение  INNER содержит все соединения записей, для которых выполняется заданное условие. В соединении LEFT к допустимым соединениям записей добавляются соединения с пустой строкой для записей таблицы 1,  не имеющих соответствия в таблице 2. Таким образом, в таблицу соединения хотя бы однократно входят все записи таблицы 1 (левой таблицы соединения). В соединении RIGHT  к допустимым соединениям записей добавляются соединения с пустой строкой для записей таблицы 2,  не имеющих соответствия в таблице 1. В соединении FULL аналогичным образом в результат соединения включаются все записи как левой, так и правой таблицы соединения.

Для элемента может быть задан временный псевдоним в виде

<элемент>   <псевдоним>

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

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

Ограничение единой таблицы по строкам

Данная операция выполняется при наличии фразы WHERE.

Фраза  WHERE содержит условие ограничения. Условие проверяется для каждой записи единой таблицы. При невыполнении условия запись исключается из таблицы. Условие выборки включает одно или несколько простых условий. При наличии нескольких простых условий они объединяются в условие ограничения с помощью логических функций AND и OR.

Простые условия могут иметь следующие формы:

  •  <поле> <сравнение> <выражение>

- выполняется сравнение значения поля СС значением выражения. Для задания вида сравнения используются символы < > = и их сочетания. Сравнение «не равно» может быть задано в виде != или <>

  •  <поле> IS NULL
  •  <поле> IS NOT NULL

- выполняется проверка отсутствия или наличия значения поля

  •  <поле> BETWEEN <выражение> AND <выражение>
  •  <поле> NOT BETWEEN <выражение> AND <выражение>

- выполняется проверка попадания значения поля в заданный интервал или вне его

  •  <поле> IN (<список>)
  •  <поле> NOT IN (<список>)

- выполняется проверка наличия или отсутствия значения поля в заданном наборе значений. Набор значений может быть создан запросом  SELECT, т.е. условие может иметь форму:   <поле> IN (оператор SELECT)

  •  EXISTS (оператор SELECT)
  •  NOT EXISTS (оператор SELECT)

- выполняется проверка наличия или отсутствия записей в выборке, выполненной с параметрами проверяемой записи

  •  <поле> <сравнение> ALL (оператор SELECT)

- выполняется проверка выполнения условия сравнения для каждого элемента набора, созданного запросом  SELECT 

  •  <поле> <сравнение> ANY (оператор SELECT)

- выполняется проверка выполнения условия сравнения хотя бы для одного элемента набора, созданного запросом  SELECT 

Отбор выходных столбцов выборки

Отбор выполняется в соответствии с информацией, заданной фразой SELECT. Во фразе SELECT перечисляются через запятую выходные элементы. Выходным элементом может быть поле таблицы, задаваемое именем,  или вычисляемое поле, задаваемое выражением. Для уточнения ссылки на поле может быть указан псевдоним его таблицы в виде:  <псевдоним>.<поле>.

Для элемента может быть задан псевдоним  в виде:  <элемент> AS <псевдоним>.  Задание псевдонима позволяет присвоить имена вычисляемым полям, разрешить конфликты совпадения имен и определить понятный пользователю заголовок.

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

Ограничение повтора может принимать значения:

ALL – повторяющиеся записи включаются в выборку (значение по умолчанию),

DISTINCT – повторяющиеся записи не включаются в выборку.

Ограничение объема может принимать значения:

TOP <числовое выражение> - в выборку включается не более заданного числа записей,

TOP <числовое выражение> PERCENT - в выборку включается не более заданного процента отобранных записей.

Примечание: символ  *  задает включение всех имеющихся столбцов в выходной список без необходимости полного перечисления.

Группирование строк таблицы выборки

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

Фраза GROUP BY содержит список полей, по которым выполняется группировка. Поле группировки и может быть задано именем или порядковым номером в выходном списке. Все записи с одинаковым сочетанием значений в полях группировки образуют группу. Для группы формируется итоговая запись, в полях которой размещается агрегированная по группе информация. Агрегирование данных  выполняется с помощью функций:

COUNT(<выражение>) – количество записей в группе,

SUM(<выражение>) – суммарное значение выражения по записям группы,

MIN(<выражение>) – минимальное значение выражения по записям группы,

MAX(<выражение>) – максимальное значение выражения по записям группы,

AVG(<выражение>) – среднее значение выражения по записям группы.

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

Ограничение по групповым строкам  

Данная операция выполняется при наличии фразы HAVING. Данная фраза задает условие ограничения для групповых строк аналогично тому, как фраза WHERE задает условие ограничения для исходных строк.

Объединение выборки

Данная операция выполняется при наличии фразы UNION,

Фраза UNION содержит команду SELECT, которая должна возвращать выборку, аналогичную основной выборке по количеству и типам полей. Основная и дополнительная выборка объединяются путем дописывания строк дополнительной выборки к основной выборке. Может быть использовано более одной фразы UNION в случае необходимости добавления нескольких выборок.

Упорядочивание записей выборки

Данная операция выполняется при наличии фразы ORDER BY.

Фраза ORDER BY содержит список полей, по которым выполняется упорядочивание. Поле упорядочивания должно присутствовать в выходном списке и может быть задано именем или порядковым номером в выходном списке. Порядок сортировки определяется порядком следования полей в списке упорядочивания. Сначала выполняется сортировка по первому полю списка, затем внутри каждой сортировочной группы – по второму полю и т.д. После каждого поля можно указать направление сортировки по этому полю. Допустимыми значениями указателя сортировки являются ASC (по возрастанию) и DESC (по убыванию).

При использовании фразы UNION упорядочивание может быть задано только однократно. Фраза ORDER BY в этом случае размещается в самом конце и относится ко всему объединению.

Определение направления вывода выборки

Основными вариантами направления являются:

  •  INTO ARRAY <имя> - запись в указанный массив

Заданный массив автоматически создается, если выборка не пустая. Размер массива определяется размером выборки

  •  INTO CURSOR <имя> - запись в указанную временную таблицу

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

  •  INTO TABLE <имя> - запись в указанную постоянную таблицу

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

  •  TO FILE <имя> - запись в файл
  •  TO PRINTER – вывод на печать,
  •  TO SCREEN – вывод на основной экран.

Если никакое направление вывода не задано, то таблица выборки выводится на экран в окне Browse.

Задание дополнительных условий вывода

Необязательная опция  NOCONSOLE подавляет дублирующий вывод выборки в окне Browse при направлении вывода в файл, на печать и на основной экран.

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

2. РАБОТА С КОНСТРУКТОРОМ ЗАПРОСОВ

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

Открытие Конструктора Запросов

Запуск Конструктора Запросов для создания нового запроса может быть выполнен:

а) нажатием кнопки New окна проекта при выбранной группе Queries. Созданный запрос будет автоматически добавлен в проект;

б) выполнением команды File /New главного меню Visual FoxPro с последующим выбором Query/NewFile. Созданный запрос будет независимым и при необходимости добавляется в проект выполнением операции Add. Аналогичный результат можно получить нажатием кнопки New стандартной панели Visual FoxPro.

При выполнении указанных действий открывается окно Конструктора Запросов и окно выбора таблиц. Из окна выбора нужные таблицы нажатием кнопки Add переносятся в окно Конструктора Запросов. После переноса всех нужных таблиц окно выбора таблиц закрывается нажатием кнопки Close и начинается работа в окне Конструктора Запросов.

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

В нижней части окна Конструктора Запросов находится набор вкладок, соответствующих основным фразам оператора SELECT (см. п.1)

Вкладка

Описание

Fields

Задаются выходные столбцы выборки. Соответствует фразе SELECT с опцией выходного списка

Join

Задаются соединения исходных таблиц. Соответствует фразе FROM 

Filter

Задаются условия ограничения выборки по строкам. Соответствует фразе WHERE

Order By

Задается упорядочивание записей выборки. Соответствует фразе ORDER BY

Group By

Задается группировка записей выборки. Соответствует фразе GROUP BY

Miscellaneous

Задаются дополнительные условия

С открытием окна Конструктора Запросов связано появление дополнительных средств работы с запросами:

а) подменю Query в стандартном меню Visual FoxPro. Команды подменю позволяют:

- добавлять таблицы и соединения (Add Table, Add Join),

- удалять таблицы и соединения (Remove Table, Remove Join Condition),

- открывать нужную вкладку (Output Fields, Join, Filter, Order By, Group By, Miscellaneous),

- задавать направление вывода выборки (Query Destination),

- просматривать текст сформированного оператора (View SQL),

- изменять размер области таблиц (Maximize/Minimize the table view),

- выполнять запрос (Run Query)

б) инструментальная панель Query Designer. Содержит кнопки, дублирующие основные команды подменю Query

в) контекстное меню Конструктора Запросов. Содержит команды, дублирующие основные команды подменю Query.

Создание запроса в Конструкторе Запросов

Для создания запроса в Конструкторе Запросов выполняются следующие действия:

- выбираются исходные таблицы и устанавливаются необходимые соединения,

- задаются требуемые ограничения строк,

- определяется список выходных полей,

- задается, если необходимо, группировка и групповые ограничения,

- задается, если необходимо, упорядочивание,

- задаются, если необходимо, дополнительные условия.

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

При добавлении связанных таблиц Конструктор Запросов создает соединения на основе имеющихся связей. При добавлении несвязанных таблиц Конструктор Запросов предлагает установить соединение, открывая окно Join Condition. В этом окне можно выбрать вид соединения и поля таблиц, по которым устанавливается соединение. При задании соединения оно отображается в виде связи в области таблиц конструктора. В дальнейшем набор соединений может быть изменен с помощью команд подменю Query и инструментальной панели Query Designer, а также вкладки Join Конструктор Запросов.

Вкладка Join содержит набор записей, каждая из которых описывает отдельное соединение. Запись имеет следующие поля:

Type – тип соединения,

Field Name – поле или выражение, представляющее левую часть условия соединения,

Not – включение отрицания для операции сравнения в условии соединения,

Criteria - операция сравнения в условии соединения,

Value - поле или выражение, представляющее правую часть условия соединения,

Logical – логическая операция, объединяющая соединения.

Кнопки Insert и Remove вкладки Join позволяют добавлять и удалять соединения. При добавлении соединения новая строка доступна для редактирования. Для редактирования уже имеющихся соединений вызывается окно Join Condition. Оно вызывается щелчком на двунаправленной горизонтальной стрелке текущей записи вкладки Join или двойным щелчком на линии соединения в области таблиц.

Для задания ограничения строк используется вкладка Filter. Вкладка Filter содержит набор записей, каждая из которых описывает простое условие ограничения. Любая запись доступна для редактирования. Запись имеет следующие поля:

Field Name – поле или выражение, представляющее левую часть условия ограничения

Not – включение отрицания для операции сравнения в условии ограничения,

Criteria - операция сравнения в условии ограничения,

Example - поле или выражение, представляющее правую часть условия ограничения,

Case – включение учета регистра при сравнении символьных данных,

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

Кнопки Insert и Remove вкладки Filter позволяют добавлять и удалять условия ограничения.

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

Для задания группировки используется вкладка Group By. В левой части вкладки расположен список имеющихся полей. В правой части формируется список полей группировки. Перенос полей из одного списка в другой выполняется с помощью кнопок переноса, либо путем перетаскивания полей мышью, либо двойным щелчком на перемещаемом поле. Для изменения порядка группировки выполняется перетаскивание указателя текущей строки в списке группировки. Нажатие кнопки Having открывает окно задания групповых ограничений. Задание групповых ограничений не отличается от задания ограничений строк.

Для задания упорядочивания используется вкладка Order By. В левой части вкладки расположен список доступных для упорядочивания полей. В правой части формируется список полей упорядочивания. Перенос полей из одного списка в другой выполняется с помощью кнопок переноса, либо путем перетаскивания полей мышью, либо двойным щелчком на перемещаемом поле. Для изменения порядка упорядочивания выполняется перетаскивание указателя текущей строки в списке упорядочивания. Направление упорядочивания задается в области Order options, где можно выбрать упорядочивание по возрастанию (Ascending) или убыванию (Descending).  

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

Задание направления вывода в Конструкторе Запросов

Для задания направления вывода выборки, получаемой при выполнении запроса,  могут быть использованы:

- команда Query Destination подменю Query или соответствующая кнопка инструментальной панели Query Designer;

- команда Output Settings контекстного меню.

В открывающемся окне Query Destination имеется набор кнопок, задающих различные варианты вывода. Первые три кнопки (Browse, Cursor, Table) соответствуют стандартным вариантам вывода в окно просмотра, во временную таблицу и в постоянную таблицу. Остальные варианты вывода являются расширениями, выходящими за рамки оператора SELECT.

Просмотр текста запроса в Конструкторе Запросов

При создании запроса в Конструкторе Запросов автоматически формируется текст соответствующего оператора выборки SELECT.  Этот текст доступен для просмотра в любой момент работы с конструктором, что позволяет контролировать каждый шаг создания запроса. Окно просмотра текста вызывается командой View SQL, имеющейся в подменю Query, контекстном меню Конструктора Запросов и инструментальной панели Query Designer.

Сохранение запроса в Конструкторе Запросов

Сохранение запроса выполняется стандартными командами File/Save и File/Save As. Запрос сохраняется в файле с указанным именем и расширением  *.qpr. Если запрос создавался в рамках проекта, то в окне проекта он будет помещен в группу Queries раздела Data.

Модификация запроса в Конструкторе Запросов

Сохраненный запрос можно вызвать для модификации с помощью команды File/Open или выбором его в проекте и нажатием кнопки Modify. Открывается окно Конструктора Запросов и в него загружается указанный запрос. Редактирование запроса выполняется описанными выше приемами.

Примечание: если при открытии запроса командой File/Open указать программный тип файла, то будет открыт текст запроса. Этот текст можно редактировать и сохранять по общим правилам работы с текстовыми файлами.    

Выполнение запроса

Для запуска запроса на выполнение имеются следующие способы:

а) Сохраненный запрос может быть выполнен командой Program/Do;

б) Сохраненный запрос, включенный в проект, может быть выполнен из окна проекта путем выбора запроса и нажатия кнопки Run;

в) Текущий запрос, находящийся в окне Конструктора Запросов, может быть выполнен командой Run Query подменю  Query или контекстного меню, а также нажатием кнопки Run стандартной панели Visual FoxPro.

3. ВЫПОЛНЕНИЕ ВЫБОРКИ В ПРИЛОЖЕНИИ

Рассмотренная ранее работа с запросами выполняется в интерактивном режиме. При этом Конструктор Запросов может использоваться двояко:

- для создания и выполнения запросов в автономном режиме;

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

Использование запросов в приложении различается местом их размещения и способом взаимодействия с пользователем.

По месту размещения различаются следующие варианты:

а) Размещение в свойствах объектов.

В табличном элементе Grid для свойства RecordSourceType (тип источника записей) могут быть заданы типы SQL Statement или Query. В первом случае для заполнения строк будет использован оператор SELECT, заданный в свойстве RecordSource. Во втором случае для заполнения строк будет использован файл запроса, имя которого задается в свойстве RecordSource. Если в ходе работы для открытого объекта оператор SELECT или файл запроса изменился, то для обновления заполнения объекта следует переписать заново значение свойства RecordSource.

Аналогично используются операторы SELECT и файлы запросов в свойствах RowSourceType и RowSource объектов ComboBox и ListBox. Если в ходе работы для открытого объекта оператор SELECT или файл запроса изменился, то для обновления заполнения объекта следует выполнить метод Requery.

б) Размещение в программном коде. В коде могут быть записаны непосредственно операторы SELECT или команды запуска на исполнение файлов запросов. Команда запуска на исполнение файла запроса имеет вид   DO <файл>, где для файла должно быть указано расширение и, при необходимости, путь.

По способу взаимодействия с пользователем можно выделить такие варианты:

а) Фиксированные запросы

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

б) Параметрические запросы

Текст запроса в ходе работы не меняется. Перед выполнением запроса пользователь должен ввести значения переменных, используемых в запросе;

в) Частично модифицируемый запрос

Текст запроса программно модифицируется в ходе работы для согласования с вводимыми пользователем данными. Текст формируется в текстовой переменной, для исполнения запроса в нужном месте программного кода помещается операция макроподстановки  &<переменная>. При выполнении макроподстановки в данное место программного кода будет подставлен текст указанной переменной и, следовательно, вставлена для исполнения сформированная команда;

г) Шаблонно формируемый запрос

Запрос создается или модифицируется, а затем выполняется с помощью программно вызываемого Конструктора Запросов. Вызов выполняется в нужном месте приложения с использованием команд CREATE QUERY или MODIFY QUERY;

д) Свободно задаваемый запрос

Пользователю предоставляется возможность непосредственного ввода текста оператора SELECT. Текст размещается в текстовой переменной и исполняется с использованием операции макроподстановки.

ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

1. Создание проекта

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

Создайте новый проект. Создайте новую БД для проекта. Добавьте к БД предоставленные таблицы. Сохраните созданный проект в личном каталоге.

2. Интерактивная работа с запросами.

Используя Конструктор Запросов, создайте и выполните нижеуказанные запросы (запросы сохраните в проекте):

а) Выберите данные по всем проектам: название, сумма, длительность. Длительность определите по плановому началу и окончанию проекта;

б) Выберите данные по текущим проектам: название, начало проекта, плановое окончание проекта. Текущим является проект с незаполненной датой фактического окончания проекта;

в) Выберите все данные по проектам, выполненным отделом ПО;

г) Выберите все данные по всем проектам, упорядоченные по названию отдела;

д) Выберите агрегированные данные по отделам: название отдела, количество проектов, суммарный объем;

е)  Выберите данные по качеству работы отделов: название отдела, количество просроченных проектов (выводятся отделы, для которых число просроченных проектов больше одного);

ж) Выберите данные по загруженности отделов: название отдела, количество проектов, количество сотрудников, суммарный объем работ, объем работ на одного работника.

3. Разработка формы с фиксированным запросом

Создайте новую форму.

Разместите на форме табличный объект Grid. С помощью оператора SELECT, размещенного в свойствах, настройте объект на вывод выборки пункта 1а. В операторе SELECT вывод выборки  задайте во временную таблицу, чтобы воспрепятствовать открытию по умолчанию окна Browse.

Разместите на форме две кнопки: «Текущие» и «Все». Запрограммируйте кнопку «Текущие» на вывод в объекте Grid выборки 1б, а кнопку «Все» на возврат к выборке 1а.

Запустите форму и проверьте ее работоспособность.

Сохраните форму.

4. Разработка формы с параметрическим запросом

Создайте новую форму.

Разместите на форме комбинированный список ComboBox и табличный объект Grid. С помощью оператора SELECT, размещенного в свойствах, заполните комбинированный список названиями отделов. Задайте значение DropdownList для свойства Style списка, чтобы запретить непосредственный ввод в поле списка. С помощью оператора SELECT, размещенного в свойствах, настройте табличный объект на вывод выборки пункта 1в, но вместо фиксированного названия отдела используйте свойство Value комбинированного списка.

Для обновления отображаемых данных при смене отдела в событии InteractiveChange запрограммируйте обновление значения свойства RecordSource объекта Grid, например в виде

thisform.grid.recordsource= thisform.grid.recordsource

Запустите форму и проверьте ее работоспособность.

Сохраните форму.

5. Разработка формы с формированием запроса пользователем

Создайте новую форму.

Разместите на форме два табличных объекта Grid. В первом выведите таблицу проектов, во втором – таблицу проектов.

Разместите на форме объект EditBox для свободного ввода текста запроса.

Разместите на форме две кнопки: «Конструктор» и «Свободный». Запрограммируйте кнопку «Конструктор» на вызов Конструктора Запросов, а кнопку «Свободный» на исполнение запроса, введенного в объекте EditBox. Для исполнения свободного запроса считайте значение свойства Value объекта EditBox в текстовую переменную и используйте операцию макроподстановки.

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

Сохраните форму.

 

                            

 


 

А также другие работы, которые могут Вас заинтересовать

49273. Разработка электронной измерительной системы для контрольного приспособления для проверки расположения осей отверстий у корпусов с базированием на кулачковую оправку 1.82 MB
  На рисунке представлено контрольное приспособление кулачковой оправкой для измерения расположение осей отверстий корпуса стойки металокордовых машин. На этой оправке осуществляется также комплексное базирование корпусов.
49274. Аудит процесса управление несоответствующей продукцией ОАО «Северсталь-метиз» 1.62 MB
  Основными видами производственной и коммерческой деятельности Орловского сталепрокатного завода является выпуск и реализация метизной продукции, а именно проволоки низко и высокоуглеродистой; стальных сеток; электродов; стальных канатов; калиброванной стали
49276. Открытые горные работы. Курс лекций 1.09 MB
  В зависимости от назначения различают капитальные разрезные и специальные открытые горные выработки – траншеи. Капитальные траншеи служат для вскрытия месторождений или отдельных его участков с целью создания грузотранспортной связи рабочих горизонтов карьера с поверхностью. Разрезные траншеи проходят на каждом рабочем горизонте с целью создания первоначального фронта горных работ. Специальные траншеи служат для ограждения карьера от атмосферных вод дренажа месторождения водоотлива и хозяйственного обслуживания рабочих уступов.
49277. Методические основы проектирования карьеров 845 KB
  Выбор площади для строительства промышленного предприятия жилых домов и объектов культурнобытового назначения Кроме того ТЭО строительства карьера должно содержать следующее: характеристику карьера и анализ техникоэкономических показателей его работы; роль рассматриваемого карьера в обеспечении потребностей народного хозяйства в добываемом полезном ископаемом; горногеологическую характеристику месторождения и карьерного поля границы и запасы степень разведанности наличие попутных полезных ископаемых качества полезного...
49278. Расчет пленочных интегральных микросхем 599.65 KB
  Размер зерен менее 40 мкм. Если ограничить толщину пленки величиной 01 мкм а максимальную и минимальную площади соответственно 2Ю2 и 02 мм2 то для обеспечения диапазона емкостей 10 106 Ф требуются диэлектрические постоянные примерно равные 05 50. ТЕХНИЧЕСКОЕ ЗАДАНИЕ Рассчитать группу тонкопленочных резисторов при следующих исходных данных: bтехн=125 мкм lтехн=125 мкм Рассчитать конденсатор при следующих исходных данных: ПОЯСНИТЕЛЬНАЯ ЗАПИСКА ДЛЯ РАСЧЕТА РЕЗИСТОРОВ По формуле определяем значение оптимального сопротивления и...
49279. Технология изготовления бескорпусной интегральной микросборки 707.69 KB
  Характеристики тонкопленочных проводников и контактных площадок Материал подслоя нихром Х20Н80 Толщина подслоя мкм 001003 Материал слоя мкм Медь МВ Толщина слоя мкм 0608 Удельное поверхностное сопротивление S Ом 002004 Рекомендуемый способ контактирования внешних выводов Сварка импульсным косвенным нагревом Материал для защиты элементов выбирается по электрической прочности. Пассивные элементы к точности которых предъявляются жесткие требования располагаются на расстоянии 500 мкм при масочном методе и 200 мкм при...