Основи програмування VBA
Програмування VBA подій об'єктів в формах і звітах
Крім колекцій AllForms і AllReports в БД Access входять колекції Forms і Reports. У колекції Forms і Reports об'єднуються всі форми і звіти, які в даний момент відкриті (завантажені в оперативну пам'ять). Ці колекції входять в об'єкт Application додатки Access. Об'єкт Application знаходиться на вершині ієрархії об'єктної моделі Access.
У процедурі MySt () зв'язок об'єктної змінної з екземпляром об'єкта розірвана, так як об'єктної змінної встановлено значення Nothing. Для даної процедури пов'язувати змінну з об'єктом необов'язково, але змінну можна пов'язати з об'єктом Form, наприклад,
Set frm = CurrentProject.AllForms (Form).
Необхідно відзначити, що форми і звіти БД Access кардинально відрізняються від форм і звітів Word і Excel, які створюються і відкриваються програмно. Форми і звіти в Access створюються з вікна БД засобами (майстрами і конструкторами) візуального проектування форм і звітів. Форми створюються з набору окремих елементів управління, вони легко поміщаються на форму в режимі конструктора.
При необхідності форми, звіти і елементи управління для форм в БД Access можна створювати і програмним способом. Для цього треба скористатися методом CreateControl об'єкта Application. Але найчастіше програми на мові Visual Basic (модулі) створюють для автоматизації дій над об'єктами (кнопками, текстовими полями, перемикачами і т.д.) в формах і звітах.
Для програмування форм і звітів Access використовується візуальне середовище, яка заснована на подіях об'єктів. Процедури обробки подій зазвичай зберігаються в модулях форм. Крім того, програмування може застосовуватися для зміни властивостей форм і звітів, якщо вони активні, тобто відкриті.
Форми і звіти БД Access зазвичай відкриваються вручну з вікна бази даних в режимі макета або конструктора. Але якщо потрібно відкрити форму програмним способом, то доцільно використовувати метод OpenForm об'єкта DoCmd. Об'єкт DoCmd призначений для запуску макросу з процедури на мові Visual Basic.
Об'єкт DoCmd дозволяє виконувати макроси (дії або макродействія) за допомогою процедури на VB. Інструкція DoCmd має такий вигляд: DoCmdмакрокоманда аргументи. Якщо, наприклад, необхідно відкрити форму "Студенти" в табличному вигляді, то можна використовувати метод OpenForm об'єкта DoCmd зі значенням аргументу acFormDS (рисунок 3).