Актуализиране на данните във формите и контроли

Подобна ситуация възниква дори и в потребителски режим, когато се използва под формата на падащ списък, източника на данните, за които е таблица или заявка. Ако са били добавени записите в таблицата източник в списък прозорец не се появи автоматично на - вие трябва отново да изпълните заявката. В допълнение, комбинирани полета, за контролите, които изискват обновите данните на дисплея включват списъци и контрола на подформуляра, OLE обекти и изчисляват контроли, съдържащи статистически функции на подмножество на записи, като DLookUp () и DSUM ().

С цел да се актуализира записи в форми, таблици, или контрол, използвайте макро актуализацията (Requery), PokazatVseZapisi (ShowAllRecords) И ObnovitObekt (RepaintObject).

Вземем примера за използване на макро да се актуализира. Под формата "клиенти" (клиенти) е областта с листата на "Country" (Държава). Изходните данни за това поле е искане, което избира стойността на полето "Country" (Country) таблица "Клиенти" (клиенти):

Ако клиентът влезе в таблицата се добавя към новото име на страната, в списъка на страната не се появи, тъй като заявката ще бъде изпълнена отново само при отваряне на формата. За да актуализирате списъка с държави, и преди, трябва да се възложат на събитието След актуализацията (След обновяване) образува макро Klienty.Obnovlenie списък на страните, която се състои от един макро актуализация (Requery) със стойността на "страната" на аргумент (Country) (фиг. 11.18).

Фиг. 11.18. Присвояване на макрос случай на формата, след като надстройка

Макро Актуализация (Requery) актуализира само един обект, така че ако във формата на контрол съществува, че трябва да се актуализират, за да се покажат данни, както и на макроса, предназначени за този вид, използвайте макро актуализация (Requery) с празна стойност на аргумента, че ще се актуализира само под формата на записи. За всеки такъв контрол е необходимо да се използва отделна макро. Ако този макрос като аргумент съдържа името на контрола, когато се изпълнява актуализира само елемента. Записите в самата форма не е актуализиран.

С макро актуализацията (Requery) може да актуализира данните в неактивна форма, по-скоро, а не във формата, в която се определя макроса. Въпреки това, в този случай, първо трябва макро VydelitObekt (на SelectObject), който ще донесе на фокуса към желаната форма, за да я активирате (тогава фокусът може да бъде върнат).

Макро PokazatVseZapisi (ShowAllRecords), както е отбелязано по-горе, отменя ефекта на филтъра и повторно сканира регистрите източник. Той често се използва за актуализиране на данните в подформуляра.

Макро ObnovitObekt (RepaintObject) се прилага само за обект на базата данни (на масата, заявка, форма, да докладва, макроси страници и модули) и не се отнася до контрола. Тя извършва незабавна актуализация на такъв отворен обект (ако името на обекта не е уточнено, активният обекта се актуализира), въпреки че тя не е повторно изпълнение на заявката за източника на данни. актуализация обект не оказва влияние върху. показване на нови и изтрити записи, тъй като това се случва, когато макро актуализацията (Requery). Обикновено макро ObnovitObekt (RepaintObject) се използва за показване на резултатите от тези промени използват макроси ZadatZnachenie (SetValue), и да се преизчисли стойностите на изразите, изчислени в контролите.