Загальні відомості про програмування у програмі Access

Застосовується до
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Створюючи нову базу даних, зазвичай потрібно створити такі об'єкти бази даних, як таблиці, форми та звіти. У певний момент може знадобитися додати програмування для автоматизації процесів і підключення цих об'єктів. У цій статті описано засоби програмування в Access.

У цій статті

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

У програмі 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 код, лише якщо відомо, що база даних походить із надійного джерела. Створюючи базу даних, яку використовуватимуть інші користувачі, намагайтеся не додавати засоби програмування, які вимагають від користувача явної довіри до бази даних. Загальні методи уникнення цієї вимоги з'являться далі в цьому розділі.

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

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

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

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

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

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

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

    Примітка.

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

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

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

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

  • Використовуйте вбудовані функції або створіть власні. В Access є багато вбудованих функцій, наприклад IPmt, для яких обчислюється виплата відсотків. Ці функції можна використовувати для обчислень без створення складних виразів. Використовуючи VBA, можна також створити власні функції для виконання обчислень, які виходять за рамки можливостей виразу або замінюють складні вирази. Крім того, за допомогою створених у виразах функцій ви можете виконувати спільні операції над кількома об’єктами.
  • Створення або обробка об'єктів. У більшості випадків найпростіше створити та змінити об'єкт у режимі конструктора цього об'єкта. Однак у деяких випадках може виникнути потреба керувати визначенням об'єкта в коді. Використовуючи VBA, можна керувати всіма об'єктами в базі даних, а також самою базою даних.
  • Виконання дій на рівні системи. Ви можете виконати RunApp дію в макросі, щоб запустити іншу програму, наприклад Microsoft Excel, з Access, але за допомогою макросу не можна виконувати інші дії за межами Access. Використовуючи VBA, можна перевірити, чи існує файл на комп'ютері, використовувати автоматизацію або динамічний обмін даними (DDE) для обміну даними з іншими програмами на основі Microsoft Windows, наприклад Excel, і викликати функції в бібліотеках динамічного компонування Windows (DLLs).
  • По черзі можна керувати записами. За допомогою VBA цього набору записів можна виконувати по одному запису та виконувати операції з кожним записом. Навпаки, макроси одночасно працюють з цілими наборами записів.

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

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

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

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

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

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

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

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

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

    • Якщо потрібно відобразити текст, його можна змінити в полі поруч із параметром Текст.
    • Якщо потрібно відобразити зображення, майстер запропонує вибрати його в списку. Якщо потрібно вибрати інше зображення, установіть прапорець Показати всі зображення, щоб відкрити список усіх зображень для кнопок, доступних в Access, або натисніть кнопку Огляд і виберіть зображення, що зберігається в іншому розташуванні. Натисніть кнопку Далі.
  7. Введіть зрозуміле ім’я для кнопки. Цей крок необов'язковий, і це ім'я не відображається на кнопці. Однак варто ввести змістовне ім'я, щоб згодом мати посилання на кнопку, наприклад коли ви налаштуєте порядок переходу для елементів керування у формі, набагато простіше буде розрізнити кнопки. Наприклад, якщо кнопка закриє форму, її можна назвати cmdClose або CommandClose.

  8. Натисніть кнопку Готово. Access розташує кнопку на формі.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. Якщо вікно проекту не відображається в редакторі Visual Basic, у меню View (Подання) виберіть Project Explorer (Вікно проекту).
    2. Розгорніть дерево під назвою бази даних, у якій ви працюєте.
    3. У розділі Модулі двічі клацніть Converted Macro-<macro name> модуль. Редактор Visual Basic відкриє модуль.

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

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

  1. Занотуйте ім’я функції, яка відображається в редакторі Visual Basic. Наприклад, якщо перетворити макрос з іменем MyMacro, функція матиме MyMacro()ім'я .
  2. Закрийте редактор Visual Basic.
  3. В області переходів клацніть правою кнопкою миші форму або звіт, з яким потрібно пов'язати функцію, і виберіть конструктор.
  4. Клацніть елемент керування або розділ, з яким потрібно пов’язати функцію.
  5. Якщо аркуш властивостей ще не відображається, натисніть клавішу F4 , щоб відобразити його.
  6. На вкладці Подія аркуша властивостей клацніть поле властивості події, з яким потрібно пов’язати функцію.
  7. У полі властивості введіть знак рівності (=), а потім – ім'я функції, =MyMacro()наприклад . Обов’язково додайте дужки.
  8. Збережіть форму або звіт, натиснувши кнопку Зберегти на панелі швидкого доступу.
  9. В області переходів двічі клацніть форму або звіт і переконайтеся, що код працює належним чином.

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

Додаткові відомості

Створення макросів інтерфейсу

Запуск макросу Access за допомогою сполучення клавіш

Автоматизація подій запуску за допомогою макросу

Створення макросу, який запускається під час відкриття бази даних

Порядок подій для об’єктів бази даних

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