Dim rs As DAO.Recordset

Set db = CurrentDb

Set rs = db.OpenRecordset("Товары")

With rs

.MoveFirst

Me![Стоимость кофе] = 0

Do While .EOF = False

If .Fields("Марка") Like "Кофе*" Then Me![“Стоимость кофе”] = _

Me![“Стоимость кофе”] + .Fields("Стоимость товара")

.MoveNext

Loop

End Wtth

End Sub

 

Рис. 2.5. Форма “Товары”

Пример 2. Найти и вывести на экран номер группы с максимальным количеством студентов и средним баллом в группе более 4,7 в таблице "Группа".

Private Sub Поиск_Номер_Группы()

Dim db As Database

Dim rs As DAO.Recordset, max As Single, n As Variant

Set db = CurrentDb

Set rs = db.OpenRecordset("ГРУППА")

With rs

.MoveFirst

max = .Fields(1)

.MoveNext

Do While .EOF = False

If .Fields(1) > max And .Fields(2) > 4.7 Then max = .Fields(1): n = .Bookmark

.MoveNext

Loop

.Bookmark = n

MsgBox "Количество студентов - " & max & Chr(13) & "Номер группы - " & _

.Fields(0)

End With

End Sub

Пример 3.Используя библиотеку ADO в окне модуля создать процедуру для заполнения данными поле “Среднее” таблицы “Урожайность” (рис. 2.6).

 

Рис.2.6. Структура таблицы “Урожайность”

Public Sub Расчет_ADO()

Dim connection As New ADODB.connection 'Если база днных текущая, то

'эту строку можно не писать

'Если базу данных нужно открыть на диске, то после этой строки нужно писать

'Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0";Data Sourse=путь к файлу"

Dim rs As New ADODB.Recordset

Dim s As Double, i As Integer, n As Long

With rs

.Open "Урожайность", CurrentProject.connection, adOpenKeyset, adLockOptimistic

.MoveFirst

Do While .EOF = False

s = 0: n = 0

For i = 1 To .Fields.Count - 2

s = s + .Fields(i): n = n + 1

Next i

s = s / n

.Fields(5) = s

.MoveNext

Loop

End With

End Sub

2.11. Создание объектов баз данных средствами VBA

Средствами VBA в программном режиме можно создавать не только объекты Access: таблицы, формы, запросы, но и такие элементы управления, как Кнопки, Надпись и др., что позволяет существенно повысить уровень автоматизации работы приложения. Ниже даны примеры создания некоторых объектов и элементов управления, приведены программы. По тексту программ даны необходимые пояснения.

Создание таблицы.Пусть, требуется создать в текущей базе данных таблицу Elise со следующими полями: Код, Фамилия вкладчика, Домашний адрес, Сумма вклада, Срок заключения договора, мес. Для решения данной задачи необходимо:

- в процедуре создать объектные переменные db, tb типа Database, TableDef и f1, f2, f3, f4 типа Field, предназначенные для хранения ссылок на соответствующие объекты базы данных;

- для создания нового объекта TableDef – таблицы с именем Elise нужно применить метод CreateTableDef к объектной переменной db. Для создания новых объектов Field – полей таблицы, нужно применить метод CreateField к объектным переменным f1, f2, f3, f4;

- для добавления этих полей в семейство Fields, входящих в объект TableDef нужно использовать метод Append;

- для добавления таблицы – объекта TableDef в семейство TableDefs нужно использовать метод Append;

Процедура решения этой задачи с использованием библиотеки DAO приведена ниже

 

Public Sub Создание_таблицы()

‘ Описание переменных

Dim db As Database

Dim tb As TableDef

Dim f1, f2, f3, f4, f5 As field

Set db = CurrentDb

‘Создание таблицы и ее полей

Set tb = db.CreateTableDef("Elise")

Set f1 = tb.CreateField("Код", dbInteger)

Set f2 = tb.CreateField("Фамилия вкладчика", dbText)

Set f3 = tb.CreateField("Домашний адрес", dbText)

Set f4 = tb.CreateField("Сумма вклада", dbCurrency)

Set f5 = tb.CreateField("Срок заключения договора, мес", dbInteger)

‘Добавление полей в таблицу

tb.Fields.Append f1

tb.Fields.Append f2

tb.Fields.Append f3

tb.Fields.Append f4

tb.Fields.Append f5

‘Добавление таблицы в БД

db.TableDefs.Append tb

End Sub

Создание формы.При создании форм за единицу измерениявMicrosoft Accessберут Твип (twip).Один твип равен 1/1440 дюйма. В одном сантиметре содержится 567 твипов.

Пусть требуетсясредствами VBA создать форму на основе таблицы КАФЕДРА только без фото. Процедура решения этой задачи с использованием библиотеки DAO приведена ниже

Public Sub Создание_формы()

Dim frm As Form 'Определение объектной переменной для формы

Set frm = CreateForm 'Создание новой формы и ссылки на переменную

frm.RecordSource = "КАФЕДРА" 'Источник данных в форме

'Определение объектных переменных для элементов управления

Dim c1, c2, c3, c4, t1, t2, t3, t4, n1 As Control

frm.Caption = "КАФЕДРАVBA" ' Имя файла

'Создание элементов управления типа надпись

Set t1 = CreateControl(frm.Name, acLabel, , , , 100, 1000, 1300, 200)

t1.Caption = "Код кафедры:"

Set t2 = CreateControl(frm.Name, acLabel, , , , 100, 1300, 1300, 200)

t2.Caption = "Название:"

Set t3 = CreateControl(frm.Name, acLabel, , , , 100, 1600, 1300, 200)

t3.Caption = "Телефон:"

Set t4 = CreateControl(frm.Name, acLabel, , , , 100, 1900, 1300, 200)

t4.Caption = "Зав кафедрой:"

'Создание элементов управления типа поле

Set c1 = CreateControl(frm.Name, acTextBox, , , , 1500, 1000, 1300, 200)

c1.ControlSource = "Код кафедры"

Set c2 = CreateControl(frm.Name, acTextBox, , , , 1500, 1300, 1300, 200)

c2.ControlSource = "Название"

Set c3 = CreateControl(frm.Name, acTextBox, , , , 1500, 1600, 1300, 200)

c3.ControlSource = "Телефон"

Set c4 = CreateControl(frm.Name, acTextBox, , , , 1500, 1900, 1300, 200)

c4.ControlSource = "Зав кафедрой"

Set n1 = CreateControl(frm.Name, acLabel, , , , 1400, 300, 700, 200)

n1.Caption = "КАФЕДРА" 'Имя формы

DoCmd.Restore

End Sub

Результат работы программы представлен на рис.2.7.

 

Рис.2.7. Форма, созданная средствами VBA

Создание запроса.Требуетсясредствами VBA создать запрос МАКС по таблице ТОВАРЫ для выборки записей в которых Стоимость товара больше определенной нижней границы. Граница вводится в окно диалога. Процедура решения этой задачи с использованием библиотеки DAO приведена ниже

Public Sub Создание_запроса_VBA()

Dim db As Database

Dim q As QueryDef

Set db = CurrentDb

' Создается запрос с именем Макс

Set q = db.CreateQueryDef("Макс", "Select *" _

& "from Товары where [Стоимость товара] >” & _

“ [Введите нижнюю границу стоимости товара];")

End Sub

3. СПИСОК ЛИТЕРАТУРЫ

1. Джон Вейскас. Эффективная работа с Microsoft Access 7.0 для Windows .- С-Пб.:Питер, 1997.

2. М.Хэлворсян, М.Янг. Эффективная работа с Microsoft Office 97.- С-Пб.:Питер, 1997.

3. МакФедризг Пол и др. Microsoft Office 97. Энциклопедия пользователя: пер. с англ.-К.: Издательство "ДиаСофт", 1998.

4. К. Гетц, М. Джилберт. Программирование в Microsoft Office. Полное руководство по VBA: пер. с англ.-К.: Издательская группа BHV, 1999.

5. Киммел, Пол. Освой самостоятельно программирование для Microsoft Access 2000 за 24 часа.: пер. с англ.-М.:"Вильямс". 2000.

6. Король В.И. Visual Basic 6.0, Visual Basic for Application 6.0. Язык программирования. Справочник с примерами.-М.: КУДРИЦ-ОБРАЗ, 2000.

7. Каммингс С. VBA для “чайников”: Пер. с англ.: М.:”Вильямс”, 2000.

8. Кен Гетц, Майк Джилберт. Программирование в Microsoft Office: пер. с англ.-К:”Ирина”. BHV, 2000.

9. С.Браун. Visial Basic: учебный курс. – СПб.: Питер, 2001.

10. Ю. Бекаревич, Н. Пушкина. Microsoft Access 2002. –СПб.: БХВ-Петербург, 2003.

 

4. СОДЕРЖАНИЕ

 

1. ОСНОВЫ ТЕХНОЛОГИИ MICROSOFT ACCESS………………………………………2

1.1.Введение………………………………………………………………………………. 2

1.2. Что такое базы даннях?................................................................................................2

1.3. Архитектура Microsoft Access……………………………………………………….2

1.4. Создание базы даннях.Создание таблиц. Связывание таблиц.................................3

1.5. Изменение проекта базы даннях.................................................................................9

1.6. Сздание запросов.......................................................................................................11

1.7. Создание и редактирование форм............................................................................ 17

1.8. Создание и редактирование отчетов.........................................................................21

1.9. Создание и применение макросов.............................................................................25

2. РАЗРАБОТКА ПРИЛОЖЕНИЯ ПОЛЬЗОВАТЕЛЯ С ИСПОЛЬЗОВАНИЕМ VBA ...28

2.1. Введение.....................................................................................................................28

2.2. Модули Access……………………………………………………………………...28

2.3. Классы и семейства...................................................................................................29

2.4. Объектные модули Microsoft Office………………………………………………..29

2.5. Модели объектов Microsoft………………………………………………………...29

2.6. Модели объектов доступа к данням DAO и ADO………………………………..29

2.7. Ссылки на объекты.....................................................................................................30

2.8. Свойства и методы объектов……………………………………………………….30

2.9. Применение метода DoCmd в программах VBA ....................................................31

2.10.Работа с объектами доступа к данным.....................................................................33

2.11. Создание объектов баз данных средствами VBA ..................................................37

3. СПИСОК ЛИТЕРАТУРЫ..................................................................................................39








Дата добавления: 2015-08-26; просмотров: 838;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.024 сек.