
- •Часть 2.
- •8 Архитектура проекта
- •8.1 Введение (основные элементы проекта и их построение)
- •8.1.2 Этапы написания проекта
- •Установка (и удаление) элементов управления на лист Excel
- •Установка начальных значения свойств элементов управления
- •Установка порядка расположение элементов управления (установка одного элемента управления над другим)
- •Создание пользовательской формы
- •Создание модулей макросов проекта
- •Создание событийных процедур элементов управления, а так же событийных процедур родительских объектов
- •Быстрый переход в событийную процедуру элемента управления
- •8.1.3 Изменение свойств проекта
- •8.1.4 Установка и снятие защиты проекта
- •9 Доступность подпрограмм и полей модулей проектов
- •9.1 Введение
- •9.2 Надстройки проектов
- •9.2 Ссылка на другой проект
- •10 Отладка кода программы в vba редакторе
- •10.1 “Компиляция” проекта
- •10.2 Запуск подпрограмм, не имеющих входных параметров из редактора vba
- •10.3 Пошаговый запуск подпрограмм, не имеющих входных параметров
- •10.4 Непосредственный запуск формы из редактора vba
- •10.5 Точки останова и оператор Stop
- •10.6 Аварийное прерывание работы программы приложением Excel
- •10.7 Принудительная остановка и принудительное прерывание программы пользователем
- •10.8 Окно локальных переменных и Окно отладки
- •11 Справочная система vba
- •11.1 Переход к справочной системе
- •11.2 Список имен потомков, методов и свойств объектов в окне редактора модуля
- •11.3 Просмотр списка операторов vba в окне редактора модуля (просмотр библиотек)
- •11.4 Окно просмотра свойств, методов, потомков и родителей объектов
- •12 Дополнительная информация
- •12.1 Параметры работы редактора vba
- •12.2 Защита от макровирусов
- •12.3 Причины, по которым код vba проекта может не исполняться
- •Приложение 1 Задание 1 (автозаполнение пола)
- •Задание 2 (автозаполнение комментариев к числам)
- •Задание 3 (заучиватель иностранных слов)
- •Задание 4 (телефонная книжка с поиском)
- •Задание 5 (программирование связей таблиц Excel)
- •Задание 6 (защита служебных полей таблицы Excel)
- •Приложение 2 (Программирование через редактирование макроса) Введение
- •Запись макроса в книгу Excel
- •Запуск макроса из меню.
- •Быстрый переход в код макроса
- •Пример создание процедуры через макрос.
- •Некоторые замечания по запуску макроса из событийных процедур
- •Назначение управляющих клавиш для запуска готового макроса Назначение управляющих клавиш макросам через меню приложений
- •Программное назначение управляющих клавиш макросам
- •Приложение 3( Создание меню ) Введение
- •Типы меню приложений
- •Создание (и удаление) подпунктов главного меню через меню приложений Создание (и удаление) подпункта главного меню
- •Создание (и удаление) пункта меню к макросу
- •Удаление меню
- •Добавление пунктов в меню
- •Свойства и методы пунктов меню
- •Переключатель в пункте меню
- •Коды пиктограмм пункта меню
- •Односеансное контекстное меню
- •После выбора пункта ПервыйУровень
- •После выбора пункта ВторойУровень1 Назначение управляющих клавиш к пункту меню
- •Приложение 4 ( Программная обработка модулей vba ) Введение
- •Экспорт модуля проекта в файл
- •Импорт модуля проекта из файла
- •Импорт модуля через “организатор” (данный код только для Word приложения)
- •Создание свойств и методов пользовательского класса
- •Создание событий пользовательского класса
- •Приложение 6 (Ссылка на приложение ms Office)
- •Приложение 7 (связь с таблицами и запросами базы данных) Введение
- •Связь с базой данных через указатели
- •Непосредственная загрузка таблицы базы данных в Excel таблицу
- •Форма для интерактивной работы с записью таблицы базы данных
- •С записями таблицы базы данных
- •Браузер таблиц и запросов базы данных
- •Методы поиска объекта Recordset
- •Пример использования метода Seek
- •Пример использования методов Find
- •Приложение 8 (Обращение к api-функциям) Введение
- •Скрытие и отображение панели задач через api функции
- •Запуск ярлыка и исполняемых файлов через api функцию
- •Приложение 9 (Основные понятия визуального программирования на доступных примерах)
- •Яблоко1.Сплющить
- •8 Архитектура проекта 3
- •8.1 Введение (основные элементы проекта и их построение) 3
- •Приложение 3( Создание меню ) 64
- •Приложение 4 ( Программная обработка модулей vba ) 90
- •Приложение 5 (Создание модуля класса) 94
- •Приложение 6 (Ссылка на приложение ms Office) 108 Приложение 7 (связь с таблицами и запросами базы данных) 113
- •Часть 2
Браузер таблиц и запросов базы данных
В данном разделе мы хотим привести пример браузера таблиц и запросов базы данных. В данном браузере можно так же написать самому запрос на языке SQL в объекте TextBox1. Объекты ComboBox1 и ComboBox2 предназначены для выбора имен таблиц, и выбора текста запроса по его имени. Кнопка с надписью “OK SQL” предназначена для выполнения запроса, который записан в TextBox1. Объект флажок (CheckBox1) предназначен для скрытия и показа объекта ListBox1 в котором отображается копия таблицы базы данных, загруженная в активный лист приложения Excel. Через метод RowSource объекта ListBox1 производится загрузка данных с активного листа.
Форма браузера запускается из макроса проекта, через меню приложения Excel. Браузер выводит результат запроса в активный лист приложения Excel, и, в объект ListBox1.
Рис. 28 Окно браузера базы данных
‘Модуль формы проекта
Option Explicit
Dim j As Long
Dim db As Database
Dim tbl As TableDef
Dim qry As QueryDef
Dim r As Recordset
Const ИмяКниги = "Браузер базы данных.xls"
Const ИмяБазы = "C:\Мои документы\Курсовая2\Отделы.mdb"
Private Sub CheckBox1_Click()
ListBox1.Visible = CheckBox1.Value
If CheckBox1.Value = True Then
Me.Height = Me.Height + ListBox1.Height
Else
Me.Height = Me.Height - ListBox1.Height
End If
End Sub
Private Sub ComboBox1_Click()
TextBox1.Text = ComboBox1.Text
End Sub
Private Sub ComboBox2_Change()
Dim s As String
For Each qry In db.QueryDefs
If ComboBox2.Text = qry.Name Then
TextBox1.Text = qry.Sql
Exit Sub
End If
Next
End Sub
' Ok SQL
Private Sub CommandButton1_Click()
On Error GoTo Ошибка
Set r = db.OpenRecordset(TextBox1.Text)
db.Recordsets.Refresh
Cells.Clear
'загружаем записи таблицы базы данных в активный лист Excel начиная со 2 строки
Cells(2, 1).CopyFromRecordset r
'выводим имена полей базы данных в первую строку активного листа Excel
For j = 0 To r.Fields.Count - 1
Cells(1, j + 1).Value = r.Fields(j).Name
Next j
ListBox1.ColumnCount = r.Fields.Count
ListBox1.RowSource = "A1:" + _
Cells(r.RecordCount, r.Fields.Count).Address
Exit Sub
Ошибка:
MsgBox "Ошибка выполнения запроса"
End Sub
Private Sub UserForm_Initialize()
ActiveSheet.Cells.Clear
'Устанавливаем указатель на базу данных
Set db = OpenDatabase(ИмяБазы)
'Загружаем имена таблиц и запросов
ComboBox1.Clear
For Each tbl In db.TableDefs
If Left(tbl.Name, 4) <> "MSys" And _
Left(tbl.Name, 4) <> "USys" Then
ComboBox1.AddItem tbl.Name
End If
Next
ComboBox2.Clear
For Each qry In db.QueryDefs
If InStr(qry.Name, "~") = 0 Then
ComboBox2.AddItem qry.Name
End If
Next
ListBox1.Clear
TextBox1.Text = ""
ComboBox1.Value = ""
ComboBox2.Value = ""
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Unload Me
End Sub
Private Sub UserForm_Terminate()
On Error Resume Next
r.Close
db.Close
End Sub
‘Модуль макросов проекта
Sub ЗапускБраузера()
UserForm1.Show
End Sub