Не знаєтеся на програмуванні Access? Вам сюди

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

У цій статті

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

Що краще — макроси або код VBA?

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

Про макроси

Про код VBA

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

Як користуватися довідковою системою

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

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

Примітка : У багатьох програмах Microsoft Office термін «макрос» використовується для позначення коду VBA. Проте користувачам Access не слід керуватися цим правилом, оскільки в Access термін «макрос» означає іменоване зібрання макрокоманд, яке можна скласти за допомогою побудовника макросів. Макрокоманди Access є лише підмножиною команд, доступних у VBA. Побудовник макросів відрізняється більш структурованим інтерфейсом, ніж редактор Visual Basic, завдяки чому можна програмувати елементи керування та об'єкти, не знаючи мови VBA. Ви маєте пам'ятати, що у статтях довідки Access макроси Access називаються просто «макросами». Аналогічно, код VBA позначається термінами «VBA», «код», «функція» або «процедура». Код VBA міститься в модулях класів (які, в свою чергу, є частиною окремих форм або звітів і звичайно містять код лише для цих об'єктів) і в модулях (які не пов'язуються з конкретними об'єктами та звичайно містять «глобальний» код, що може використовуватися в усіх частинах бази даних).

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

Вгорі сторінки

Що краще — макроси або код VBA?

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

Додаткові відомості про ввімкнення або заборону потенційно небезпечного вмісту можна знайти у статті Увімкнення й вимкнення макросів у документах Office (як зазначено на початку цієї статті, у більшості інших програм Microsoft Office під терміном «макрос» розуміють код VBA, тому не слід плутати цей термін із макросами Access).

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

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

Додаючи програмні засоби до об'єкта або елемента керування, рекомендовано користуватися таким порядком пріоритетів:

  1. Макрос, усі команди якого для свого виконання не потребують надання базі даних статусу надійної.

  2. Макрос, деякі команди якого для свого виконання потребують надання базі даних статусу надійної.

  3. Процедура VBA.

Створюючи макрос, можна вибрати один із двох списків команд: або коротший список, команди в якому не потребують надання базі даних статусу надійної для свого виконання, або довший список усіх доступних макрокоманд. Цей список відображається, якщо натиснути в побудовнику макросів кнопку Show All Actions (Показати всі команди). Ця кнопка такожвідображає повний список аргументів макрокоманди RunCommand. Додатково про створення макросів можна прочитати в розділі Про макроси або перейти за посиланнями в розділі Див. також.

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

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

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

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

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

Замість макросів слід використовувати програмування VBA для виконання таких завдань.

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

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

  • Виконання команд системного рівня.    За допомогою команди RunApp у макросі можна запустити іншу програму (наприклад, Microsoft Office Excel 2007) просто з Access, але для складніших операцій за межами Access макроси непридатні. На відміну від цього, VBA дає змогу перевірити, чи існує файл на комп'ютері, засобами Автоматизація або Динамічний обмін даними (DDE) зв'язуватися з іншими програмами Microsoft Windows, такими як Office Excel 2007, і викликати функції з Бібліотека динамічного компонування (DLL) Windows.

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

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

Вгорі сторінки

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

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

  1. Натисніть кнопку Microsoft Office Зображення кнопки і виберіть пункт Відкрити.

  2. У діалоговому вікні Відкрити виберіть і відкрийте базу даних.

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

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

    Зображення кнопки

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

    Зображення кнопки

  6. На бланку форми клацніть місце, на якому має з'явитися кнопка.

    Буде запущено майстер кнопок.

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

  8. Виберіть варіант Text (Текст) або Picture (Рисунок) залежно від того, що має бути відображено на кнопці — рисунок або напис.

    • Якщо кнопка має містити текст, введіть бажаний текст у полі біля перемикача Text.

    • Якщо кнопка має містити рисунок, майстер пропонує вибрати рисунок у списку. Можна вибрати й інший рисунок, установивши прапорець Show All Pictures (Показати всі рисунки), після чого буде відображено всі рисунки кнопок, доступні в Office Access 2007, або натиснути кнопку Огляд і вибрати рисунок в іншому розташуванні.

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

  9. Введіть описове ім'я для кнопки. Цей крок необов'язковий, і це ім'я не відображатиметься на кнопці. Проте доцільно, щоб кнопка мала описове ім'я, щоб до неї можна було згодом звернутися (наприклад, якщо буде встановлено порядок табуляції елементів керування на формі); так кнопку буде значно легше відрізнити від інших кнопок. Наприклад, якщо кнопка закриває форму, їй можна дати ім'я cmdClose або CommandClose.

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

    Кнопку буде розташовано на формі.

  11. Якщо ви бажаєте дізнатися, що «запрограмував» майстер, виконайте такі необов'язкові дії.

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

    2. У вікні властивостей відкрийте вкладку Event (Подія).

    3. У полі властивості On Click (Після клацання) натисніть кнопку Builder button .

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

  12. На вкладці Конструктор у групі Подання клацніть команду Вигляд і виберіть пункт Режим форми. Натисніть нову кнопку, щоб переконатися в її належній роботі.

Вгорі сторінки

Про макроси

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

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

Макроси створюються в побудовнику макросів, показаному на наступній ілюстрації.

Побудовник макросів

Щоб відкрити побудовник макросів, виконайте такі дії.

  • На вкладці Створити у групі Додатково клацніть елемент Макрос. Якщо ця команда недоступна, клацніть стрілку поруч із кнопкою Модуль або Модуль класу і виберіть пункт Макрос. Зображення кнопки

Додаткові відомості про створення макросів можна знайти за посиланнями в розділі цієї статті Див. також.

Вгорі сторінки

Про код VBA

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

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

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

Вгорі сторінки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Макрос буде перетворено, і відкрито редактор Visual Basic.

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

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

    2. Розгорніть дерево під іменем поточної бази даних.

    3. У гілці Modules (Модулі) двічі клацніть модуль Converted Macro-ім'я макросу.

      Модуль буде відкрито в редакторі Visual Basic.

Приєднання функції VBA до властивості події

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

  1. У редакторі Visual Basic занотуйте ім'я функції. Наприклад, якщо перетворено макрос MyMacro, ім'я функції буде MyMacro().

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

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

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

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

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

  7. У полі властивості введіть знак рівності (=), а після нього ім'я функції — наприклад, =MyMacro(). Не забудьте дописати дужки.

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

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

Тепер ви знаєте основні етапи додавання коду VBA до бази даних. Ця стаття містить лише початкові відомості; є багато чудових довідників та електронних ресурсів із програмування, які допоможуть вам удосконалити ваші знання.

Вгорі сторінки

Як користуватися довідковою системою

Office Access 2007 пропонує багато різних способів отримання допомоги у справах програмування. Отримати довідку можна в будь-який момент, натиснувши кнопку Довідка у верхньому правому кутку вікна Access.

Точка входу в довідку

Буде відображено вікно довідки.

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

У відкритому вікні довідки можна перегортати сторінки за допомогою навігаційних кнопок на панелі інструментів.

Панель інструментів засобу перегляду довідки

Наприклад, натисніть кнопку Домашня сторінка, щоб перейти до змісту довідки, а потім натискайте кнопки Назад, Вперед, Припинити або Оновити для переміщення між розділами або перезавантаження розділу. Крім того, можна пошукати в довідковій системі певні відомості, ввівши шукані терміни в поле нижче панелі інструментів і натиснувши клавішу ENTER або кнопку Пошук.

Шукаючи інформацію щодо програмування, звичайно буває корисно застосувати довідку розробника Access на додаток до звичайної довідки Access.

Перехід до довідки розробника Access

  1. Клацніть стрілку розкривного списку поруч із кнопкою Пошук.

    Кнопка «Пошук» у довідці

    Буде відображено список доступних джерел довідки, які можна переглянути.

    Список пошуку в довідці

  2. За наявності підключення до Інтернету клацніть у розділі Вміст на веб-сайті Office Online пункт Developer Reference (Посібник розробника). Рекомендовано вибирати це джерело, оскільки вміст на веб-сайті Microsoft Office Online завжди найсвіжіший. Якщо підключення до Інтернету немає або якщо ваш системний адміністратор заборонив вихід до Інтернету з вікна довідки, все одно можна звернутися до довідки розробника Access, клацнувши пункт Developer Reference у розділі Вміст з поточного комп'ютера.

  3. Оглянути довідку можна, переходячи за посиланнями у змісті або ввівши терміни для пошуку в полі під панеллю інструментів і натиснувши клавішу ENTER.

  4. Щоб повернутися до довідки Access, клацніть стрілку розкривного списку біля кнопки Пошук і виберіть пункт Access Help (Довідка Access) у розділі Вміст на веб-сайті Office Online або Вміст з поточного комп'ютера.

Щоб отримати додаткові відомості про використання мережної або автономної довідки, клацніть меню «Стан підключення» в нижньому правому кутку вікна довідки й виберіть пункт Роз'яснення параметрів.

Підключення до веб-сайту Office Online з використанням засобу перегляду довідки

Вгорі сторінки

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

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

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

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

×