BD_labs (Базы данных. Методические указания по выполнению лабораторных работ), страница 2
Описание файла
Файл "BD_labs" внутри архива находится в папке "БД. Методические указания по выполнению лабораторных работ". Документ из архива "Базы данных. Методические указания по выполнению лабораторных работ", который расположен в категории "". Всё это находится в предмете "информационные технологии" из 2 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информационные технологии" в общих файлах.
Онлайн просмотр документа "BD_labs"
Текст 2 страницы из документа "BD_labs"
ПОИСК ГРУППЫ ЗАПИСЕЙ
Постановка задачи
Разработать форму для поиска группы записей по заданным критериям. Пример формы для поиска заказов приведен на рис. 5. Форма содержит поля для задания условий отбора записей, список, в котором отображаются записи, отвечающие условиям поиска, и командные кнопки. Кнопка Поиск выполняет поиск записей и вывод в список найденных записей. Кнопка Сброс сбрасывает текущие условия поиска, заполняя поля пустыми значениями, и выводит все записи. Варианты задания приведены в табл. 4.
Рис. 5. Форма для поиска заказов
Методические указания
1. Создайте запрос для вывода всех записей. Он будет являться источником строк для списка (свойство списка RowSource) при пустых значениях полей, задающих условия отбора записей. Создайте параметрический запрос, для вывода записей, удовлетворяющих условиям поиска. В выражениях для условий отбора задайте ссылки на поля формы поиска. Для поиска по первым символам строкового значения поля используйте оператор Like или функции Left и Len. Параметрический запрос будет использоваться в качестве источника записей списка при поиске записей с помощью формы. Можно разработать один параметрический запрос для списка и в нем предусмотреть условие для вывода всех записей при пустых значениях полей, задающих условия отбора записей. Текст SQL запроса для поиска заказов для формы «Поиск заказов без предоплаты», приведен на рис. 6.
2. Разработайте несвязанную с источником данных форму для поиска информации.
3. Разместите в форме несвязанные с источниками данных поля для ввода условий поиска. Если для поиска используются даты, то установите для полей формат даты. Для задания критерия отбора можно использовать поле со списком, если количество возможных значений критерия невелико.
4. Разместите в форме список, указав для него в качестве источника строк имя запроса.
5. Разместите в форме кнопки Поиск, Сброс и Выход. Напишите для этих кнопок обработчики событий. Используйте для обновления списка метод Requery или свойство списка RowSource. Включите в обработчик события «Нажатие кнопки Поиск » проверку заполнения всех полей, если условия отбора связаны логической операцией «И». Включите в обработчик события «Нажатие кнопки Сброс » очистку полей ввода условий.
6. Напишите обработчик события «Открытие формы» для установки фокуса на первое поле условия отбора.
Таблица 4.
Варианты задания
№ | Информация, выводимая в списке | Критерий поиска |
1 | Список работников=(Фамилия и инициалы, дата рождения, адрес) | Диапазон дат рождения, наименование профессии |
2 | Список продавцов, продающих данный товар=(Наименование товара, фамилия и инициалы, номер отдела) | Первые буквы наименования товара |
3 | Список студентов=(Учетный номер, фамилия и инициалы) | Семестр, специальность, наименование дисциплины |
4 | Список книг=(Шифр, авторы, наименование) | Первые буквы авторов, первые буквы наименования |
5 | Список товаров=(Наименование филиала, вид товара, наименование поставщика) | Первые символы наименования филиала |
6 | Список выпускников = (Наименование вуза, наименование специальности, фамилия и инициалы, средний балл) | Наименование специальности, наименование вуза |
7 | Расписание экзаменов преподавателя=(Шифр группы, время, аудитория) | Преподаватель, дата |
8 | Список преподавателей = (Наименование дисциплины, фамилия и инициалы преподавателя, наименование кафедры) | Первые буквы наименования дисциплины |
9 | Список партий товаров=(Вид товара, наименование поставщика, дата закупки, закупочная цена, количество) | Вид товара, наименование поставщика |
10 | Список студентов, получивших хотя бы одну оценку «2» =(Фами- лия, имя, отчество) | Группа, семестр, дисциплина |
11 | Список поставщиков=(Наименова-ние детали, наименование постав-щика, адрес, телефон) | Первые символы наименования детали |
12 | Учебные планы=(дисциплина, вид отчетности, количества часов) | Наименование факультета, наименование специальности, семестр |
13 | Список вакансий=(Наименование профессии, наименование предприятия, адрес) | Первые символы наименования профессии |
14 | Список заказов=(Номер заказа, фамилия и инициалы, адрес, дата регистрации, количество) | Первые буквы фамилии, первые символы адреса |
15 | Список заказов=(Номер заказа, фамилия и инициалы, адрес, дата регистрации, количество) | Диапазон дат регистрации заказа |
ЛАБОРАТОРНАЯ РАБОТА №4
ИСПОЛЬЗОВАНИЕ СПИСКА С МНОЖЕСТВЕННЫМ
ВЫБОРОМ ДЛЯ ПЕРЕМЕЩЕНИЯ ЗАПИСЕЙ
Постановка задачи.
Разработать форму для перемещения произвольно выбранных пользователем записей из основной таблицы в архивную таблицу. Для произвольного выбора записей использовать список с множественным выбором. Пример формы, в которой используются два списка с множественным выбором строк, приведен на рис. 7. Кнопки между списками предназначены для перемещения выбранной информации из одного списка в другой. Кнопка Сформировать предназначена для выполнения операции формирования почтового списка из отобранных записей. Варианты основной таблицы приведены в табл. 1.
Методические указания
-
Создайте архивную таблицу «АРХИВ», скопировав для нее структуру основной таблицы вашей базы данных.
2. Установите в схеме данных каскадное удаление записей подчиненных таблиц, связанных с основной таблицей.
3. Создайте таблицу «РАБОЧАЯ» для временного хранения информации о перемещаемых записях. В структуру этой таблицы включите ключевые поля основной таблицы. Можно включить и другие поля основной таблицы, которые должны отображаться в правом списке.
4. Разработайте запрос для поиска записей основной таблицы, значения ключевых полей которых не совпадают со значениями ключевых полей записей таблицы «РАБОЧАЯ». Для этого используйте в запросе подчиненный запрос или левое внешнее объединение (Left Join). Предусмотрите в запросе вывод полей, которые должны отображаться в списке. Разработанный запрос будет использоваться в качестве источника строк левого списка.
Рис. 7. Форма для формирования списков для почты
5. Разработайте форму для перемещения записей.
5.1. Разместите в форме левый список, указав для него в качестве источника строк имя запроса, разработанного в пункте 4. Для множественного выделения строк в списке установите значение свойства списка Несвязанное выделение в значение «Простой». Выберите в качестве присоединенного столбца списка ключевой столбец основной таблицы, установив в свойстве Присоединенный столбец номер этого столбца. Задайте ширину столбцов списка. Протестируйте форму. Убедитесь, что в левом списке можно выделить несколько строк.
5.2. Разместите в форме правый список, указав для него в качестве источника строк таблицу «РАБОЧАЯ». Для множественного выделения строк в списке установите значение свойства списка Несвязанное выделение в значение «Простой». Выберите в качестве присоединенного столбца списка ключевой столбец таблицы.
5.3. Разместите 4 кнопки между списками и напишите обработчики событий для этих кнопок.
Обработчик события «Нажатие кнопки > » должен обеспечивать перемещение отобранных в левом списке записей в правый список:
-
Если левый список пустой
-
Вывести сообщение
-
Завершить выполнение процедуры
-
-
Если в левом списке нет выделенных строк
-
Вывести сообщение
-
Завершить выполнение процедуры
-
Цикл по выделенным строкам левого списка
-
Добавить в таблицу «РАБОЧАЯ» информацию о выделенной записи основной таблицы
-
Отменить выделение строки
-
Конец цикла
-
Обновить левый список
-
Обновить правый список
При программировании операций добавления или удаления записей таблиц используйте методы RunSQL и/или OpenQuery объекта DoCmd. Пример процедуры обработки события «Нажатие кнопки >» для формы формирования списков заказов для почты приведен на рис. 8.
Обработчик события «Нажатие кнопки < » должен перемещать отобранные в правом списке записи в левый список. Обработчик события «Нажатие кнопки >> » должен перемещать все записи левого списка в правый список. Обработчик события «Нажатие кнопки << » должен перемещать все записи правого списка в левый список.
5.4. Разместите кнопку Выполнить. Напишите обработчик события «Нажатие кнопки Выполнить ». Он должен перемещать отобранные из основной таблицы записи, которые отображаются в правом списке, в таблицу «АРХИВ» и отображать в форме результат выполнения архивации:
-
Добавить в таблицу «АРХИВ» все отобранные записи
-
Удалить из основной таблицы все отобранные записи
-
Очистить таблицу «РАБОЧАЯ»
-
Обновить левый список
-
Обновить правый список
5.5. Разместите в форме кнопку Выход. Напишите обработчик события «Нажатие кнопки Выход ». Он должен обеспечивать очистку таблицы «РАБОЧАЯ», восстановление вывода системных сообщений и закрытие формы.
5.6. Напишите обработчик события «Открытие формы», который должен отменять вывод системных сообщений при выполнении запросов действия.
Краткое описание свойств списка, полезных при написании обработчиков событий для разрабатываемой формы, приведено в табл. 5.
Таблица 5.
Свойства списка
Свойство | Описание |
Selected (i) | Состояние выделения i-строки списка (True/False) |
ItemData(i) | Значение, содержащееся в присоединенном столбце i-строки списка |
Column(j, i) | Значение элемента списка, расположенного в j-столбце и i-строке (нумерация строк и столбцов начинается с 0) |
RowSource | Источник строк списка (имя таблицы, запроса или SQL-команда) |
ItemsSelected | Семейство, содержащее индексы выделенных строк. Имеет свойство Count – число элементов в семействе (количество выделенных строк списка) |
ColumnCount | Количество столбцов в списке |
ListCount | Количество строк в списке |
Count | Количество элементов в семействе ItemsSelected (количество выделенных строк списка) |
Private Sub Вправо_Click()