Макрокоманда Оновлення (Requery) оновлює тільки один об'єкт, тому якщо у формі існують елементи управління, що вимагають поновлення відображуваних даних, і в макросі, призначеному цій формі, використовується макрокоманда Оновлення (Requery) з порожнім значенням аргументу, то оновлюватися будуть лише записи у формі. Для кожного такого елемента керування потрібно використовувати окрему макрокоманду. Якщо ця макрокоманда як аргумент містить ім'я елемента керування, то при її виконанні оновлюється тільки даний елемент. Записи в самій формі не оновлюються.
З допомогою дії Оновлення (Requery) можна оновлювати дані і в неактивній формі, точніше, не в тій формі, якій призначено макрос. Однак у цьому випадку спочатку необхідно виконати макрокоманду ВиделітьОб'ект (SelectObject), яка перенесе фокус на потрібну форму, щоб її активізувати (потім фокус можна повернути назад).
Макрокоманда ПоказатьВсеЗапісі (ShowAllRecords), як уже зазначалося, скасовує дію фільтра і повторно переглядає джерело записів. Її часто використовують для поновлення даних в підлеглій формі.
Макрокоманда ОбновітьОб'ект (RepaintObject) застосовується тільки до об'єкта бази даних (до таблиці, запиту, форми, звіту, сторінці, макросу і модулю) і не застосовується до елемента керування.Вона виконує негайне оновлення зазначеного відкритого об'єкта (якщо ім'я об'єкта не задано, оновлюється активний об'єкт), хоча при цьому не проводиться повторне виконання запиту до джерела даних. Оновлення об'єкта не впливає на. відображення нових і віддалених записів, як це відбувається при виконанні дії Оновлення (Requery). Зазвичай макрокоманду ОбновітьОб'ект (RepaintObject) застосовують для відображення результатів зміни даних за допомогою макрокоманд ЗадатьЗначеніе (SetValue), а також для повторного обчислення значень виразів у обчислюваних елементах керування.
Робота з об'єктами
Розглянемо спочатку, як використовується макрокоманда ЗадатьЗначеніе (SetValue), яка дозволяє встановлювати значення властивостей елементів управління у формах і звітах. Ми вже використовували цю макрокоманду в попередніх прикладах.
Установка властивостей елементів управління дозволяє динамічно, залежно від умов, робити ці елементи недоступними або невидимими. Ось кілька прикладів.
Можна створити одну форму, у якій залежно від певних умов, видимими будуть різні поля. Це дозволяє використовувати одну форму в декількох випадках і не створювати для кожної ситуації додаткову форму. Коли форм в додатку дуже багато, така можливість стає дуже корисною. Щоб зробити елемент керування невидимим, слід задати значення Брехня (False) для властивостіВиведення на екран (Visible) цього елемента. Щоб показати елемент керування на екрані, задайте для цієї властивості значення Істина (True).
Залежно від поточного стану роботи з даними можна змінювати доступність кнопок, призначених для виконання певних дій, або інших елементів керування у формі. Щоб зробити елемент керування недоступним, задайте значення Брехня (False) його властивості Доступ (Enabled). Щоб елемент управління став доступним, задайте значення Істина (True) для цієї властивості.
Можна заборонити користувачеві змінювати дані у формі. Для цього властивості Доступ (Enabled) відповідних полів слід привласнити значення Брехня (False), а властивості Блокування записів (Locked) - значення Істина (True). Якщо необхідно заборонити зміну у всіх полях, встановіть значення Брехня (False) для наступних властивостей форми: Дозволити зміни (Allow Edits), Дозволити додавання (Allow Additions), Дозволити видалення (Allow Delitions). Ці властивості можна змінювати динамічно, тобто в процесі роботи користувача з формою. Наприклад, можна дозволити або заборонити редагування даних після перевірки прав користувача.
З допомогою дії ЗадатьЗначеніе (SetValue) можна динамічно змінювати значення властивості Джерело записів (RecordSource) для форми, що дозволяє управляти змістом відображуваних даних.
Існують дії для відкриття "і закриття об'єктів Access:
ОткритьФорму (OpenForm), ОткритьЗапрос (OpenQuery), ОткритьОтчет (OpenReport) і т. д. Для відкриття об'єкта кожного типу застосовується окрема макрокоманда, а для закриття об'єкта використовується загальна для об'єктів усіх типів макрокоманда Закрити (Close). Тип об'єкта, до якого слід застосувати цю макрокоманду, вказується в якості одного з її аргументів. У попередніх прикладах вже використовувалися дії ОткритьФорму (OpenForm) і Закрити (Close) для активного об'єкта.
Макрокоманда ОткритьЗапрос (OpenQuery) дозволяє виконати будь-який тип запиту, в тому числі запит на зміну даних. Якщо в якості аргументу цієї дії задається ім'я запиту на вибірку або перехресного запиту, то результатом виконання дії буде висновок на екран вибраних записів. Якщо ж аргумент - ім'я запиту на зміну даних, то макрокоманда виконає запит, змінюючи відповідним чином дані в таблицях.
При виконанні запиту, що змінює дані, на екрані будуть відображатися попереджувальні повідомлення. Щоб відключити виведення цих повідомлень, використовуйте макрокоманду УстановітьСообщенія (SetWarnings) зі значенням аргументу Ні (No). Тільки не забудьте після виконання запиту знову включити висновок системних повідомлень, застосувавши ту ж макрокоманду, але з аргументом Так (Yes). Інакше в Access не будуть відображатися жодні системні повідомлення, що може привести до виконання небажаних дій у додатку.
Макрокоманда ОткритьПредставленіе (OpenView) аналогічна макрокоманді ОткритьЗапрос (OpenQuery), тільки застосовується вона в проектах Access і призначена для роботи з даними, що зберігаються на сервері.
Макрокоманда ОткрытьСохраненнуюПроцедуру (OpenStoreProcedure) дозволяє виконати або відкрити в режимі редагування збережену процедуру сервера Для отримання повної інформації використовуйте довідкову систему Access. Щоб швидко отримати довідку:
1. Виберіть команду Довідка, Довідка з Micrisift Access (Help, Microsoft Access Help).
2. Розкрийте вкладку Майстер відповідей (Answer Wizard) і введіть в поле Виберіть дію (What would you like to do?) Ім'я дії. Натисніть кнопку Знайти (Search).