Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Создание формы. (Твип (twip) - единица измерения, используемая в Microsoft Access. Один твип равен 1/20 пункта или 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

Примечание. Для создания кнопок, например, кнопки "Поиск", которая запускает Макрос 1, в только что созданной форме, необходимо программу дополнить строками:

 

Set k1 = CreateControl(frm.Name, acCommandButton,,,, 1800, 600, 700, 300)

‘ Размеры и место кнопки в форме, к1 – объектная переменная

k1.Caption = "Поиск" ‘Надпись на кнопке

k1.OnClick = "Макрос1" ‘ При нажатии на кнопку выполняется "Макрос1"

Создание запроса. Требуетсясредствами 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. Создание и применение макросов.............................................................................26

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение

ТАБЛИЦЫ БАЗЫ ДАННЫХ УЧЕБНЫЙ ПРОЦЕСС

Таблица 1. Данные таблицы СТУДЕНТ

Номер группы Номер студента ФИО Год рождения Адрес   + Балл поступления
    Аристов Р.П.   Одесса 4,25
    Бондаренко С.А.   Одесса 4,5
    Борисова Е.И.   Николаев 4,25
    Макова Н.Е.   Херсон 4,75
    Боярская Н.П.   Херсон 4,5
    Федоров Д.К.   Николаев 4,25
    Сидоров И.Р.   Одесса 4,5
    Андреев А.П.   Измаил 4,25
    Петров П.Н.   Измаил 4,75
    Иванов К.К.   Николаев 4,5

Ключевыми полями таблицы СТУДЕНТ являются поля: Номер группы, Номер студента.

Таблица 2. Данные таблицы ГРУПП А

Номер группы Кол_во студентов Средний балл
    4,5
    4,4
    4,8
    4,5
    4,8
    3,9
     
    4,7
     

 

Ключевыми полями таблицы ГРУППА является поле: Номер группы.

Таблица 3. Данные таблицы КАФЕДРА

 

Код кафедры Название Телефон Зав кафедрой Фото
  Информатики 310-13-24 Игнатьев В.В.  
  Математики 310-43-98 Иванов И.И.  
  Истории 310-23-65 Смирнова И.Б.  
  Иностранного языка 310-97-43 Жданова А.Е.  
  Физкультуры 310-87-56 Плетнев В.А.  
  Философии 310-34-12 Бондаренко В.В.  

Ключевыми полями таблицы КАФЕДРА является поле: Код кафедры.

Таблица 4. Данные таблицы ПРЕПОДАВАТЕЛЬ

Таб номер ФИО Уч_степень Уч_звание Код кафедры
  Андреев А.П. д.т.н. профессор  
  Апухтин И.С. к.т.н. доцент  
  Глухов И.Л. к.т.н. доцент  
  Сеченов Ю.Б. к.т.н. доцент  
  Чернов В.Б. к.т.н. доцент  
  Блюмкина А.Т. д.ф.-н. профессор  
  Львова В.И.   ассистент  
  Шапошников И.Т. д.т.н. профессор  
  Новиков П.Н.   ассистент  
  Ильясов А.А. к.фил.н. доцент  
  Пустынцев Р.Т. к.ист.н. доцент  
  Романов И.П. к.ист.н. доцент  
  Цветков А.И. к.ист.н. доцент  
  Сорокина М.Ф. к.фил.н. доцент  
  Богомолов П.Р. к.фил.н. доцент  
  Лысова М.И. к.фил.н. доцент  
  Шаповалова М.Ф. к.фил.н. доцент  
  Кудряшова Г.М.   ассистент ассистент ассистент ассистент  
  Жигарева Н.К. к.пед.н. доцент  
  Егорова Н.Н.   ст.преп.  
  Ермолин Е.Н.   ассистент ассистент ассистент  
  Логинов А.М. к.фил.н. доцент  
  Яковлев К.В. к.фил.н. доцент  
  Раков А.В. к.фил.н. доцент  
  Соловьев С.И.   ассистент  

 

Ключевыми полями таблицы ПРЕПОДАВАТЕЛЬ является поле: Таб номер.

Таблица 5. Данные таблицы ПРЕДМЕТ

 

Код предмета Название Всего часов Лекции Практика Число семестров Программа
  Информатика          
  Математика          
  История          
  Иностранный яз.          
  Философия          
  Физкультура          

Ключевыми полями таблицы ПРЕДМЕТ является поле: Код предмета.

 

Таблица 6. Данные таблицы ИЗУЧЕНИЕ

 

Номер группы Код предмета Таб номер Вид занятия Часы Ср_балл
      лек    
      пр    
      лек    
      пр    
      лек    
      пр    
      пр    
      лек    
      пр    
      лек    
      лек    
      пр    
      лек    
      лек    
      пр    
      пр    
      пр    
      лек    
      пр    

 

Ключевыми полями таблицы ИЗУЧЕНИЕ являются поля: Номер группы, Код предмета,Таб номер, Вид занятия.

 

Таблица 7. Данные таблицы УСПЕВАЕМОСТЬ

 

Номер группы Номер студента Код предмета Таб номер Вид занятия Оценка
        лек  
        пр  
        лек  
        пр  
        лек  
        пр  
        лек  
        пр  

Ключевыми полями таблицы УСПЕВАЕМОСТЬ являются поля: Номер группы, Номер студента, Код предмета, Таб номер, Вид занятий

Таблица 8. Данные таблицы ТОВАРЫ

КодТовара Марка Описание товара КодПоставщика Цена На складе Стоимость товара
  Кофе "Добра кава" Молотый по 100 г   2,61р.   2 610,00р.
  Кофе "Nescafe Classic" Растворим. по 100 г   6,26р.   3 756,00р.
  Кофе "Арабика" В зернах 100 г   2,40р.   3 120,00р.
  Кофе "Галка" Растворим. по 50 г   2,44р.   1 366,40р.
  Кофе "Галка" Капучино по 10 г   3,78р.   945,00р.
  Кофе Maxima Молотый по 250 г   4,80р.   7 200,00р.
  Кофе "Віденська кава" В зернах по 100 г   1,94р.   1 396,80р.
  Чай Майский 200 г листовой   4,66р.   2 330,00р.
  Чай Dilmah 125 г кр. Лист   2,95р.   295,00р.

Таблица 9. Данные таблицы ПОСТАВЩИКИ

 

КодПоставщика ФирмаПоставщика Город Страна ДатаПоставки
  Чаеразвесочная фабрика Москва Россия 04.09.2006
  АТ "Галка" Львов Украина 10.08.2006
  Dilmah Штутгарт Германия 30.03.2005
  Nestle Франкфурт на Майне Германия 11.07.2007
  АТ "Свиточ" Львов Украина 12.08.2005

 

<== предыдущая лекция | следующая лекция ==>
Методы объекта Recordset | Теплообмен в нагревательных печах
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 509; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.066 сек.