- •051.23 01 02.081427 .10.81-01
- •Содержание
- •Введение
- •1 Анализ предметной области.
- •2 Использование интерфейсных средств субд ms Access 2003
- •2.1 Проектирование схемы данных
- •2.2 Создание средствами qbe запросов с условиями, итоговых запросов, запросов с вычисляемыми полями, запросов на обновление, удаление, добавление записей, перекрестных запросов.
- •Создание составного отчёта, содержащего диаграмму. Группировка и сортировка в отчётах.
- •2.4 Создание иерархической формы по двум связанным таблицам.
- •2.5 Создание страниц доступа к данным
- •3 Использование языка программирования vba
- •3.1 Создание макросов
- •3.2 Разработка программы на vba
- •3.2.1 Создание базы данных и таблиц в объектных моделях dao и ado. Изменение структуры таблиц программными средствами.
- •3.2.1.1 Создание временной таблицы в объектных моделях dao.
- •3.2.1.2 Создание временной таблицы в объектной модели ado.
- •3.2.1.3 Удаление таблиц в объектных моделях dao
- •3.2.1.4 Удаление таблиц в объектных моделях ado
- •3.2.2 Создание, изменение и выполнение запросов программными средствами.
- •3.3 Разработка функций на vba
- •If CurrentProject.AllForms(strFrm).IsLoaded Then
- •Заключение
3.2.1.2 Создание временной таблицы в объектной модели ado.
Private Sub Таблица_ADO()
' Создание таблицы средствами ADO
'Объявляем объектные переменные Connection и Catalog для связи данных
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
'Устанавливаем ссылку на текущую базу данных, используя объект connection ADODB
Set cnn = CurrentProject.Connection
'присваиваем объекту cat наше соединение
cat.ActiveConnection = cnn
'создаем таблицу
Dim Tabl As New Table
Tabl.Name = "Таблица ADO"
'Добавляем несколько полей в семейство Columns
With Tabl
.Columns.Append "Фамилия", adVarWChar
.Columns.Append "Имя", adVarWChar
.Columns.Append "Отчество", adVarWChar
.Columns.Append "Редакция", adVarWChar
End With
On Error GoTo err
'добавлем таблицу в семейство Tables
cat.Tables.Append Tabl
'Обновляем количество объектов семейства Tables
cat.Tables.Refresh
err:
MsgBox "Таблица создана", 0, "результат"
'закрываем соединение
Set cat.ActiveConnection = Nothing
'освобождаем переменную
Set cat = Nothing
End Sub
Результат выполнения программы представлен на рисунке 40.
Рисунок 40 - Временная таблица
3.2.1.3 Удаление таблиц в объектных моделях dao
Private Sub Удаленеи_DAO()
'Удаление таблицы средствами DAO
Dim db As Database
'Устанавливаем ссылку на текущую базу данных
Set db = CurrentDb
db.TableDefs.Delete "Таблица DAO"
db.TableDefs.Refresh
'Освобождаем объектную переменную
Set db = Nothing
End Sub
3.2.1.4 Удаление таблиц в объектных моделях ado
Private Sub Удаление_ADO()
'Удаление таблицы средствами ADO
'Объявляем объектные переменные Connection и Catalog для связи данных
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
'Устанавливаем ссылку на текущую базу данных, используя объект connection ADODB
Set cnn = CurrentProject.Connection
'присваиваем объекту cat наше соединение
cat.ActiveConnection = cnn
On Error GoTo err
'удаляем временную таблицу
cat.Tables.Delete ("Таблица ADO")
'закрываем соединение
Set cat.ActiveConnection = Nothing
'освобождаем переменную
Set cat = Nothing
GoTo ends
err:
ends:
MsgBox "Таблица удалена", 0, "результат"
End Sub
3.2.2 Создание, изменение и выполнение запросов программными средствами.
Создадим с помощью объекта DAOзапрос на выборку. Условием отбора является Зарплата >=1000000 (рисунок 41).
Private Sub Запрос_Зарплата_больше_1000000()
Dim db As Database, qd As QueryDef, rs As DAO.Recordset
Dim msg, title As String
Set db = CurrentDb
'создаем новый запрос и сохраняем его в базе данных
Set qd = db.CreateQueryDef("Запрос(VBA)")
qd.SQL = "SELECT Табельный_номер, Фамилия, FROM [Зарплата] -
WHERE ([Зарплата].[Зарплата])>1000000 "
'создаем набор записей на базе нового запроса
Set rs = qd.OpenRecordset(dbOpenDynaset)
Set rs = Nothing
msg = "Новый ЗАПРОС создан"
title = "Внимание"
MsgBox msg, , title
DoCmd.OpenQuery "Запрос(VBA)"
End Sub
Рисунок 41 - запрос, созданный программными средствами