|
|||||||
Создание объектов баз данных средствами VBA
Время создания: 16.03.2019 23:43
Текстовые метки: VBA_Access
Раздел: Разные закладки - VBA - Access
Запись: xintrea/mytetra_db_adgaver_new/master/base/1483945907h9fa9j1mlw/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Средствами 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
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|