Техниките за работа с форми - софтуер

Затварянето на формата на друга форма:

От една форма, често е необходимо да се затвори различна форма. Можете, разбира се, преместите точката на вмъкване до нея и изпълни командата и след това да преместите точката на вмъкване обратно към нашата форма:

DoCmd.Close "затваря форма frmPrimer

Аз трябваше да отговорят на тези екстри - и тя работи добре :)

затворете всички отворени форма, въпросът за възможно запазване на промените да отговори с "да", без да ги прехвърлят на фокуса -

DoCmd.Close acForm "frmPrimer", acSaveYes

Всъщност, това би било правилно да го направите:

Ако IsLoaded ( "frmPrimer") След това DoCmd.Close acForm "frmPrimer", acSaveYes

но тя трябва да се съхранява в отделен модул IsLoaded функция:

Функция IsLoaded (strFormName Както стринга) Както Булева

"IsLoaded = (SysCmd (acSysCmdGetObjectState, acForm, strFrmName) = acObjStateOpen)

"Назад към Вярно е, ако формата е отворен във формуляр или лист за оглед

Строителство conObjStateClosed = 0

Строителство conDesignView = 0

Ако SysCmd (acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Тогава

Ако Forms (strFormName) .CurrentView <> conDesignView Тогава

Апел към контрола форма на него, и на процедурите в събития форма модул от други форми:

Тук е необходимо да кажа няколко встъпителни думи думи за събирането на форми обекти форми. Всички отворени форми се добавят автоматично Access'om в тази колекция. Имайте предвид, в тази колекция са отворени само по време на формуляра за код. Ако формата не е отворен, ще възникне грешка. Ето защо, за каквито се харесва на формата се използват, за да се провери функцията IsLoaded (виж по-горе).

Също така се използва префикса форми FRM. Тогава кодът е удобно да се придвижвате в прозорците на различни строители може да се види - когато формата (FRM), където на маса (TBL), и когато искането (qry). Ако формата е подчинена използва префикса (fsub). Лично аз имам всички примери така.

Различни варианти за форми за лечение на:

! Формуляри по образец frmPrimer "на лечението - най-разпространените

Форми [Формуляр за поръчка] ", ако има пропуски във формата на името - името, което трябва да бъдат цитирани.

Форми ( "frmPrimer") ", както и за да можете да се справят, това е колкото искате

Форми (0) "могат да бъдат достъпни чрез индекс форма (това е все същата колекция).

Истината е необходимо да се знае точно на индекса на отворената форма, и то постоянно се променя, в зависимост от последователността на отваряне форми. Може би това е полезно за лечение на всички отворени форми в цикъла.

Особено ревностни фенове на програмирането;) не препоръчват използването на българските имена на обекти, но имам няколко години проблеми в Access е не. Аз бях с такива смесени англо-български имена.

Така например, откриването на сегашната форма frmSimple и извън ще постави фокуса различна форма

но имайте предвид, че ако кодът е след това, например, DoCmd.Close, а след това се затваря frmPrimer форма като код команди се изпълняват вече в нея (което е на фокус). Следете във фокуса на формуляра за превод на формуляра.

Форми! FrmPrimer.Requery "актуализират данните формата, е под формата на frmSimple.

За да получите списък на всички свойства и методи за работа с "дистанционно" форма, да ми пише. (С точка), изберете от падащия списък (Me. Този апел форма на самата) необходимата метод или имота и се прехвърля да се обърне към отдалечен форма.