4.16.Tvorba programových modulů

Pro obsluhu složitějších manipulací s daty nebo objekty, umožňuje Microsoft Access vytvářet programové moduly (Module). Pro jejich tvorbu používáme příkazy programovacího jazyka Access Basic. Jedná se o objektově orientovaný strukturovaný Basic se vším, co k Basicu patří.

V rámci jedné databáze je možno vytvořit více programů. Každý program se přitom skládá z následujících částí, viz obr. 65 :

globální definice - oblast obsahuje definice konstant a proměnných, které jsou platné ve všech následujících procedurách a funkcích.
programové rutiny - jednotlivé procedury a funkce se svými parametry a definovanou činností. Liší se tím, že procedura nevrací žádnou hodnotu a volá se svým názvem, např. Call P1(par1, par2), funkce vrací hodnotu a volá se operátorem přiřazení, např. A = F1(par1, par2).
Program tedy neobsahuje žádnou výkonnou část. Ta je soustředěna zásadně do procedur a funkcí jako základních výkonných prvků. To v důsledku znamená, že program nelze spustit (Run). Je možno pouze používat v něm definované funkce. Můžeme je používat, stejně jako implicitně definované funkce, v jakýchkoliv výpočtech ve formulářích a sestavách. Výsledky funkcí lze použít jako parametr pro vyhledávání, třídění, filtry záznamů apod. Funkce lze spouštět v makropříkazech. Na všech jmenovaných místech nelze použít procedury! Autoři zvolili tento přístup patrně z důvodů sjednocení programových prostředků ve všech svých produktech.

Obr. 65. Struktura programu

Program tvoříme v návrhovém okně viz obr. 66. Nejprve popíšeme menu při tvorbě programu a pak probereme možnosti ladění programu (Debugging). Text programu je důsledně členěn na jednotlivé programové rutiny. V okně se vždy pracuje s jednou (nebo dvěma - při rozdělení okna na dvě části) programovými rutinami. Při zadávání jednotlivých příkazových řádků je prováděna automatická syntaktická kontrola. Pokud se nám to nelíbí, lze ji v globálních parametrech programu (Options) vypnout. Pak se provádí kontrola až při přeložení programového modulu (programu).

4.16.1.Menu File

New - vytvoření nového objektu, následně je nabídnut seznam tříd objektů.
Close - uzavření aktuálního objektu.
SaveCtrl+S - uložení aktuálního programu. Při prvním uložení programu je uživatel dotázán na jméno programu.
Save As... - uložení aktuálního programu pod udaným názvem.
Load Text... - načtení programu z textového souboru.
Save Text... - uložení aktuálního programu do textového souboru.
Print Setup... - nastavení parametrů pro tisk.
Print Preview - ukázka, jak bude vypadat tisk programu na tiskárně.
Print...Ctrl+P - tisk programu. Nejprve se nastaví parametry pro tiskárnu.
Send - vyslání objektu elektronickou poštou ve standardu MAPI.
Run Macro... - spuštění některého z hotových maker z nabídky použitelných maker.
Add-ins - připojení doplňkových programových možností.
Exit - opuštění programu Microsoft Access.

4.16.2.Menu Edit

Undo Ctrl+Z - zrušení poslední operace.
Cut Ctrl+X - přesun označené oblasti do pomocné paměti (Clipboard).
Copy Ctrl+C - kopie označené oblasti do pomocné paměti.
Paste Ctrl+V - kopie obsahu pomocné paměti ke kurzoru.
Delete Del - zrušení označené oblasti.
Find... Ctrl+F - vyhledání požadovaného textu.
Find Next F3 - vyhledání dalšího výskytu požadovaného textu.
Find PreviousShift+F3 - vyhledání předchozího výskytu požadovaného textu.
Replace... Ctrl+H - vyhledání požadovaného textu a náhrada jiným textem.
New Procedure... - vytvoření nové procedury (funkce) zadaného jména.

4.16.3.Menu View

Split Window - zapíná/vypíná rozdělení okna na dvě samostané části, ve kterých mohou být zpracovávány dvě různé rutiny současně, viz obr. 66.
Procedures F2 - výběr procedury (funkce) pro zobrazení v okně. Vybírá se ze seznamu názvů procedur a funkcí, viz obr. 66 vpravo dole. Názvy jsou seřazeny podle abecedy, stejně jako rutiny v programu.
Next Procedure Ctrl+Down - přesun na zobrazení následující rutiny.
Previous ProcedureCtrl+Up - přesun na zobrazení předcházející rutiny.
Immediate Window - otevření/zavření pomocného okna, v němž můžeme při ladění programu provádět libovolné příkazy a kam se zobrazují výsledky těchto příkazů.
Calls... - při krokování programu obsahuje seznam rutin v pořadí, jak se vzájemně volaly (zdola nahoru). Nabízí možnost rychlého přesunu na ně.
Toolbars... - určení, které lišty nástrojů (Toolbars) mají být zobrazeny.
Options... - zobrazí nastavení parametrů programu Access.

4.16.4.Menu Run

Reset - při ladění programu ukončí násilně program a makro, které programovou rutinu vyvolalo.
Compile Loaded Modules - provede překlad celého programu (všech otevřených objektů třídy Module). Je vhodné provést před spuštěním programové rutiny.
Continue F5 - při ladění programu spustí pokračování v provádění programu bez krokování.
Step Into F8 - při ladění programu provede jeden řádek (příkaz) programu. Pokud je na řádku volána programová rutina, provede se její otevření a přesun na první příkaz.
Step OverShift+F8 - při ladění programu provede jeden řádek (příkaz) programu. Pokud je na řádku volána programová rutina, provede se celá.
Set Next Statement - při ladění programu přesune provádění programu na příkaz, na kterém stojí kurzor. Např. pokud vznikla chyba v programu a jeho provádění se zastavilo na chybném řádku, přesuneme kurzor na další řádek a touto činností přesuneme provádění programu od tohoto příkazu. Tím přeskočíme chybný příkaz, přes který bychom se jinak nedostali. Jeho činnost můžeme nahradit ručně zadaným příkazem v Immediate Window. Přesun je možný jen v rámci jedné programové rutiny.
Show Next Statement - zobrazí programovou rutinu, jejíž příkaz se má následně provádět. Slouží k návratu do rutiny, pokud jsme si při ladění prohlíželi jiné rutiny nebo se přesunuli na jinou část rutiny.
Toggle BreakpointF9 - řádek, na kterém stojí kurzor, označí jako zarážku při provádění programu. Opakovaným použitím na stejném řádku se zarážka zruší.
Clear All Breakpoints - zruší všechny nastavené zarážky.
Modify Command$... - změna řetězce, který vrací funkce Command$ (funkce vrací text příkazového řádku při spuštění programu Access, za označením /Cmd).

4.17.Ladění programových modulů

Jakmile vytvoříme požadovanou programovou rutinu a přeložíme program (činnost menu Run-
-Compile Loaded Modules), můžeme přistoupit k jejímu ladění. K tomu potřebujeme vytvořit makro, které vyvolá naši programovou rutinu. Již bylo několikrát zmíněno, že nelze vyvolat proceduru, ale jen funkci. Pokud takto chceme ladit proceduru, musíme vytvořit funkci, která ji vyvolá a tuto funkci vyvolat pomocí makra. Makro můžeme spustit při tvorbě programu činností menu File-Run Macro. Otevře se okno, ve kterém zvolíme požadované makro, přitom můžeme využít nabídky existujících maker. Pokud chceme krokovat jednotlivé příkazy, pak potřebujeme, aby se výkon programu na některém příkaze zastavil. K tomu slouží nastavení zarážky na požadovaném příkaze činností menu Run-Toggle Breakpoint.

Výkon programu se pak zastaví na nastavené zarážce a uživatel má možnost řídit další provádění programu, po jednotlivých příkazech, k další zarážce apod. Současně může provádět ručně zadané příkazy pomocí Immediate Window.

Na obr. 66 je zobrazen stav po zastavení programu na řádku se zarážkou (je zobrazen tučným písmem). Po provedení dvou kroků programu je nyní připraven k provedení příkaz, který je orámován. V Immediate Window byl proveden ručně zadaný příkaz print S, kterým jsme zjistili aktuální obsah proměnné S. Právě se chystáme zobrazit v okně jinou programovou rutinu činností menu View-
-Procedures, která otevřela okno s nabídkou programových rutin v pravé části obrazovky dole.

Obr. 66. Tvorba a ladění programu

Pokud provedeme opravu v programu a necháme program znovu přeložit (činnost menu
Run-Compile Loaded Modules) nedojde nutně k přerušení jeho provádění, jako při činnosti menu Run-
-Reset. Jen pokud jsme provedli zásah do deklarace proměnných. Současně je pak přerušeno také makro, které programovou rutinu vyvolalo. S tím je uživatel seznámen obvyklým hlášením.

4.18.Microsoft Access Basic

Programovací jazyk Access Basic byl vytvořen pro potřeby řízení složitějších operací s daty a objekty v databázi. V nápovědě (Help) programu se nachází podrobné popisy všech jeho příkazů, proto je na tomto místě pouze kategorizujeme do logicky souvisejících skupin s krátkým popisem činnosti.

Programové prostředky jazyka se přitom dělí na :

Operator - operátor - - perátory. Obvykle spojují dva argumenty, např. +,- , &.
Method - metoda- - operace s objekty. Mají stejný název u všech objektů a provádějí logicky stejnou činnost s objektem. Volají se název objektu.název metody.

V programu přitom rozlišujeme třídy objektů Report - sestava, Form - formulář, Recordset - skupina záznamů typu Table - tabulka, a dva příbuzné typy Dynaset a Snapshot. Ty jsou výsledkem dotazů typu Select apod. Pro jejich rozlišení platí přibližně to, že Dynaset je objekt, do kterého lze zapisovat, Snapshot je objekt, do kterého zapisovat nelze. Seznam všech tříd objektů bude uveden dále.
Property - vlastnost - vlastnost objektu. Např. název objektu.Count vrátí počet záznamů objektu.
Function - funkce - provádějí operace se svými argumenty a vracejí výsledky. Používají se na pravé straně přiřazovacího příkazu, za operátorem přiřazení.
Statement - instrukce - provádějí výkonné činnosti. Často mají stejný název a argumenty jako funkce. Např. :D = Date() - je použití funkce, která vrátí aktuální datumDate = D - je instrukce, která změní datum počítače.
Action příkazy - jsou shodné s příkazy v makrech, kde byly podrobně popsány. Mají poněkud zvláštní způsob volání. Všechny příkazy se volají :

DoCmd příkaz parametr1, parametr2, ...

parametry, které se v makru volí z výčtu nabízených hodnot, se v programu zadávají pomocí předdefinovaných konstant, např. A_FORM určuje, že objekt třídy formulář má být otevřen pro zadávání hodnot. Předdefinovaných konstant je velké množství. Jejich výčet přesahuje rozsah této publikace, jsou k nalezení v nápovědě.
V následujících kapitolách budeme popisovat jednotlivé metody, funkce, instrukce apod. Budeme používat následující označení :

tučné písmo - označuje název metody, instrukce apod.
skloněné písmo - označuje agrument metody, instrukce apod.
[ argument ] - hranaté závorky označují, že argument je nepovinný, při volání metody apod. nemusí být uveden. Toto označení je potřeba nezaměňovat za použití hranatých závorek pro uzavření víceslovného názvu objektu, které se bude vyskytovat v kapitole věnované manipulacím s objekty.
{ var1 var2 } - složené závorky označují povinnou volbu z několika možností. Jednotlivé možnosti jsou odděleny svislou čarou.

4.18.1.Globální deklarace

V oblasti globálních deklarací můžeme kromě deklarace globálních konstant a proměnných použít následující deklarace :

Option Base počet - určuje implicitní dolní rozsah rozměru vektoru.
Option Compare {Binary Database Text} - určuje způsob porovnávání dat. Platí :
Database systém daný nastavením programu,
Binary"A" >< "a", pořadí znaků je podle normy ANSI,
Text"A" = "a", pořadí znaků určuje nastavení Windows - Country.
Option Explicit - určuje, že všechny použité proměnné musí být definovány před svým prvním použitím. Bez této deklarace je možno definovat novou proměnnou tím, že jí přiřadíme hodnotu. Tak vzniká nebezpečí chyb, nebo chybným zapsáním jména proměnné vznikne jiná proměnná, aniž by byla hlášena chyba.
Dále může následovat deklarace globálních datových typů a proměnných, deklarace rutin z knihoven DLL apod.

4.18.2.Datové typy

Pro práci s programem jsou definovány základní typy proměnných, které lze použít pro tvorbu uživatelských typů a proměnných, jsou to :

Název typu velikost rozsah hodnot suffix
Integer 2 Byte -32 768 32 767 %
Long 4 Byte -2 147 483 648 2 147 483 647 &
Single 4 Byte - 3,402823.1038 - 1,401298.10-45 pro záporná čísla,
1,401298.10-45 3,402823.1038 pro kladná čísla, a 0
!
Double 8 Byte - 1,79769313486232.10308 - 4,94065645841247.10-324,
4,94065645841247.10-324 1,79769313486232.10308 a 0
#
Currency 8 Byte - 922 337 203 685 477,5808 922 337 203 685 477,5807 @
String počet znaků 0 - 65 535 znaků, řetězec pevné délky. $
Variant - jakýkoliv datový typ nebo řetězec proměnné délky.
Protože obecně je možno deklarovat proměnné až za běhu programu přiřazením hodnoty, je nutno jim také přiřadit datový typ. K tomu slouží přípony (Suffix), kterými doplníme název proměnné.

Kromě toho je třeba definovat uživatelské objekty. Tak lze sestavit programové rutiny, které nejsou závislé na konkrétní databázi nebo jejím konkrétním objektu. Lze definovat objekty tříd :

Název třídy použití
Workspace pracovní prostor, může obsahovat několik databází.
Database databáze.
TableDef definice struktury nové tabulky.
QueryDef definice dotazu pro jeho vytvoření v programu.
Recordset tabulka, výsledek dotazu, skupina záznamů.
Form formulář.
Report sestava.
User uživatel.
Group skupina uživatelů.
Index index (klíč) tabulky.
Parameter parametr dotazu.
Property vlastnost objektu.
Container seznam informací o objektech databáze.
Document informace o jednom objektu databáze.
Control objekt formuláře nebo sestavy.
Field položka tabulky objektu Recordset, Index apod.
V programech můžeme využít také tři předdefinované objekty, jsou to :
Application vlastní aplikace (program MS-Access). Umožňuje nastavení globálních parametrů, hlášení ve stavovém řádku apod.
Debug objekt slouží pro ladění programu. Vlastní jedinou metodu, která slouží pro výstup do okna Immediate Window : Debug.Print seznam hodnot
Screen obrazovka Windows se čtyřmi vlastnostmi pro adresování aktuálních objektů.

4.18.3.Řízení běhu programu

Základním prvkem řízení úlohy jsou procedury a funkce, označují se :

[Static] [Private] Function jméno [(seznam argumentů)] [As typ]
tělo funkce [Exit Function]
jméno = hodnota
End Function
Funkci lze během její činnosti násilně opustit příkazem Exit Function. Označení Static říká,
že všechny proměnné deklarované ve funkci jsou inicializovány v době překladu na hodnotu 0 ("") a jsou statické, tedy při dalším volání funkce obsahují hodnoty z předchozího volání. Označení Private říká, že funkce je použitelná jen v jiné programové rutině ve stejném programu (Module), nelze ji použít ani v jiném programu, ani v makrech apod.
[Static] [Private] Sub jméno [(seznam argumentů)]
tělo procedury [Exit Sub]
End Sub
proceduru lze během její činnosti násilně opustit příkazem Exit Sub. Označení Static říká,
že všechny proměnné deklarované v proceduře jsou inicializovány v době překladu na hodnotu 0 ("") a jsou statické, tedy při dalším volání procedury obsahují hodnoty z předchozího volání. Označení Private říká, že procedura je použitelná jen v jiné programové rutině ve stejném programu (Module), nelze ji použít ani v jiném programu, ani v makrech apod.
Declare {Sub Function} jméno Lib knihovna [Alias jméno alias] [(seznam argumentů)]
připojuje proceduru z knihovny DLL. Argumenty se předávají buď odkazem (S1 As String) nebo hodnotou (ByVal S1 As String). Funkce se volá přiřazením, procedura jménem.
Call jméno [(seznam argumentů)]
volá proceduru připojenou příkazem Declare Sub.
Pro řízení běhu programu slouží několik struktur a příkazů, jsou to :

Do [{While Until} výraz]

tělo cyklu

Loop
Do

tělo cyklu

Loop [{While Until} výraz]
tělo cyklu se provádí pokud je splněna podmínka {While} nebo do splnění podmínky {Until}. Strukturu lze opustit příkazem Exit Do za příkaz Loop.
For počítadlo=start To cíl [Step krok]
tělo cyklu
Next [počítadlo[, vnořené počítadlo]]
tělo cyklu se provádí, dokud počítadlo nenabude hodnoty rovné nebo vyšší hodnotě cíl. Strukturu lze opustit příkazem Exit For za příkaz Next.

While výraz
tělo cyklu
Wend
tělo cyklu se provádí dokud má výraz hodnotu True.

If výraz Then

tělo cyklu 1

[Else

tělo cyklu 2]

End If
If výraz 1 Then

tělo cyklu 1

ElseIf výraz 2 Then

tělo cyklu 2 - 1

[Else

tělo cyklu 2 - 2]

End If
Pokud má výraz hodnotu True, provede se tělo cyklu 1, jinak se provede tělo cyklu 2.
Select Case výraz
Case hodnota 1
tělo 1
Case hodnota 2
tělo 2
[Case Else
tělo když žádná hodnota]
End Select
Podle hodnoty výrazu provede příslušnou činnost. Lze zadat rozsah hodnot (např.: 1 To 5; Is <15; Is> 10).
On Error {GoTo řádek Resume Next GoTo 0}
Určení, co se má provést v případě výskytu chyby. Příkaz Resume Next vrací řízení za příkaz, který vyvolal chybu. Proměnná Err obsahuje číslo chyby, proměnná Error její hlášení, proměnná Erl vrací číslo řádku, na kterém došlo k chybě.
On výraz GoTo když 1, když 2, když 3, ...
Podle hodnoty číselného výrazu pokračuje činnost na určených řádcích.
On výraz GoSub když 1, když 2, když 3, ...
Podle hodnoty číselného výrazu se vyvolá procedura na určených řádcích.
GoSub řádek
Vyvolání procedury na určeném řádku. Řádek se označuje číslem nebo textovým návěštím odděleným dvojtečkou od vlastního řádku. Procedura končí příkazem Return.
DoEvents - čekání na obsloužení všech dříve příchozích událostí.
Stop - ukončení programu.

4.18.4.Operátory

& - spojení dvou argumentů. Např. S = 76 & " " & Jméno.
* - násobení dvou čísel. Např. D = 0,12 * Adresář.Věk.
+ - součet dvou čísel, u řetězců jejich spojení.
- - rozdíl dvou čísel.
/ - podíl dvou čísel, výsledek je reálné číslo (100 000 / 7 = 14 285.714...).
\ - celočíselný podíl dvou čísel, výsledek celé číslo (100 000 \ 7 = 14 285).
^ - umocnění prvního argumentu druhým.
Mod - zbytek po celočíselném dělení.
<,>, <=,>=, <>, = - logické porovnání argumentů.
And - logický součin argumentů.
Or - logický součet argumentů.
Xor - logická funkce Exclusive Or argumentů.
Not - negace argumentu.
Imp - logická implikace dvou operátorů.
Eqv logická ekvivalence dvou operátorů.
Like - logické porovnání, zda první argument začíná na text v druhém argumentu.
In - logické porovnání, zda první argument je prvkem seznamu, který je druhým argumentem.
Is - ve spojení s klíčovým slovem Null jako druhým argumentem určí, zda má první argument prázdnou hodnotu.
Between ... And - ve tvaru : výraz Between hodnota1 And hodnota2 určí, zda hodnota výrazu je v rozsahu <hodnota1, hodnota2>.

4.18.5.Funkce, instrukce, metody

4.18.5.1.Deklarace proměnných

[Global] Const jméno = hodnota [, jméno = hodnota] - definice konstant.
Dim jméno proměnné [(rozsah)][As typ] - deklarace proměnné nebo vektoru, např. :
Dim A(1 To 10, 1 To 100), D As Double, T As Recordset
případně dynamického vektoru, např. :
Dim DynaPole() As Integer.
Global jméno proměnné [(rozsah)][As typ] - deklarace proměnných v proceduře, jako globální parametry.
ReDim [Preserve] jméno proměnné [(rozsah)][As typ] - změna deklarace proměnné. Preserve -
- uložení obsahu pro jeho obnovení při návratu k původní deklaraci.
Static jméno proměnné [(rozsah)][As typ] - deklaruje proměnné v proceduře jako statické. Při druhém volání procedury budou zachovány hodnoty z prvního volání.
Erase jméno proměnné - reinicializuje prvky statického pole, ruší alokaci paměti pro dynamické pole.
LBound (jméno vektoru[, rozměr]) - vrátí dolní rozsah vektoru.
UBound (jméno vektoru[, rozměr]) - vrátí horní rozsah vektoru.
Option Base počet - deklaruje implicitní dolní rozsah rozměru vektoru.
Type uživatelský typ jméno elementu As typ [jméno elementu As typ] End Type - definice uživatelského typu proměnných. Proměnná tohoto typu se skládá z několika elementů, které se označují jméno proměnné.jméno elementu.
Deftype rozsah písmen [, rozsah písmen] - pokud nění nastavena explicitní deklarace proměnných a lze definovat novou proměnnou při jejím prvním použití, je možno její typ určit příponou (suffix) nebo podle prvního písmene názvu. Touto deklarací se určí jaké první písmena patří kterému typu - Int, Lgn, Sng, Dbl, Cur, Str, Var (např.: DefInt I - K, M).

4.18.5.2.Dynamická komunikace s jinými úlohami

DDE (aplikace, soubor, položka) - inicializuje dynamickou komunikaci.
DDEInitiate (aplikace, soubor) - začátek dynamické komunikace s úlohou, vrací číslo komunikace.
DDEExecute číslo komunikace, příkaz - provedení činnosti v úloze.
DDETerminate číslo komunikace - ukončení dynamické komunikace s úlohou.
DDETerminateAll - ukončení dynamické komunikace se všemi úlohami.
DDEPoke číslo komunikace, položka, hodnota - přesun dat do jiné úlohy.
DDERequest (číslo komunikace, hodnota) - přesun dat z jiné úlohy.
DDESend (aplikace, soubor, položka, hodnota) - start a provedení dynamické komunikace s úlohou.

4.18.5.3.Výběr z variant

IIf (logický výraz, když platí, když neplatí) - funkce vrátí jednu z hodnot, podle výsledku výrazu.
Choose(číselný výraz, když 1, když 2, ..., když 13) - funkce vrátí jednu z hodnot, podle výsledku výrazu.
Switch (výraz 1, hodnota 1, výraz 2, hodnota 2 ...) - funkce vrátí hodnotu, která následuje za prvním platným logickým výrazem.

4.18.5.4.Kontrola datového typu

IsDate (proměnná) - určí, zda proměnná je typu datum.
IsEmpty (proměnná) - určí, zda je proměnná neinicializovaná (např. nebyla uvedena v příkaze Dim).
IsNull (proměnná) - určí, zda je proměnná prázdná (inicializovaná, ale nenaplněná).
IsNumeric (proměnná) - určí, zda proměnná je číselného typu.
VarType (proměnná) - určí, jakého typu je proměnná ( 0 - Empty, 1 - Null, 2 - Integer, 3 - Long, 4 - Single, 5 - Double, 6 - Currency, 7 - Date, 8 - String).
TypeOf objekt Is objektTyp - vrací True, pokud je zadaný objekt formuláře nebo sestavy určeného typu (BoundObjectFrame, CommandButton, ObjectFrame, Rectangle, ToggleButton, CheckBox, Label, OptionButton, SubForm, ComboBox, Line, OptionGroup, SubReport, ListBox, PageBreak, TextBox). Používá se jako podmínka ve struktuře If podmínka Then ... Else ... End If.

4.18.5.5.Konverze datového typu

Chr (číslo 0 255) - převod ANSI hodnoty na znak.
Asc (znak) - převod znaku na ANSI hodnotu.
Format (výraz [, předpis]) - převede výsledek výrazu do tvaru podle formátovacího předpisu.
Str (výraz) - převede číslo na řetězec.
Val (výraz) - převede řetězec na číslo.
CCur (výraz) - převede číslo na číslo formátu Currency.
CDbl (výraz) - převede číslo na číslo formátu Double.
CInt (výraz) - převede číslo na číslo formátu Integer.
CLng (výraz) - převede číslo na číslo formátu Long.
CSng (výraz) - převede číslo na číslo formátu Single.
CStr (výraz) - převede číslo na formát String.
CVar (výraz) - převede číslo na formát Variant.
CVDate (výraz) - převede řetězec nebo číslo na datum.
Fix (výraz) - vrátí celou část čísla.
Int (výraz) - převede číslo na celé číslo se zaokrouhlením.
Hex (výraz) - převede číslo na číslo v hexadecimální (šestnáctkové) soustavě.
Oct (výraz) - převede číslo na číslo v oktalové (osmičkové) soustavě.

4.18.5.6.Práce s datumem

Now [()] - vrátí aktuální datum a čas.
Date [()] - vrátí aktuální datum (jako instrukce nastaví datum v počítači).
DateSerial (rok, měsíc, den) - převede datum zadané po částech na řetězec.
DateValue (řetězec) - převede řetězec na datum.
Day (datum) - vrátí číslo dne datumu.
Month (datum) - vrátí číslo měsíce datumu.
Year (datum) - vrátí číslo roku datumu.
Weekday (datum) - vrátí číslo dne v týdnu z datumu.
DatePart (interval, datum) - vrátí požadovaný údaj z datumu.
DateAdd (interval posunu, počet intervalů, datum) - vrátí datum posunuté o udaný interval.
DateDiff (interval, datum 1, datum 2) - vrátí počet intervalů mezi zadanými daty.

4.18.5.7.Práce s časem

Time [()] - vrátí aktuální čas (jako instrukce nastaví čas v počítači).
Timer - vrátí číslo sekundy v rámci půl dne. Pro časování operací, stanovené čekání apod.
TimeSerial (hod, min, sec) - převede čas zadaný po částech na řetězec.
TimeValue (řetězec) - převede řetězec na čas.
Hour (čas) - vrátí číslo hodiny z času.
Minute (čas) - vrátí číslo minuty z času.
Second (čas) - vrátí číslo sekundy z času.

4.18.5.8.Práce s řetězci

Microsoft Access podporuje dva typy uložení řetězců. Jednak je to typ Variant, kdy má řetězec proměnnou délku, za druhé typ String, kdy má řetězec pevnou délku. Funkce pro práci s řetězci typu String se liší přidáním znaku $ na konec názvu funkce.

Chr (číslo 0 - 255) - převod ANSI hodnoty na znak.
Asc (znak) - převod znaku na ANSI hodnotu.
Str (výraz) - převede číslo na řetězec.
Val (výraz) - převede řetězec na číslo.
Format (výraz [, předpis]) - převede výsledek výrazu do tvaru podle formátovacího předpisu.
Space[$] (n) - vrátí řetězec obsahující daný počet mezer.
String[$] (n, znak) - vrátí řetězec tvořený zadaným počtem určených znaků.
InStr ([start], řetězec1, řetězec2) - určí, zda řetězec2 je částí řetězce1, vrací pozici, na které začíná řetězec2 v řetězci1 nebo 0 pokud se v něm nenachází nebo Null, pokud je řetězec2 prázdný (Null).
Left[$] (řetězec, n) - vrátí daný počet znaků od začátku řetězce.
LTrim[$] (řetězec) - zruší mezery na začátku řetězce.
Mid[$] (řetězec, starý,[n]) = nový - nahradí podřetězec uvnitř řetězce novou hodnotou.
Right[$] (řetězec, n) - vrátí daný počet znaků od konce řetězce.
RTrim[$] (řetězec) - zruší mezery na konci řetězce.
Trim[$] (řetězec) - zruší mezery na obou koncích řetězce.
LCase[$] (řetězec) - převede řetězec na malá písmena.
UCase[$] (řetězec) - převede řetězec na velká písmena.
LSet v1 = v2 - přiřazení se zarovnáním formátu doleva.
RSet v1 = v2 - přiřazení se zarovnáním formátu doprava.
Len (řetězec) - vrací délku řetězce typu Variant.
StrComp (řetězec1, řetězec2 [, metoda]) - provede porovnání dvou řetězců, vrací -1 první řetězec je kratší nebo nezačíná stejně jako druhý, 0 oba jsou stejné, 1 první začíná stejně, ale je delší než druhý nebo začíná stejně, ale nejsou oba shodné.

4.18.5.9.Práce se seznamem hodnot

Následující funkce lze použít v programech, dotazech, sestavách apod. Pro použití v SQL příkazech (též v dotazech, sestavách apod.) existují funkce stejného významu, jejich název postrádá úvodní písmeno D, a mají pouze jeden parametr - název položky ve formuláři, sestavě apod. Zdroj je název tabulky nebo dotazu se záznamy, kritérium je porovnávací operace s položkami záznamu, její platnost rozhoduje o zařazení záznamu do zpracování.

DAvg (položka, zdroj, kritérium) - vypočte průměrnou hodnotu položek záznamů vyhovujících kritériu.
DCount (položka, zdroj, kritérium) - vypočte počet neprázdných položek záznamů vyhovujících kritériu.
DFirst (položka, zdroj, kritérium) - vrátí hodnotu položky prvního záznamu vyhovujícího kritériu.
DLast (položka, zdroj, kritérium) - vrátí hodnotu položky posledního záznamu vyhovujícího kritériu.
DMax (položka, zdroj, kritérium) - vrátí hodnotu maximální položky záznamu vyhovujícího kritériu.
DMin (položka, zdroj, kritérium) - vrátí hodnotu minimální položky záznamu vyhovujícího kritériu.
DStDev (položka, zdroj, kritérium) - vrátí standardní odchylku položek záznamů vyhovujících kritériu.
DStDevP (položka, zdroj, kritérium) - vrátí standardní odchylku položek záznamů vyhovujících kritériu.
DSum (položka, zdroj, kritérium) - vrátí součet položek záznamů vyhovujících kritériu.
DVar (položka, zdroj, kritérium) - vrátí rozptyl položek záznamů vyhovujících kritériu.
DVarP (položka, zdroj, kritérium) - vrátí rozptyl položek záznamů vyhovujících kritériu.
DLookup (položka, zdroj, kritérium) - vrátí hodnotu položky prvního záznamu vyhovujícího kritériu.

4.18.5.10.Komunikace se soubory

Práce s konkrétním souborem
Open soubor [For mode][Access access][zamykání] As [#]číslo [Len buffer] - otevření souboru.
Close [#] číslo - uzavření souboru.
Reset - uzavření všech souborů.
Print [#] číslo, hodnota [{; ,}] - výstup řetězce do souboru.
Put [#] číslo,[číslo záznamu], hodnota - výstup na určené místo do souboru.
Write # číslo, hodnota - výstup do souboru.
Spc (počet) - jako argument příkazu Print uloží do souboru daný počet mezer.
Tab (sloupec) - jako argument příkazu Print přesune výstup na daný sloupec.
Width # číslo, délka řádku - určuje délku řádku souboru.
Get [#] číslo,[číslo záznamu],proměnná - vstup z určeného místa souboru.
Input # číslo, seznam proměnných - vstup ze souboru.
Line Input # číslo, proměnná - vstup jednoho řádku ze souboru.
Pomocné funkce
EOF (číslo) - test konce souboru.
FileAttr (číslo, atribut) - vrací atributy souboru.
FreeFile () - vrací první použitelné číslo souboru pro jeho otevření příkazem Open.
Loc (číslo) - vrací aktuální pozici v otevřeném souboru.
LOF (číslo) - vrací délku souboru v Byte.
Seek [#] číslo, hodnota - nastaví požadovanou pozici v otevřeném souboru.
Práce s disky
Name staré jméno As nové jméno - změna jména souboru.
Kill soubor - zruší soubor.
ChDrive zařízení - změna aktuálního zařízení (disku).
ChDir cesta - změna aktuální (implicitní) cesty na zařízení (disku).
CurDir[$] zařízení - vrátí aktuální (implicitní) cestu na určeném zařízení (disku).
MkDir cesta - vytvoření nového adresáře.
RmDir cesta - zrušení adresáře.
Dir[$] [(maska)] - vrátí jméno nalezeného souboru, který vyhovuje masce.
Lock ... Unlock [#] číslo [{záznam [start] To konec}] - uzamčení/odemčení záznamů.

4.18.5.11.Matematické funkce

Exp (x) - xtá mocnina základu přirozených logaritmů.
Log (x) - přirozený logaritmus argumentu.
Sqr (x) - druhá odmocnina argumentu.
Atn (x) - arcus tangens argumentu.
Cos (x) - kosinus argumentu.
Sin (x) - sinus argumentu.
Tan (x) - tangens argumentu.
Abs (x) - absolutní hodnota argumentu.
Sgn (x) - funkce signum argumentu (znaménko).
Randomize [číslo] - inicializace generátoru náhodných čísel.
Rnd [(rozsah)] - generuje náhodné číslo.
Fix(výraz) - vrátí celou část čísla.
Int(výraz) - převede číslo na celé číslo se zaokrouhlením.

4.18.5.12.Finanční funkce

Access Basic obsahuje také řadu specializovaných finančních funkcí. Jejich použití je omezeno na poměrně úzký okruh uživatelů, proto uvádíme jen jejich výčet.
DDB, FV, IPmt, IRR, MIRR, NPer, NPV, Pmt, PPmt, PV, Rate. SLN, SYD.

4.18.5.13.Komunikace s uživatelem za běhu programu

InputBox[$] (hlášení [, [nadpis] [, [implicitní hodnota][, xpos, ypos]]]) - otevře okno pro vstup hodnoty, hodnoty xpos a ypos udávají posunutí od okraje obrazovky v bodech.
MsgBox (hlášení [, typ [, nadpis]]) - otevře okno s nadpisem a hlášením podle udání typu, který se zadává jako součet požadavků :

Hodnota

zobrazení tlačítek

0

OK

1

OK, Cancel

2

Abort, Retry, Ignore

3

Yes, No, Cancel

4

Yes, No

5

Retry, Cancel

Hodnota

ikona na levé straně okna

0

není

16

STOP

32

?

48

!

64

I

Hodnota

Aktuální tlačítko

0

První

256

druhé

512

třetí

Funkce MsgBox vrací následující číselné hodnoty podle stisku tlačítka:

Hodnota

stisknuto tlačítko

1

OK

2

Cancel

3

Abort

4

Retry

5

Ignore

6

Yes

7

No

4.18.5.14.Pomocné činnosti

AppActivate jméno - otevře aplikační okno s udaným jménem.
Shell (příkaz [, styl windows]) - spustí aplikaci pod Windows.
Eval (operace) - provede matematickou operaci zadanou jako řetězec a vrátí výsledek.
DoEvents - reakce na událost. Zajistí, že budou zpracovány všechny požadavky (události), které přišly před jejím voláním (např. všechny klávesy v příkazu SendKeys). Systém bude připraven okamžitě reagovat na nově příchozí událost.
SendKeys klávesy [, čekání] - provede zadanou posloupnost kláves.
Beep - zvukový signál.
Command[$] [()] - vrátí obsah příkazového řádku spuštění programu Access.
Environ[$] ({n řetězec}) - vrací hodnoty systému (např. Environ(1) vrátí "CONFIG=Normal").
Partition (položka, start, stop, interval) - funkce pro tvorbu skupin záznamů v SQL.
Rem text - text je považován za komentář, nepřekládá se, ani neprovádí jako příkaz.
' text - text je považován za komentář, nepřekládá se, ani neprovádí jako příkaz.

4.18.5.15.Grafické operace

Práce s barvami
QBColor (qbbarva) - vrací RGB číslo obvyklých barev QB (0 15).
RGB (červená, zelená, modrá) - vrací číslo barvy zadané podílem barevných složek (0 255).

Návrat k obsahu