- •62 Компьютерные информационные технологии: лабораторные работы
- •Лабораторная работа №1
- •Контрольные вопросы
- •Лабораторная работа № 2
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа №4 Создание новых таблиц в субд access. Цель работы: в среде субд access освоить следующие приемы:
- •Выполнение работы
- •Контрольные вопросы
- •Лабораторная работа №5 Создание запросов в субд access. Цель работы: в среде субд access освоить следующие приемы:
- •Теоретические положения
- •Выполнение работы
- •Контрольные вопросы
- •Выполнение работы
- •Создание запроса на удаление записей.
- •Лабораторная работа №7 Создание форм в субд access. Цель работы: научиться в среде субд access разрабатывать формы, освоить следующие приемы:
- •Выполнение работы
- •Контрольные вопросы
- •Выполнение работы
- •2.Создание суммарного отчета по сгруппированным данным с помощью мастера отчетов.
- •Контрольные вопросы
- •Лабораторная работа №9 Проектирование и создание базы данных в субд access из указанных атрибутов (полей).
- •Теоретические положения
- •Выполнение работы
- •Лабораторная работа №10 Проектирование и создание базы данных в субд access по своей предметной области.
- •Выполнение работы
- •Контрольные вопросы
- •Лабораторная работа №11 Разработка макросов в субд access. Создание стартовой кнопочной формы.
- •Теоретические положения
- •Выполнение работы
- •Лабораторная работа №12 Защита базы данных
- •Теоретические положения Защита на уровне пользователей
- •Лабораторная работа №13 Изучение объектов dao на примере разработки приложения.
- •Теоретические положения
Лабораторная работа №13 Изучение объектов dao на примере разработки приложения.
Цель работы: приобретение навыков разработки приложений с использованием объектов DAO
Теоретические положения
Объекты доступа к данным DAO (Data Access Objects) позволяют управлять структурой базы данных и содержащимися в ней данными из программ Visual Basic. Многие объекты DAO соответствуют объектам, которые можно видеть в базе данных — например, объект TableDef соответствует таблице Microsoft Access. Объект Field соответствует полю в таблице.
Большая часть свойств объектов DAO является свойствами DAO. Эти свойства определены в ядре базы данных Microsoft Jet и задаются тем же способом, как и в других приложениях, включающих ядро Jet. Некоторые свойства, которые можно задать для объектов DAO, определяются в Microsoft Access, а затем автоматически распознаются ядром базы данных Jet. Способ задания свойств объектов DAO зависит от того, где определено свойство, в ядре базы данных Jet или в Microsoft Access.
Объекты DAO представлены в следующей таблице
Коллекция |
Объект |
Connections |
Connection |
Containers |
Container |
Databases |
Database |
None |
DBEngine |
Documents |
Document |
Errors |
Error |
Fields |
Field |
Groups |
Group |
Indexes |
Index |
Parameters |
Parameter |
Properties |
Property |
QueryDefs |
QueryDef |
Recordsets |
Recordset |
Relations |
Relation |
TableDefs |
TableDef |
Users |
User |
Workspaces |
Workspace |
Порядок работы при объектном доступе к данным
Создать рабочую область (объект Workspace)
Открыть базу данных (объект Database)
Создать набор записей (объект Recordset)
Выполнить непосредственную работу с конкретными записями и полями
Выполнение работы
Создать базу данных в Microsoft Access с информацией о студентах, состоящую из одной таблицы ПервыйКурс. База данных находится в файле студенты.mdb. Таблица содержит четыре поля: Фамилия, Группа, Предмет и Оценка. Способ создания таблицы выбрать самостоятельно.
Разработать приложение в Microsoft Excel в редакторе VBA, использующее данные из базы данных студенты. Приложение состоит из формы, изображенной на рисунке и программного кода, приведенных ниже. В приложении будут использованы объекты DAO. Поэтому нужно будет подключить ссылку на библиотеку DAO 3.5 (DAO 3.6). Для этого в редакторе VBA необходимо выбрать команду Сервис, Ссылки (Tools, References) и в появившемся диалоговом окне Ссылки (References) установить флажок напротив элемента Microsoft DAO 3.5 Object Labrary.
Option Explicit
'
'
Dim РабочаяОбласть As Workspace
Dim БазаДанных As Database
Dim Запись As Recordset
Dim ЗаписьДубль As Recordset
Dim Фамилия As String
Dim Критерий As String
Dim Закладка As Variant
Private Sub CommandButton1_Click()
'
'Найти запись по фамилии
'
'Запоминается на закладке текущая запись
'
Закладка = Запись.bookmark
'
'Считывается фамилия из поля фамилия, на её основе
'создаётся критерий поиска и ищется первая запись с
'подобной фамилией
'
Фамилия = Trim(TextBox1.Text)
Критерий = "(Фамилия)='" & Фамилия & "'"
Запись.FindFirst Критерий
'Если запись с указанной фамилией найдена ,то она
'отображается в диологовом окне.
'Если запись не найдена, то отображается сообщение и
'при помощи закладки происходит возврат записи, с
'которой был начат поиск.
'
If Запись.NoMatch = False Then
ПоказатьЗапись
Else
MsgBox "Запись не найдена", vbInformation, "Студенты"
Запись.bookmark = Закладка
ПоказатьЗапись
End If
End Sub
Private Sub CommandButton10_Click()
'
'Переход к последней записи
'
Запись.MoveLast
ПоказатьЗапись
End Sub
'
Private Sub CommandButton2_Click()
'
'Найти следующую запись по фамилии
'
Закладка = Запись.bookmark
Фамилия = Trim(TextBox1.Text)
Критерий = "[Фамилия]='" & Фамилия & "'"
Запись.FindNext Критерий
'
If Запись.NoMatch = False Then
ПоказательЗапись
Else
MsgBox "Больше таких записей нет", vbInformation, "Студенты"
Запись.bookmark = Закладка
ПоказатьЗапись
End If
End Sub
'
Private Sub CommandButton3_Click()
'
'Удаление записи
'
With Запись
.Delete
.MoveNext
End With
ПоказатьЗапись
End Sub
'
Private Sub CommandButton4_Click()
'
'Добавление записи
'
With Запись
.AddNew
.Fields("Фамилия").Value = TextBox1.Text
.Fields("Группа").Value = TextBox2.Text
.Fields("Предмет").Value = TextBox3.Text
.Fields("Оценка").Value = TextBox4.Text
.Update
End With
'
Exit Sub
'
End Sub
Private Sub CommandButton5_Click()
'
'Редактирование записи
'
With Запись
.Edit
.Fields("Фамилия").Value = TextBox1.Text
.Fields("Группа").Value = TextBox2.Text
.Fields("Предмет").Value = TextBox3.Text
.Fields("Оценка").Value = TextBox4.Text
.Update
End With
End Sub
'
Private Sub CommandButton6_Click()
'
'Закрытие записи,базы данных и окна
'
Запись.Close
БазаДанных.Close
РабочаяОбласть.Close
UserForm1.Hide
End Sub
'
Private Sub CommandButton7_Click()
'
'Переход к первой записи
'
Запись.MoveFirst
ПоказатьЗапись
End Sub
'
Private Sub CommandButton8_Click()
'
'Переход к предыдущей записи
'
Запись.MovePrevious
'
'Если достигнута первая запись,то отображается сообщение
'
If Запись.BOF = True Then
Запись.MoveFirst
MsqBox "Первая запись", vbInformation, "Студенты"
End If
ПоказатьЗапись
End Sub
Private Sub CommandButton9_Click()
'
'Переход к последующей записи
'
Запись.MoveNext
'
'Если достигнута последняя запись,то отображается сообщение
'
If Запись.EOF = True Then
Запись.MoveLast
MsgBox "Последняя запись", vbInformation, "Студенты"
End If
ПоказатьЗапись
End Sub
'
Private Sub OptionButton1_Click()
'
'Отображение данных только о хорошистах и отличниках
'
'Создание копии записи
'
Set ЗаписьДубль = Запись.Clone
'
'фильтрация Записей по критериям
'
Запись.Filter = "[Оценка]>=4"
'
'Создание отфильтрованной записи
'
Set Запись = Запись.OpenRecordset()
If Запись.RecordCount > 0 Then
'
'Если отфильтрованная запись существует, то она отображается в диалоговом окне
'
Показать Запись
Else
'
'Если отфильтрованной записи нет, то отображается соответствующее
'сообщение, востанавливается первоночальный объект Recordset
'и выбирается переключатель Все
MsgBox "Таких студентов нет", vbInformation, "Студенты"
Set Запись = ЗаписьДубль.Clone
Set Запись = Запись.OpenRecordset()
OptionButton2.Value = True
End If
End Sub
'
Private Sub OptionButton2_Click()
'
'Отображение всех студентов
'
Запись = Запись.Clone
Set Запись = ЗаписьДубль.OpenRecordset()
ЗаписьДубль.Close
Показать Запись
End Sub
'
'
Private Sub UserForm_Initilaze()
'
'Создание рабочей области
'
SetРабочая область = CreteWorkspace(Name:="", UserName:="admin", Password:="", UseType:=dbUseJet)
'
'Открытие базы данных студентов.mdb
'
Set БазаДанных = РабочаяОбласть.OpenDatabase(Name:="c:\My_DOC\студенты.mdb", Options:=True)
'
'Cоздание записей
'
Set Запись = БазаДанных.OpenRecordset("ПервыйКурс", dbOpenDynaset)
'
'Принудительное перемещение на последнюю запись для того,
'чтобы определить число записей.
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
'
'Создание рабочей области
'
Set РабочаяОбласть = CreateWorkspace(Name:="", UserName:="admin", Password:="", UseType:=dbUseJet)
'
'Открытие базы данных студентов.mdb
'
Set БазаДанных = РабочаяОбласть.OpenDatabase(Name:="c:\Мои документы\студенты.mdb", Options:=True)
'
'Cоздание записей
'
Set Запись = БазаДанных.OpenRecordset("ПервыйКурс", dbOpenDynaset)
'
'Принудительное перемещение на последнюю запись для того,
'чтобы определить число записей.
Запись.MoveLast
Label5.Caption = "Всего записей" & CStr(Запись.RecordCount)
Запись.MoveFirst
ПоказатьЗапись
With UserForm1
.Caption=”Студенты первого курса”
.OptionButton2.Value=True
End With
End Sub
Sub ПоказатьЗапись()
‘ Процедура вывода записи в поля диалогового окна
‘
TextBox1.Text=Запись.Fields(“Фамилия”).Value
TextBox2.Text=Запись.Fields(“Группа”).Value
TextBox3.Text=Запись.Fields(“Предмет”).Value
TextBox4.Text=Запись.Fields(“Оценка”) .Value
End Sub
Проверить работу приложения, добавляя, удаляя, редактируя записи и просмотреть базу данных студенты в Access после работы с приложением. В случае соответствующих изменений в базе данных можно судить о верной работе приложения и о правильном использовании объектов DAO.
Найти в программном коде приложения конструкции, соответствующие ключевым пунктам работы с DAO.
Оформить отчет, содержащий выше названные конструкции согласно порядку работы с объектами DAO.
Контрольные вопросы.
Назовите известные вам объекты DAO. Для чего они предназначены?
Назвать конструкции VBA для работы с этими объектами (в отчете)