Tipy pro MS Access - práce s formulářem

1. 3. 1999

Sdílet

Zobrazení formuláře- Pokud chcete zobrazit formulář jako modální (v tomto nastavení nemůžete pracovat s jinými okny, dokud neukončíte práci s modálním formulářem), nastavte vlast...
Zobrazení formuláře
- Pokud chcete zobrazit formulář jako modální (v tomto nastavení nemůžete
pracovat s jinými okny, dokud neukončíte práci s modálním formulářem), nastavte
vlastnost Modální okno (v orig. Modal) na Ano. Pro znepřístupnění řádku nabídek
a voleb ovládacích panelů slouží vlastnost Překryvné okno (v orig. PopUp).
- Formulář má standardně nastavenu vlastnost Místní nabídka (v orig.
ShortcutMenu), která zajistí zobrazení nabídky po stisku pravého tlačítka myši
v oblasti okna. K tomu, aby uživatel nemohl používat možnosti této nabídky,
změňte nastavení vlastnosti Místní nabídka na Ne.

Ovládací prvky formuláře
- Pro vytvoření textového pole pro zadání hesla chcete, aby se při zápisu hesla
v poli zobrazovaly hvězdičky nebo jiné znaky, a nikdo jiný tak nemohl přečíst
zadávaný text hesla. K tomuto účelu použijte vlastnost textového pole Vstupní
maska (v orig. InputMask). Program zobrazí Průvodce vstupní maskou, a v seznamu
vyberte masku Heslo a popř. změňte zobrazovaný znak.
- Obdobným způsobem můžete využít další přednastavené formáty, nebo si je
můžete vytvořit a potom ihned používat. Vstupní masku lze
také nastavit z kódu programu (např. Me!RodneCislo.InputMask =
"000000/0009").
- Chcete-li na formuláři pouze zobrazit hodnoty určitého pole tabulky (např.
identifikačního čísla zaměstnance), nastavte vlastnost prvku Uzamknout na Ano a
vlastnost Zpřístupnit na Ne (v orig. Locked a Enabled). Chcete-li však
uživateli umožnit podle hodnot tohoto pole záznamy třídit a filtrovat (opět bez
možnosti jejich editace), nastavte obě vlastnosti na hodnotu na Ano.
- Vlastnost ovládacího prvku Uzamknout můžete nastavit i z programového kódu.
Například po zaškrtnutí zaškrtávacího pole MaDeti uživatelem (v případě, že
tazatel má děti), chcete, aby se zpřístupnilo pole Pocet_Deti (v případě, že
tazatel děti nemá, bude pole Pocet_Deti nepřístupné a jeho hodnota nastavena na
0 ("na nulu"). Zapište proto následující kód do události Uzamknout prvku MaDeti:

If Me![MaDeti] Then
Me![PocetDeti] .Enabled = True
Else
Me![ PocetDeti] = 0
Me![ PocetDeti].Enabled = False
End If

Poznámka: Zaškrtávací pole MaDeti nabývá hodnot True nebo False, proto je
logický výraz u If zapsán správně.
- Kontrolu zadávaných hodnot prvku typu Textové pole můžete provést zadáním
příslušné podmínky (např. v případě pole Plat je podmínka >0) do vlastnosti
prvku Ověřovací pravidlo (v orig. ValidationRule), a k zadání textu, který se
zobrazí v případě jejího nesplnění, použijte vlastnost Ověřovací text (v orig.
ValidationText). V našem případě by ověřovací text mohl být např. "Plat musí
být kladné číslo!" (V uvedeném případě by však bylo lepší podmínku na data i
ověřovací text zadat přímo v definici tabulky.)

Pořadí prvků
- Pořadí prvků, které se budou aktivovat postupným stisknutím klávesy tab (tedy
obdrží fokus), nastavíte volbou ZobrazitPořadí prvků. K tomu, aby určitý prvek
formuláře byl nepřístupný klávesou tab, použijte vlastnost prvku Přístup
klávesou tabelátor (v orig. TabStop, tuto vlastnost lze použít i v kódu).
- Nastavit fokus požadovanému prvku formuláře při výskytu určité události
můžete také programově. Např. podle zadaného druhu pracovního poměru
zaměstnance (plný úvazek, částečný úvazek prvek Typ_PracPom) se budou vyplňovat
příslušné údaje a podle toho se nastaví fokus. Zapište tedy příslušný kód do
události Po aktualizaci prvku Typ_PracPom (program automaticky vytvoří
proceduru Typ_PracPom_After Update):

If Me![Typ_PracPom] = "Plný úvazek" Then
Me![ppUdaj1].SetFocus
Else
Me![cpUdaj1].SetFocus
End If

- Stisknutím klávesy Tab na posledním prvku záznamu formuláře se standardně
přesunete na první prvek následujícího záznamu. Chcete-li zůstat stále na
stejném záznamu a po stisknutí klávesy Tab na posledním prvku se přesunout na
první prvek stávajícího záznamu, musíte nastavit vlastnost formuláře Koloběh (v
orig. Cycle) na Aktuální záznam.

Další
- Pokud chcete sejmout obrázky formulářů (po stisknutí klávesové zkratky
Alt+PrtScr) a následně je použít v dokumentaci nebo zprávě, musíte mít abyste
sejmuli pouze požadovaný formulář a ne celou obrazovku nastavenu vlastnost
formuláře Překryvné okno (v orig. PopUp) na Ano.
- K zobrazení textu nebo jiných informací na stavovém řádku je určena funkce
SysCmd s parametrem acSysCmdSetStatus, která vrací hodnotu typu variant [např.
SysCmd(acSysCmdSetStatus, "Probíhá výpočet...")]. Tuto funkci můžete použít i k
zobrazení stavu právě probíhající akce k tomu jsou určeny parametry
acSysCmdInitMeter, acSys Cmd UpdateMeter a acSysCmdRemoveMeter.

Z dotazů čtenářů
? Zajímalo by mne, jak automaticky vložit do záznamu datum jeho vytvoření nebo
datum modifikace záznamu.
- K zapsání datumu vložení nového záznamu do pole pojmenovaného např.
Dat_vlozeni použijte událost formuláře Po vložení (v orig. AfterInsert),
vyberte tvůrce kódu a zapište kód:

Me![dat_vlozeni] = Date

Pro zapsání datumu změny záznamu (např. pole Dat_zmeny) použijte událost
formuláře Před aktualizací (v orig. BeforUpdate), vyberte tvůrce kódu a zapište
obdobný programový kód (Me![dat_zmeny] = Date). Chcete-li zadat i čas (nebo
pouze čas) vytvoření či aktualizace záznamu, použijte místo Date funkci Now
(popř. Time).

9 0157/OK