Основи програмування в Access

На початку роботи з новою базою даних ви зазвичай створюєте кілька її об’єктів, як-от таблиць, форм і звітів. Потім виникає потреба додати до бази даних програмовані можливості, щоб автоматизувати певні процеси та зв’язати між собою об’єкти бази даних. Ця стаття допоможе вам зорієнтуватися в інструментах програмування Access.

У цій статті

Що таке програмування

Вибір між макросами та кодом VBA

Виконання поширених завдань із програмування за допомогою майстра кнопок

Загальні відомості про макроси

Загальні відомості про код VBA

Перетворення макросів на код VBA

Що таке програмування

В Access програмування – це розширення функціональних можливостей бази даних за допомогою макросів Access або коду мовою Visual Basic for Applications (VBA). Припустімо, ви створили форму та звіт, і до форми потрібно додати кнопку, натисканням якої відкриватиметься звіт. У цьому випадку програмування означає створення макросу або процедури VBA і налаштування властивості події OnClick кнопки так, що після її натискання починається виконання макросу або процедури. Для запуску простої операції, як-от відкриття звіту, можна скористатися майстром кнопок або вимкнути майстер і запрограмувати дію самостійно.

Примітка.: У багатьох програмах Microsoft Office термін "макрос" означає код VBA. Це може заплутати користувачів Access, оскільки в Access термін "макрос" позначає іменовану колекцію дій макросів, яку ви можете створити за допомогою конструктора макросів. Дії макросів Access – це лише підмножина команд, доступних у VBA. Конструктор макросів має більш структурований інтерфейс, ніж редактор Visual Basic, завдяки чому можна додавати програмовані можливості до елементів керування та об’єктів без опанування мови VBA. Слід пам’ятати, що в статтях довідки Access макроси Access називаються макросами, тоді як код VBA називається VBA, кодом, функцією або процедурою. Код VBA використовується в модулях класів (які входять до складу окремих форм або звітів і зазвичай містять код лише для цих об’єктів) і в модулях (які не пов’язано з певними об’єктами та зазвичай містять "глобальний" код, призначений для всієї бази даних).

Об’єкти (наприклад, форми та звіти) і елементи керування (наприклад, кнопки й текстові поля) мають різні властивості подій, до яких можна додавати макроси або процедури. Кожна властивість події пов’язана з певною подією, як-от клацанням мишею, відкриттям форми або зміненням даних у текстовому полі. Ініціювати події також можуть фактори за межами Access, як-от події системи, або макроси чи процедури, додані до інших подій. Якщо додати численні макроси або процедури до кількох властивостей подій у багатьох об’єктах, база даних значно ускладниться. Проте здебільшого ви можете досягти потрібних результатів, створивши невелику кількість програм.

На початок сторінки

Вибір між макросами та кодом VBA

Рішення про використання макросів, VBA або обох варіантів перш за все визначається способом розгортання або розповсюдження бази даних. Наприклад, якщо база даних зберігається на комп’ютері та нею користуєтеся лише ви, більшість завдань із програмування можна виконати за допомогою коду VBA, якщо вам це зручно. Однак якщо ви плануєте розташувати базу даних на файловому сервері та надати до неї доступ іншим, краще не використовувати VBA із міркувань безпеки.

Приймаючи рішення про вибір між макросами або кодом VBA, необхідно взяти до уваги два фактори: потрібний рівень безпеки й бажану функціональність. Питанню безпеки слід приділити увагу, оскільки код VBA може знизити рівень захисту даних або пошкодити файли на комп’ютері. Коли ви працюєте з базами даних, створеними іншими користувачами, активуйте код VBA, лише якщо ви впевнені, що ці бази походять із надійного джерела. Створюючи базу даних, призначену для спільної роботи, намагайтесь уникати інструментів програмування, які вимагають від користувача позначити базу як надійну. Загальні рекомендації щодо цього наведено далі в цьому розділі.

Щоб подбати про безпеку бази даних, намагайтеся використовувати макроси, коли це можливо, а програмування мовою VBA – лише для операцій, які не можна виконати за допомогою дій макросів. Крім того, намагайтеся застосовувати лише такі дії макросів, для запуску яких не потрібно позначати базу даних як надійну. Завдяки такому обмеженому застосуванню дій макросів користувачі можуть бути впевнені, що база не містить код, який може пошкодити дані або інші файли на комп’ютері.

Зауваження щодо макросів

Починаючи з випуску 2010 року, Access містить багато нових дій макросів, які дають змогу створювати потужніші макроси, ніж у попередніх версіях цієї програми. Наприклад, тепер за допомогою дій макросів можна створювати й використовувати глобальні тимчасові змінні, а нові дії макросів для обробки помилок значно спрощують цю процедуру. У попередніх версіях Access ці функції доступні лише із застосуванням VBA. Крім того, ви можете вбудовувати макрос безпосередньо у властивість події об’єкта або елемента керування. Вбудований макрос стає частиною об’єкта або елемента керування та переміщується або копіюється з ним.

За допомогою макросів можна легко виконати низку завдань із програмування, як-от відкриття й закриття форм і виконання звітів. Ви можете швидко й легко зв’язати між собою створені об’єкти бази даних (форми, звіти тощо) завдяки простому синтаксису. Аргументи для кожної дії відображаються в конструкторі макросів.

Крім випадків, коли макроси застосовуються для підвищення рівня безпеки та спрощення роботи, їх потрібно використовувати для виконання наведених нижче завдань.

  • Призначення дії або набору дій для клавіші. Для цього потрібно створити групу макросів із назвою AutoKeys.

  • Виконання дії або послідовності дій під час першого відкриття бази даних. Для цього потрібно створити макрос із назвою AutoExec.

    Примітка.:  Макрос AutoExec виконується раніше будь-яких інших макросів або коду VBA, навіть якщо ви призначили форму запуску в діалоговому вікні Параметри Access і підключили макрос або код VBA до події OnOpen або OnLoad цієї форми.

Додаткову інформацію про створення макросів див. в розділі Загальні відомості про макроси.

Зауваження щодо VBA

Використовуйте код VBA замість макросів, якщо потрібно виконати будь-яку з наведених нижче дій.

  • Використання вбудованих функцій або створення власних.    Access включає багато вбудованих функцій, наприклад функцію IPmt, яка обчислює суму сплати відсотків. Ви можете використовувати ці вбудовані функції, не вдаючись до складних виразів. За допомогою коду VBA можна створювати власні функції для виконання обчислень, які перевищують можливості виразу, або для заміни складних виразів. Крім того, за допомогою створених у виразах функцій ви можете виконувати спільні операції над кількома об’єктами.

  • Створення та обробка об’єктів.    У більшості випадків найпростіше створювати та змінювати об’єкт у його режимі конструктора. Проте іноді може знадобитися змінити визначення об’єкта в коді. За допомогою VBA ви можете обробляти всі об’єкти в базі, а також саму базу.

  • Виконання дій на рівні системи.    Ви можете виконати в макросі дію Запуститизастосунок, щоб запустити з Access іншу програму (наприклад, Microsoft Excel), але можливості макросів за межами Access обмежені. VBA дає змогу перевіряти наявність певного файлу на комп’ютері, взаємодіяти з іншими програмами Microsoft для Windows (як-от Excel), використовуючи технологію Automation або динамічний обмін даними (DDE), а також викликати функції в бібліотеках динамічного компонування Windows (DLL).

  • Обробка записів по одному за раз.    За допомогою VBA ви можете переглядати записи в наборі по черзі та виконувати потрібні операції з кожним із них. Натомість макроси працюють одночасно з цілим набором записів.

На початок сторінки

Виконання поширених завдань із програмування за допомогою майстра кнопок

Якщо потрібно додати кнопку до форми, скористайтеся майстром кнопок, щоб почати роботу з програмування. За допомогою цього майстра можна створити кнопку, яка виконує певне завдання. У файлі Access (ACCDB) майстер створює макрос, який вбудовується у властивість OnClick кнопки. У файлі MDB або ADP майстер створює код VBA, оскільки в цих форматах файлів недоступні вбудовані макроси. У будь-якому випадку макрос або код VBA можна потім змінити або вдосконалити відповідно до своїх потреб.

  1. В області переходів клацніть правою кнопкою миші форму, до якої потрібно додати кнопку, і виберіть Конструктор.

  2. На вкладці Конструктор клацніть стрілку розкривного списку для відображення колекції Елементи керування та переконайтеся, що вибрано Застосувати майстри елементів керування.

  3. На вкладці Конструктор у колекції Елементи керування виберіть Кнопка.

  4. На бланку форми, клацніть місце, де потрібно розташувати кнопку.

    Запуститься майстер кнопок.

  5. На першій сторінці майстра в списку Категорії клацніть кожну категорію, щоб переглянути дії для кнопки, які можна запрограмувати за допомогою майстра. У списку Дії виберіть потрібну дію, а потім натисніть кнопку Далі.

  6. Установіть перемикач Текст або Зображення, щоб відобразити на кнопці відповідно текст чи зображення.

    • Якщо потрібно відобразити текст, його можна змінити в полі поруч із параметром Текст.

    • Якщо потрібно відобразити зображення, майстер запропонує вибрати його в списку. Якщо потрібно вибрати інше зображення, установіть прапорець Показати всі зображення, щоб відкрити список усіх зображень для кнопок, доступних в Access, або натисніть кнопку Огляд і виберіть зображення, що зберігається в іншому розташуванні.

      Натисніть кнопку Далі.

  7. Введіть зрозуміле ім’я для кнопки. Цей крок необов’язковий, адже ім’я на кнопці не відображається. Проте радимо ввести зрозуміле ім’я, щоб цю кнопку було легше відрізнити від інших, коли знадобиться звернутися до неї пізніше (наприклад, під час налаштування послідовності переходу для елементів керування у формі). Якщо кнопка закриває форму, її можна назвати на кшталт "кмдЗакрити" або "КомандаЗакрити".

  8. Натисніть кнопку Готово.

    Access розташує кнопку на формі.

  9. Якщо потрібно переглянути код, який створив майстер, виконайте такі необов’язкові дії:

    1. Якщо аркуш властивостей ще не відображається, натисніть клавішу F4.

    2. На аркуші властивостей перейдіть на вкладку Подія.

    3. У полі властивості Після клацання натисніть кнопку конструктора Зображення кнопки .

      Access запустить конструктор макросів і відобразить макрос, створений майстром. За потреби ви можете змінити макрос (докладні відомості про те, як це зробити, див. в розділі Загальні відомості про макроси). Коли все буде готово, на вкладці Конструктор у групі Закрити натисніть кнопку Закрити, щоб закрити конструктор макросів. Якщо Access запропонує зберегти зміни та оновити властивість, натисніть кнопку Так, щоб зберегти зміни, або Ні, щоб відхилити їх.

  10. На вкладці Конструктор у групі Подання натисніть кнопку Подання та виберіть Режим форми. Натисніть нову кнопку, щоб переконатися, що вона працює належним чином.

На початок сторінки

Загальні відомості про макроси

Макрос – це інструмент, за допомогою якого можна автоматизувати завдання та розширити можливості форм, звітів і елементів керування. Наприклад, коли ви додаєте кнопку до форми, ви зв’язуєте властивість події OnClick кнопки з макросом, що містить команди, які має виконувати кнопка щоразу після натискання.

Макроси Access – це ніби спрощена мова програмування, за допомогою якої ви створюєте код, складаючи список дій, які потрібно виконати. Під час створення макросу ви вибираєте дії з розкривного списку, а потім вводите потрібні відомості для кожної з них. Макроси допомагають розширити можливості форм, звітів і елементів керування без написання коду в модулі VBA. Макроси являють собою підмножину команд, доступних у VBA, і для більшості користувачів легше побудувати макрос, ніж написати код VBA.

Макроси створюються за допомогою конструктора макросів, який наведено на знімку екрана нижче.

Конструктор макросів Access 2010

Примітка.: Зверніть увагу, що в Access 2007 вигляд конструктора макросів відрізняється від того, який зображено на ілюстрації вище. В Access 2007 конструктор макросів складається з набору рядків і стовпців, які містять різні дії макросу.

Щоб відкрити конструктор макросів:

  • на вкладці Створення в групі Макроси та код натисніть кнопку Макрос.

На початок сторінки

Загальні відомості про код VBA

За допомогою VBA, як і макросів, можна автоматизувати програму Access і додати до неї інші можливості. Ви можете доповнити код VBA, скориставшись сторонніми елементами керування або розробивши власні функції й процедури для певних потреб.

Щоб швидко ознайомитися з програмуванням мовою VBA, можна спочатку створити макрос Access, а потім перетворити його на код VBA. Відповідні вказівки наведено в розділі Перетворення макросів на код VBA. При цьому створюється новий модуль VBA, який виконує ті самі операції, що й макрос. Крім того, відкривається редактор Visual Basic, у якому можна змінити процедуру. Під час роботи в редакторі Visual Basic можна отримати докладні відомості про будь-яке ключове слово, клацнувши його й натиснувши клавішу F1, щоб відкрити довідку для розробників Access. Ознайомившись із цією довідкою, ви зможете дізнатися про нові команди, які допоможуть виконати потрібні завдання з програмування.

На початок сторінки

Перетворення макросів на код VBA

В Access можна автоматично перетворювати макроси на модулі VBA або модулі класів. Ви можете перетворювати макроси, додані до форми або звіту, незалежно від того, чи вони існують як окремі об’єкти або вбудовані макроси. Крім того, ви можете перетворювати глобальні макроси, які не додано до певної форми або звіту.

Примітка.: Код Visual Basic for Applications (VBA) можна додати до веб-бази даних, однак його не можна запустити, поки цю базу відкрито в браузері. Якщо веб-база даних містить код VBA, перш ніж його запускати, потрібно відкрити цю базу в Access. Завдання з програмування у веб-базах даних слід виконувати за допомогою макросів Access.

Перетворення макросів, доданих до форми або звіту

Ця процедура перетворює на VBA будь-які макроси, на які посилається форма, звіт або будь-який із їхніх елементів керування (або макроси, які вбудовано в ці об’єкти), і додає код VBA до модуля класу форми або звіту. Модуль класу стає частиною форми або звіту та переміщується або копіюється з ними.

  1. В області переходів клацніть правою кнопкою миші форму або звіт і виберіть Конструктор.

  2. На вкладці Конструктор у групі Знаряддя натисніть кнопку Перетворити макроси форми на код Visual Basic або Перетворити макроси звіту на код Visual Basic.

  3. У діалоговому вікні Перетворити макроси форми або Перетворити макроси звіту вкажіть, чи потрібно додати код для обробки помилок до функцій, які створить Access. Крім того, якщо макрос містить примітки, виберіть, чи потрібно включати їх як примітки до функцій. Щоб продовжити, натисніть кнопку Перетворити.

    Якщо для форми або звіту модуль класу не існує, Access його створить і додасть до нього процедуру для кожного макросу, пов’язаного з формою або звітом. Крім того, Access змінить властивості події форми або звіту, щоб замість макросу запускалися нові процедури VBA.

  4. Щоб переглянути та змінити код VBA, виконайте такі дії:

    1. Коли форму або звіт відкрито в режимі конструктора, натисніть клавішу F4, щоб відобразити аркуш властивостей, якщо він ще не відображається.

    2. На вкладці Подія аркуша властивостей клацніть у будь-якому полі властивості, що містить фразу [Процедура події], а потім натисніть кнопку конструктора  Зображення кнопки . Щоб переглянути властивості події для певного елемента керування, виберіть елемент, клацнувши його. Щоб переглянути властивості події для всієї форми або звіту, у розкривному списку вгорі аркуша властивостей виберіть Форма або Звіт.

      Access відкриє редактор Visual Basic і відобразить процедуру події в модулі класу. Ви можете прокрутити вгору або вниз, щоб переглянути інші процедури цього модуля класу.

Перетворення глобальних макросів

  1. В області переходів клацніть правою кнопкою миші макрос, який потрібно перетворити, і виберіть Конструктор.

  2. На вкладці Конструктор у групі Знаряддя натисніть кнопку Перетворити макроси на Visual Basic.

  3. У діалоговому вікні Перетворити макрос позначте потрібні параметри й натисніть кнопку Перетворити.

    Access перетворить макрос і відкриє редактор Visual Basic.

  4. Щоб переглянути та змінити код VBA, виконайте такі дії:

    1. Якщо вікно проекту не відображається в редакторі Visual Basic, у меню View (Подання) виберіть Project Explorer (Вікно проекту).

    2. Розгорніть дерево під назвою бази даних, у якій ви працюєте.

    3. У папці Modules (Модулі) двічі клацніть модуль Перетворений макрос – (Ім’я_макросу).

      Редактор Visual Basic відкриє модуль.

Вкладення функції VBA у властивість події

Коли ви перетворюєте глобальний макрос на VBA, код VBA розташовується в стандартному модулі. На відміну від модуля класу, стандартний модуль не є частиною форми або звіту. Найімовірніше, ви захочете пов’язати функцію з властивістю події у формі, звіті або елементі керування, щоб код запускався саме тоді й там, де потрібно. Для цього можна скопіювати код VBA до модуля класу, а потім пов’язати його з властивістю події або створити спеціальний виклик стандартного модуля з властивості події за допомогою наведеної нижче процедури.

  1. Занотуйте ім’я функції, яка відображається в редакторі Visual Basic. Наприклад, якщо ви перетворили макрос із назвою "МійМакрос", функція матиме ім’я МійМакрос().

  2. Закрийте редактор Visual Basic.

  3. В області переходів клацніть правою кнопкою миші форму або звіт, який потрібно пов’язати з функцією, і виберіть Конструктор.

  4. Клацніть елемент керування або розділ, з яким потрібно пов’язати функцію.

  5. Якщо аркуш властивостей ще не відображається, натисніть клавішу F4.

  6. На вкладці Подія аркуша властивостей клацніть поле властивості події, з яким потрібно пов’язати функцію.

  7. У поле властивості введіть знак рівності (=), а після нього – ім’я функції, наприклад =МійМакрос() . Обов’язково додайте дужки.

  8. Збережіть форму або звіт, натиснувши кнопку Зберегти на панелі швидкого доступу.

  9. В області переходів двічі клацніть форму або звіт і переконайтеся, що код працює належним чином.

Тепер ви опанували основи додавання коду VBA до бази даних. У цій статті описано лише відомості елементарного рівня, які допоможуть почати роботу. Є безліч чудових довідників і онлайнових ресурсів, за допомогою яких ви можете покращити свої навички програмування.

На початок сторінки

Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×