Можете да използвате макрокомандата Requery в бази данни на Access, за да актуализирате данните в зададена контрола на активния обект, като направите повторна заявка за източника на контролата. Ако не е зададена контрола, това действие повтаря въпроса за източника на самия обект. Използвайте това действие, за да се уверите, че активният обект или една от неговите контроли показва най-актуалните данни.
Настройка
Макрокомандата Requery има следния аргумент:
Аргумент на действие |
Описание |
Име на контрола |
Името на контролата, която искате да актуализирате. Въведете името на контролата в полето Име на контрола в прозореца за проектиране на макроси. Трябва да използвате само името на контролата, а не потребителския идентификатор в пълен вид (например Forms!име на формуляр! име_на_контрола). Оставете този аргумент празен, за да заявите отново източника на активния обект. Ако активният обект е лист с данни или заявка група резултати, трябва да оставите този аргумент празен. |
Забележки
Макрокомандата Requery прави едно от следните неща:
-
Изпълнява отново заявката, на която е базирана контролата или обекта.
-
Показва всички нови или променени записи и премахва всички изтрити записи от таблица, на които е базирана контролата или обекта.
Забележка: Макрокомандата Requery не засяга позицията на показалеца на запис.
Контролите, базирани на заявка или таблица, включват:
-
Списъчни полета и разгъващи се списъци.
-
Контроли на подформуляр.
-
OLE обекти, като например диаграми.
-
Контроли, съдържащи домейнови агрегатни функции, като например DSum.
Ако указаната контрола не е базирана на заявка или таблица, това действие налага преизчисляване на контролата.
Ако оставите аргумента Име на контрола празен, действието Requery има същия ефект като натискане на SHIFT+F9, когато обектът има фокус. Ако фокусът е върху контрола на подформуляр, това действие повтаря само източника на подформуляра (точно както натискането на SHIFT+F9).
Забележка: Макрокомандата Requery повтаря заявка за източника на контролата или обекта. За разлика от това макрокомандата RepaintObject преоразмерява контролите в зададения обект, но не изисква повторно базата данни и не показва нови записи. Макрокомандата ShowAllRecords не само повтаря заявката за активния обект, но също така премахва всички приложени филтри, които не се извършват от макрокомандата Requery .
Ако искате да поискате отново контрола, която не е в активния обект, трябва да използвате метода Requery в модул на Visual Basic for Applications (VBA), а не макрокомандата Requery или съответния метод Requery на обекта DoCmd . Методът Requery във VBA е по-бърз от макрокомандата Requery или метода DoCmd.Requery . Освен това, когато използвате макрокомандата Requery или метода DoCmd.Requery , Access затваря заявката и я зарежда отново от базата данни, но когато използвате метода Requery , Access изпълнява повторно заявката, без да я затваря и презарежда. Обърнете внимание, че методът за повторна заявка за ActiveX обект с данни (ADO) работи по същия начин като метода Requery на Access.