Приводим данные в порядок с помощью Microsoft Access (часть8)
Microsoft Access предоставляет множество визуальных средств разработки приложения по работе с базой данных. Но рано или поздно возникает необходимость в более тонкой настройке отдельных ее частей и добавление нового функционала, который невозможно реализовать с помощью мастеров и конструкторов. Для этого Microsoft Access да и все программы из пакета MS Office могут расширять свой функционал с помощью встроенного языка программирования VBA (Visual Basic for Applications). Изучив основы языка VBA на одном из продуктов MS Office, в нашем случае это Access, его можно применять в других программах (Excel, Word, Power Point). Задачи автоматизации рутинных процессов не меняются долгое время. Не вдаваясь в новомодные течения, круг задач которые решает VBA будет востребован еще долго. Преимущества VBA в том, что он консервативен, но по прежнему востребован и не подвержен безумным обновлениям, что позволяет неискушенному пользователю спокойно и стабильно работать.
Создадим форму, которая всегда будет открываться при запуске нашей базы. Так называемое главное окно. На вкладке Создание нажмем Пустая форма.
Назовем ее main.
Далее Файл -> Параметры -> Текущая база данных, опция Форма просмотра, в выпадающем списке выберем форму main. Форма будет открываться при запуске приложения и с помощью нее можно организовать навигацию и доступ к другим объектам базы данных.
На вкладке Работа с базами данных нажмем на кнопку Visual Basic. Откроется окно редактора VBA. В редакторе мы будем писать код, который сможет обращаться ко всем нашим объектам (таблицы, формы, запросы, отчеты и т. п.) и принадлежащим им элементам, менять их свойства и поведение.
Минимальной структурной единицей программы на VBA является процедура (ее еще называют макросом). Процедура начинается со служебного слова Sub, далее следует имя процедуры (как правило отражает назначение процедуры), круглые скобки, заканчивается процедура служебной конструкцией End Sub. Внутри процедуры пишется код на языке VBA.
Sub MyFirstProcedure()
<Код на языке VBA>
End Sub
На панели инструментов нажмем Insert - > Module. Модуль это еще один объект нашей базы. В нем мы будем размещать наши процедуры, а затем вызывать их на исполнение. В окне кода модуля Module1 напишем следующее:
Sub MyFirstProcedure()
Debug.Print “Hello, world!”
End Sub
Убедимся что у нас открыто окно Immediate (View -> Immediate Window), оно необходимо для того, чтобы иметь возможность увидеть результаты выполнения программы в процессе ее отладки. На панели инструментов нажмем зленый треугольник (Run Sub), в окне Immediate увидим результат выполнения процедуры.
Теперь выведем наше приветствие на форму main. В режиме конструктора добавим текстовое поле и в окне свойств поля дадим ему имя txtHello.
С помощью VBA обратимся к этому полю из процедуры и поместим в него текст - Hello, world! Процедура будет иметь следующий вид:
Sub MyFirstProcedure()
Form_main.txtHello.Value = "Hello, world!"
End Sub
Запустим ее на исполнение и убедимся, что текстовое поле txtHello формы main получило значение - "Hello, world!"