14.1 Databáze a VB
14.2 Objekt Data
14.3 Další práce s databází
14.4 Objekt OLE
14.5 Domácí úkol
14.6 V další lekci...
14.1 Databáze a VB
Visual Basic je schopen pracovat s několika druhy databází, jako příklady uvedu Access, Paradox, dBase, FoxPro, Lotus, SQL, a dokonce i Excel. Visual Basic umožňuje editaci databází - a to jak přidávání, tak odebírání a úpravu záznamů. S databázemi se pracuje pomocí objektu Data. Visual Basic se používá především pro vytváření uživatelského rozhraní, které výrazně zjednodušuje správu a editaci databází. Psaní programů pro úpravu databází je opravdu záležitostí několika desítek minut. Právě v tomto Visual Basic vyniká. Používá databázovou technologii Microsoft NET, kterou využívá aplikace Microsoft Access.
Vrátím se ještě k uživatelským rozhraním. Pomocí Visual Basicu můžeme vytvořit pro několik databází jedno uživatelské rozhraní, a naopak pro jednu databázi několik uživatelských rozhraní, třeba pro určité skupiny lidí. Některým se bude zobrazovat více, jiným méně, někteří budou moci editovat cokoliv, jiní jen něco a někteří třeba vůbec nic. Vytvoření jednoduchého databázového uživatelského rozhraní je záležitostí chviličky. O tom se přesvědčíme v následující kapitole.
14.2 Objekt Data
Objekt Data je ve Visual Basicu hlavním objektem pro práci s databázemi. Umožňuje se v nich velmi snadno pohybovat. Vše vám ukážu na příkladu. Databáze se často užívají pro správu kontaktů, a tak i pro nás to budiž příkladem. Dejme tomu, že máme databázi Access, v ní máme tabulku s kontakty. Pokud ji nemáme, tak si ji prostě vytvoříme. Samozřejmě můžeme použít i jinou databázi.
Ale teď to hlavní. Dejme tomu, že potřebujeme zobrazit třeba šest údajů. Bude nejlepší je zobrazit v TextBoxech a k nim přidat popisky pomocí Labelů. Vložíme si také pro nás nezbytný objekt Data. Nejprve si nastavíme vlastnost Connect na Access, případně jinou, záleží na tom, jakou jste použili. Pak do vlastnosti DatabaseName doplníme cestu k databázi. Dále ve vlastnosti RecordSource zvolíme část databáze, se kterou chceme pracovat. Tím bychom měli nastavení objektu Data. Teď se již budeme věnovat nastavení jednotlivých TextBoxů, které musíme nějakým způsobem spojit s databází, takzvaně je provázat. Je to celkem jednoduché, a dokonce ani nemusíte psát žádný zdrojový kód. Tak tomu je, pokud zatím nevymýšlíte různá vylepšení. Stačí do vlastnosti DataSource vložit název objektu, ze kterého data pro TextBox bereme, v našem případě je to Data1. A na závěr vybereme, co se bude v TextBoxu vlastně zobrazovat, a to ve vlastnosti DataField. Pokud mluvíme o kontaktech a zároveň máme vytvořenou kvalitní databázi, tak se nám „vyroluje“ seznam toho, co tato část databáze obsahuje. Měla by tam být třeba telefonní čísla. Totéž uděláme i pro ostatní TextBoxy, ale místo telefonního čísla zvolíme třeba jméno, příjmení apod. Pokud program spustíme, můžeme se mezi jednotlivými záznamy pohybovat pomocí šipek na objektu Data1.
14.3 Další práce s databází
Doposud jsme byli líní lidé, vůbec jsme nepsali zdrojový kód. Jenže to teď končí, protože už ho budeme potřebovat. První do čeho se pustíme, nebude vytváření ani mazání (to je pro některé nejzábavnější), ale bude to hledání. Ona totiž databáze, která neumožňuje vyhledávání, je taková… no prostě se v ní špatně orientuje. Využíváme objetu RekordSet, neboli množina záznamů. Ale ne, kdepak, nesnažte se ji hledat v komponentách, protože ne všechny objekty musí být vidět.
Private Sub Command1_Click()
retezec = InputBox("Zadej hledaný text", "Hledání")
Data1.Recordset.Index = "příjmení"
Data1.Recordset.Seek "=", retezec
If Data1.Recordset.NoMatch = True Then MsgBox ("Výsledek nenalezen")
End Sub
Tady je ukázka kódu na vyhledávání v databázi. Nejdříve zadáme hledaný řetězec do InputBoxu. Potom, a to hned v dalším řádku, nastavíme, že chceme prohledávat databázi, kterou jsme umístili do objektu Data1, a že chceme pracovat s příjmeními. Dále už vyhledáváme pomocí Seek. Této funkci jsme zadali hodnotu „rovná se“, je v uvozovkách, aby hledala záznamy, které odpovídají. Operátor se dá změnit. Nakonec zadáme vyhledávaný řetězec. Těch může být několik, oddělují se čárkou. U nalezeného řetězce se to zastaví. Pokud se nepodaří najít ani jeden záznam, je ve vlastnosti NoMatch hodnota True, podle ní pak necháme vypsat dialog, že nebylo nic nalezeno. A ještě se můžeme přesunout na začátek databáze pomocí:
Data1.Recordset.MoveFirst
Příkazů je tam obrovské množství, a než bych vám o všech řekl, byly by Vánoce - a kdoví které. Proto si to raději vyzkoušejte sami. Za všechny můžu uvést třeba MoveNext či MovePrevious. Je jich opravdu mnoho. Nyní se ale pustíme do vytváření záznamů, je to ještě jednodušší než jeho hledání. Stačí napsat:
Data1.Recordset.AddNew
a doplnit chybějící data. A je hotovo, byl vytvořen další záznam. Ten se trvale uloží do databáze. Mazání taky není nic složitého, zde pro změnu stačí napsat:
Data1.Recordset.Delete
a doplnit to ještě tím, že se přesuneme na další záznam - viz následující řádek kódu.
Data1.Recordset.MoveNext
K editaci stačí pole se záznamem změnit. Pokud chcete editaci zabránit, můžete zakázat uživateli možnost psaní do textového pole. A to už byste měli znát.
14.4 Objekt OLE
Pomocí objektu OLE můžeme spouštět některé jiné nainstalované aplikace nebo dokonce jen jejich části a využívat je k práci ve vašem vlastním programu. Za všechno mluví v mnohých publikacích zmiňovaná kontrola pravopisu. Zatím si ukážeme jen základy. Na formulář si vložím objekt OLE - je v základní nabídce, nemusíte pro něj lézt do Komponent. Po vložení se vám objeví okno, ve kterém si můžete vybrat, se kterou aplikací chcete objekt provázat.
To si ostatně můžete vyzkoušet sami. Zatím se tímto objektem nebudu zabývat do hloubky, ale časem si na něj také posvítíme.
14.5 Domácí úkol
Tentokrát vám dám možnost pořádně si to procvičit. Úkolem bude vytvořit program pro správu kontaktů. Mezi samozřejmosti bude možnost přidání, smazání, hledání a změna v databázi. Takže opět nic složitého.
14.6 V další lekci
V následující lekci se podíváme na Další objekty, které se v programovacím jazyku Visual Basic dají použít, čímž už pomalu přecházím od úplných základů trochu výš. Jak vysoko se dostanete, to záleží jenom na vás.