Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 58
Текст из файла (страница 58)
Инструкции присвоения всегда включают в себя знакравенства (=). Для присвоения значения переменной, описаннойкак объект, применяется инструкция Set.Задание на лабораторную работу1. Написать процедуру VBA, создающую новую базу данных.2. Написать процедуру, создающую в текущей базе данных таблицу СТУДЕНТЫ с полями Номер студента, ФИО, Предмет 1,Предмет2, ПредметЗ, Предмет4, Средний балл.3. Внести в созданную таблицу пять записей во все поля (кромеполя Средний балл).4. Создать процедуру, подсчитывающую средний балл всех студентов и заносящую рассчитанные значения в поле Средний балл.5.
Создать форму, отображающую данные таблицы СТУДЕНТЫ и содержащую кнопку, запускающую процедуру расчета среднего балла.Технология выполнения задания1.Открыть новую базу данных и вкладку Модули, написать процедуру, создающую новую базу данных в соответствий с приведенным примером:'Создание новой базы данныхSub CreateDatabaseX()'Описание переменныхDim myWs As WorkspaceDim myDb As Database'Определяем стандартный объект Workspace (рабо'чее пространство)Set myWs = DBEngine.Workspaces(0)'Создаем новую базу данных307'с указанным используемым порядком символов'dbLangGeneralSet myDb = myWs .CreateDatabase("С:\NewDB.mdb",dbLangGeneral)myDb.CloseEnd SubВ результате выполнения процедуры на диске С должна появиться новая база данных с названием NewDB.mdb.2.Написать процедуру, создающую в текущей базе данных таблицу СТУДЕНТЫ с полями Номер студента, ФИО, Предмет 1,Предмет2, ПредметЗ, Предмет4, Средний балл в соответствии сприведенным примером:'Создание новой таблицы СТУДЕНТЫ в текущей базе данныхSub CreateTableDefX()'Определяем переменныеDim myDb As DatabaseDim myTab As TableDefDim myF As FieldSet myDb = CurrentDb()'Создаем новый объект TableDef — таблицу СТУДЕНТЫSet myTab = myDb.CreateTableDef("Студенты")'Создаем новый объект Field — текстовое поле Номер'студента и добавляем его к семейству полей объекта'таблицы СТУДЕНТЫSet myF = myTab.CreateField("Номер студента",dblnteger)myTab.Fields.Append myF'Создаем новый объект Field — текстовое поле ФИО'и добавляем его к семейству полей объекта таблицы'СТУДЕНТЫSet myF = myTab.CreateField(ФИО, dbText)myTab.Fields.Append myF'Создаем новый объект Field — поле Предмет1 и'добавляем его к семейству полей объекта таблицы'СТУДЕНТЫSet myF = myTab.CreateField("Предмет1", dblnteger)myTab.Fields.Append myF'Аналогично поступаем с другими полями таблицыSet myF = myTab.CreateField("Предмет2", dblnteger)myTab.Fields.Append myFSet myF = myTab.CreateField("ПредметЗ", dblnteger)myTab.Fields.Append myF308Set myF = myTab.CreateField("Предмет4", dblnteger)myTab.Fields.Append myFSet myF = myTab.CreateField("Средний балл", dbDouble)myTab.Fields.Append myF'Добавляем объект таблицу СТУДЕНТЫ к семейству таб'лиц базы данныхmyDb.TableDefs.Append myTabEnd Sub3.
Открыть созданную таблицу и внести пять записей во всеполя (кроме поля Средний балл).4. Создать процедуру, подсчитывающую средний балл всех студентов и заносящую рассчитанные значения в поле Средний баллв соответствии с приведенным примером:Private Sub SB ()Dim myDb As DatabaseDim myRec As RecordsetDim sb As DoubleDim i As IntegerDim max As Integer'объектная переменная типа'базы данных'объектная переменная типа'набора записей'переменная для вычисления'среднего балла'переменная цикла'переменная для хранения чис'ла записей в таблицеSet myDb = CurrentDbO'Работаем с текущей базой'данных'Открываем набор записей таблицы СТУДЕНТЫ и присваива'ем ссылку на него объектной переменной myRecSet myRec = myDb.OpenRecordset("Студенты")i = О'Идем к последней записи табmyRec.MoveLast'лицыmax = myRec.RecordCount 'При этом RecordCount содер'жит число записей в'таблице, которое нужно нам'для вычисления'среднего бала в каждой'строке таблицыmyRec.MoveFirst'Переходим к первой записи'таблицы и вычисляем средний'баллDo While i < max309sb = (myRec!Предмет1 + myRec!Предмет2 + myRec!ПредметЗ ++ myRec!Предмет4)/4myRec.Edit'Заносим значение среднего'балла в одноименное полеmyRec![Средний балл] = sbmyRec.Update'Для внесения данных в поля'таблицы обязательно исполь1зуются команды Edit и'Update.myRec .MoveNext'Переходим к следующей запи1си таблицы и повторяем всеi - 1 + 1'пока не достигнем послед'ней записи.Loop'Закрываем набор записей.myRec.CloseEnd Sub5.Создать форму, отображающую данные таблицы СТУДЕНТЫ и содержащую кнопку, запускающую процедуру расчета среднего балла.Контрольные вопросы1.
Дать определение макроса. Какими возможностями обладают макросы?2. Дать определение модуля. Какими возможностями обладают модули?3. Описать технологию создания процедур на VBA.4. Описать технологию создания баз данных на VBA.5. Описать технологию создания таблиц на VBA.6. Описать технологию создания процедуры обработки событий на VBA.Л А Б О Р А Т О Р Н А Я РАБО ТА № 5Использование языка VBA для фильтрации данных в базеЦель работыОзнакомление с возможностями фильтрации данных в базе спомощью языка Visual Basic for Applications (VBA).Задание на лабораторную работу1.
Создать таблицы базы данных и установить связи между ними.2. Создать простой запрос к таблицам базы данных.3. Создать формы, образующие сложную форму с подчиненной.3104.Разместить в форме элемент управления Набор вкладок и написать процедуру обработки события, осуществляющую отбор(фильтрацию) данных в форме в соответствии с выбором вкладки.Технология выполнения задания1. Открыть новую базу данных (можно использовать уже имеющуюся), для чего выполнить следующее:• создать таблицу КАТЕГОРИЯ ИСТОЧНИКА с полями Кодкатегории (ключевое поле) и Наименование категории (книги, журналы, статьи, справочники и т.д.);Создать таблицу КАТАЛОГ ИСТОЧНИКОВ с полями Код источника (ключевое поле), Код категории, Автор, Наименование,Год издания, Число страниц и т.д.;• установить связь между таблицами типа один ко многим оттаблицы КАТЕГОРИЯ ИСТОЧНИКА к таблице КАТАЛОГ И С ТОЧНИКОВ;• занести в таблицы непротиворечивые данные.2.
Создать простой запрос к таблицам КАТАЛОГ ИСТОЧНИКОВ и КАТЕГОРИЯ ИСТОЧНИКА, отбирающий все поля и всезаписи.3. Создать форму на основе запроса, созданного в п. 2.4. Создать пустую форму и разместить в ней подчиненную форму, созданную в п. 3. В этой же форме разместить элемент управления Набор вкладок с наименованием Категория и вкладками,имя каждой из которых соответствует используемым категориям(книги, журналы и т.д.). Нажатие на соответствующую вкладкунабора должно вызывать отбор (фильтрацию) данных в подчиненной форме.5. В окне свойств элемента управления Набор вкладок в графеИзменение выбрать опцию Процедура обработки события, котораябудет реагировать на выбор соответствующей вкладки и выводитьв подчиненной форме только записи соответствующей категории.В теле процедуры должен содержаться набор записей следующего типа:If M e ![Категория]=1 ThenM e ! [Каталог источников].Form.RecordSource ="SELECT * FROM [Каталог источников Запрос] WHERE[Каталог источников Запрос].[Наименование категории] Like 'Книги';"End IfIf M e ![Категория]=2 ThenEnd If311Здесь выражение Ме![Категория]=1 указывает, что если в текущей форме в элементе управления Набор вкладок с именем Категория выбрана вкладка с индексом 1 (в данном случае вкладка Книги имеет индекс 1, вкладка Журналы — 2 и т.д.), то источником строк (RecordSource) для подчиненной формы с именемКаталог источников является запрос с именем Каталог источников Запрос с условием отбора записей по наименованию категории, соответствующему категории Книги.6.Проверить правильность работы формы с отбором записейпо категории.Контрольные вопросы1.
Описать технологию создания процедуры обработки событий на VBA.2. Написать процедуру создания формы на VBA.3. Написать процедуру создания отчета на VBA.4. Описать основные свойства форм, доступные при программировании на VBA.СПИСОК ЛИТЕРАТУРЫ1. Бекаревич Ю. Б., Пушкина Н. В. Microsoft Access 2000.
—СПб.: БХВ-Санкт-Петербург, 1999.2. Васильев А., Андреев A. VBA в Office 2000: учебныйкурс. — СПб.: Питер, 2001.3. Вербовецкий A.A. Основы проектирования баз данных. — М.: Радио и связь, 2000.4. Дейт К.Дж. Введение в системы баз данных. — М.:Вильямс, 1999.5. Информатика: Учебник / Под ред. Н.
В. Макаровой. —М.: Финансы и статистика, 1998.ОГЛАВЛЕНИЕПредисловие...................................................................................................... 3Г л а в а 1. Основы теории проектирования баз данных............................... 51.1.
Определение и назначение баз данных......................................... 51.2. Области применения баз данных.................................................. 71.3. Информационная модель данных и ее состав............................. 81.4. Три типа логических моделей баз данных.................................. 111.5. Типы взаимосвязей в модели........................................................141.6. Обеспечение непротиворечивости и целостностиданных в базе..................................................................................151.7.
Основы реляционной алгебры......................................................161.8. Нормализация баз данных.............................................................211.9. Средства ускоренного доступа к данным...................................241.10. Этапы проектирования баз данных...........................................251.11. Проектирование базы данных на основе модели типаобъект—отношение.......................................................................27Г л а в а 2. Использование СУБД Access для создания баз данных......... 352.1. Основные характеристики и возможности СУБД Access....... 352.2.