КАТЕГОРИИ: Архитектура-(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. Данные таблицы СТУДЕНТ
Ключевыми полями таблицы СТУДЕНТ являются поля: Номер группы, Номер студента. Таблица 2. Данные таблицы ГРУПП А
Ключевыми полями таблицы ГРУППА является поле: Номер группы. Таблица 3. Данные таблицы КАФЕДРА
Ключевыми полями таблицы КАФЕДРА является поле: Код кафедры. Таблица 4. Данные таблицы ПРЕПОДАВАТЕЛЬ
Ключевыми полями таблицы ПРЕПОДАВАТЕЛЬ является поле: Таб номер. Таблица 5. Данные таблицы ПРЕДМЕТ
Ключевыми полями таблицы ПРЕДМЕТ является поле: Код предмета.
Таблица 6. Данные таблицы ИЗУЧЕНИЕ
Ключевыми полями таблицы ИЗУЧЕНИЕ являются поля: Номер группы, Код предмета,Таб номер, Вид занятия.
Таблица 7. Данные таблицы УСПЕВАЕМОСТЬ
Ключевыми полями таблицы УСПЕВАЕМОСТЬ являются поля: Номер группы, Номер студента, Код предмета, Таб номер, Вид занятий Таблица 8. Данные таблицы ТОВАРЫ
Таблица 9. Данные таблицы ПОСТАВЩИКИ
Дата добавления: 2014-01-04; Просмотров: 509; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |