Технология выполнения задания
'Создание новой базы данных Sub CreateDatabaseX() 'Описание переменных Dim myWs As Workspace Dim myDb As Database 'Определяем стандартный объект Workspace (рабочее пространство) Set myWs = DBEngine.Workspaces(0) 'Создаем новую базу данных 'с указанным используемым порядком символов 'dbLangGeneral Set myDb = myWs.CreateDatabase ("С:\NewDB.mdb", dbLangGeneral) myDb.Close End Sub
В результате выполнения процедуры на диске С должна появиться новая база данных с названием NewDB.mdb.
2. Написать процедуру, создающую в текущей базе данных таблицу СТУДЕНТЫ с полями Номер студента, ФИО, Предмет1, Предмет2, ПредметЗ, Предмет4, Средний балл в соответствии с приведенным примером. Для этого необходимо открыть созданную базу данных NewDB.mdb и войти на вкладку МодулиàСоздать Создание новой таблицы СТУДЕНТЫ в текущей базе данных Sub CreateTableDefX() 'Определяем переменные Dim myDb As Database Dim myTab As TableDef Dim myF As Field Set myDb = CurrentDb()
'Создаем новый объект TableDef — таблицу СТУДЕНТЫ Set myTab = myDb.CreateTableDef (“Студенты”)
'Создаем новый объект Field — текстовое поле Номер ' студента и добавляем его к семейству полей объекта 'таблицы СТУДЕНТЫ Set myF = myTab.CreateField("Номер студента", dbInteger) myTab.Fields.Append myF 'Создаем новый объект Field — текстовое поле ФИО 'и добавляем его к семейству полей объекта таблицы 'СТУДЕНТЫ Set myF = myTab.CreateField("ФИО", dbText) myTab.Fields.Append myF 'Создаем новый объект Field — поле Предмет1 и 'добавляем его к семейству полей объекта таблицы 'СТУДЕНТЫ Set myF = myTab.CreateField("Предмет1", dbInteger) myTab.Fields.Append myF 'Аналогично поступаем с другими полями таблицы Set myF = myTab.CreateField("Предмет2", dbInteger) myTab.Fields.Append myF Set myF = myTab.CreateField("ПредметЗ", dbInteger) myTab.Fields.Append myF Set myF = myTab.CreateField("Предмет4", dbInteger) myTab.Fields.Append myF Set myF = myTab.CreateField("Средний балл", dbDouble) myTab.Fields.Append myF 'Добавляем объект таблицу СТУДЕНТЫ к семейству таблиц базы данных myDb.TableDefs.Append myTab End Sub
3. Открыть созданную таблицу и внести пять записей во все поля (кроме поля Средний балл). 4. Создать процедуру, подсчитывающую средний балл всех студентов и заносящую рассчитанные значения в поле Средний балл в соответствии с приведенным примером:
Private Sub SB() Dim myDb As Database 'объектная переменная типа 'базы данных Dim myRec As Recordset 'объектная переменная типа ' набора записей Dim sb As Double 'переменная для вычисления ' среднего балла Dim i As Integer 'переменная цикла Dim max As Integer 'переменная для хранения чис- 'ла записей в таблице Set myDb = CurrentDb() 'Работаем с текущей базой 'данных 'Открываем набор записей таблицы СТУДЕНТЫ и присваива- 'ем ссылку на него объектной переменной myRec Set myRec = myDb.OpenRecordset("Студенты") i = О myRec.MoveLast 'Идем к последней записи таб- ' лицы max = myRec.RecordCount 'При этом RecordCount содер- 'жит число записей в 'таблице, которое нужно нам ' для вычисления 'среднего бала в каждой 1 строке таблицы myRec.MoveFirst 'Переходим к первой записи 'таблицы и вычисляем средний ' балл Do While i < max sb = (myRec!Предмет1 + myRec!Предмет2 + myReс!Предмет3 + myRec!Предмет4)/4 myRec.Edit 'Заносим значение среднего 'балла в одноименное поле myRec![Средний балл] =sb myRec.Update 'Для внесения данных в поля 'таблицы обязательно исполь- 'зуются команды Edit и 'Update. myRec.MoveNext 'Переходим к следующей запи- ' си таблицы и повторяем все i = i + 1 'пока не достигнем послед- 'ней записи. Loop 'Закрываем набор записей. myRec.Close End Sub
5. Создать форму, отображающую данные таблицы СТУДЕНТЫ и содержащую кнопку, запускающую процедуру расчета среднего балла. Контрольные вопросы 1. Дать определение макроса. Какими возможностями обладают макросы? 2. Дать определение модуля. Какими возможностями обладают модули? 3. Описать технологию создания процедур на VBA. 4. Описать технологию создания баз данных на VBA. 5. Описать технологию создания таблиц на VBA. 6. Описать технологию создания процедуры обработки событий на VBA. Лабораторная работа № 10Использование языка VBA для фильтрации данных в базе
|