Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Příklad jak v MsExcel načítat data z externích databází

Tento soubor představuje jednoduchý příklad, jak lze v Excelu načítat data z externích souborů typu *.dbf nebo *.csv (aplikace byla vytvořena ve verzi Microsoft Excel 2000 cz).
 
- Příklad je umístěn ve složce: /Pm/Examples/AppExamples.
- Zdrojové soubory jsou pro tento příklad "Data.dbf" nebo "Data.csv".
 
1. Možnosti a omezení:

Obecně lze načítat data z každé databáze jejiž otevření Excel podporuje. Cestu ke zdrojovému souboru nelze zadat relativní cestou (list "Settings", buňka "B1"). Externí databáze (ty, které jsou podporovány) se metodou "Open" otevírají v prostředí Excelu. A proto je obvyklé, že "Název listu, ve kterém jsou zdrojová data" = Název souboru bez přípony (list "Settings", buňka "B2"). V nastavení Excelu musí být v menu:

Nástroje/Makro/Zabezpečení..., záložka Úroveň zabezpečení.
Vybrat "Střední" (Při spuštění aplikace bude vyvoláno modální okno, ve kterém se musí povolit vykonáváni Maker).
nebo "Nízká" (Makra se provedou ihned a bez dotazu). V předchozích verzích Excelu byla tato volba v: Nástroje/Možnosti...

Pokud se uživatelsky přejmenuje název listu (Sešitu) dojde k selhání skriptu (Makra).

 
2. Jak je tato aplikace vytvořena

Byl použit následující postup:

 
a) Ve vizuálním prostředí Excelu byly pro zpracování použity dva listy:
"List1" s tlačítkem spuštění načítání dat a oblast (od buňky "A2"), do které se budou data načítat.
"Setting" - buňky A1 a A2 s popisem a buňky B1 a B2, jejiž "hodnota" je použita v níže popsaném skriptu
 
Vytvoření funkčního tlačítka v List1:

V "List1" stisknout pravé tlačítko myši na prázdném poli lišty "Menu" a z nabídnutých položek vybrat ovládací prvky.

V menu "Ovládací prvky" stisknout tlačítko "Návrh režimu", až se stane aktivním, pak "Příkazové tlačítko".

Pak ve stránce pohybem myši se stisknutým levým tlačítkem se vyznačí oblast, do které se tlačítko vykreslí. Pravým tlačítkem myši nad tímto objektem ve vlastnostech se upraví vzhled a popisný text. Dvojklikem myši nad tímto objektem se vyvolá "Editor Jazyka Visual Basic" a v něm se "přednastaví funkce", která bude vyvolána při stisku (popsáno níže). Uzavřít "Editor Jazyka Visual Basic", zrušit režim návrhu (klikem deaktivovat) a aplikaci průběžně uložit.

 
b) V Editoru Jazyka Visual Basic. Vyvolá se z menu Nastroje/Makro/Editor Editor Jazyka Visual Basic (Alt+F11).

Popis Editoru a jeho základní funkce:

V okně "Project-VBAProject" (tlačítko Project Explorer) jsou k dispozici všechny listy aplikace, dále objekt "ThisWorkbook" a v sekci Modules "Modul1". Dvojklikem myši se objeví v okně pro editaci obsah (skripty), které tyto objekty obsahují. Tato aplikace má v objektu "ThisWorkbook" v události "Open" vytvořenou funkci, která se provede v okamžiku, kdy je aplikace otevřena. (Vyvolá funkci "Init" v globálním "Modul1" a současně je ošetřena událost, pokud tato funkce selže).

V objektu "List1" je seřazen seznam funkcí, které se postupně provedou, jestliže se klikne na "Tlačítko" v tomto listu. Opět je ošetřena událost, pokud některá z těchto funkcí selže.

A v objektu "Modul1" jsou funkce, na které je odkaz po stisku tlačítka nebo ty, které obsluhují běh spuštěného procesu.

 
Popis skriptů ve funkcích modulu Modul1:

V úvodu jsou vytvořeny globální proměnné (Public - tyto budou dostupné ve všech funkcích i objektech této aplikace).

Funkce "Init" - vytvoří reference na tuto aplikaci "List1" a "Setting" a do proměnných sPath přiřadí hodnotu z buňky B1 a do sSheet hodnotu z buňky B2. Dále metodou "Open" s 1 parametrem sPath otevře zdrojovou databázi a vytvoří referenci na tento globální objekt. Stejně tak vytvoří referenci na list tohoto objektu.
Funkce "Reset" - uvolňuje proměnné z paměti, pokud selže běh aplikace.
Funkce "ReadData" - je funkce, která čte data z databáze a zapisuje je do "List1" této aplikace. Je složena ze dvou smyček For-Next a Do-Loop-While. For-Next zajistí, že data ze zdroje (DB) se načítají a zapisují od sloupce prvního po sloupec čtvrtý. Do-Loop-While (v těle smyčky For-Next) provádí to, že čte a zapisuje do "List1" každou hodnotu v řádku daného sloupce a to do té doby, dokud v prvním sloupci zdrojové databáze není řádek s "prázdnou hodnotou" (podmínka ve While).
Funkce "CloseDb" - je funkce, která zavře databázi a uvolní globální proměnné z paměti.
 
3. Nápověda, ovládání a ladění skriptů:

Nápověda v editoru Jazyka Visual Basic se vyvolá klávesou F1, je funkční i kontextově je-li kurzor umístěn na klíčovém slově.

Funkce lze spouštět jednotlivě je-li kurzor v těle funkce a je spuštěno tlačítko "Run Sub/User Form" nebo klávesou F5.

Lze krokovat skript tlačítkem "Step Into".

Vykonávání skriptu se ukončí tlačítkem "Reset".

Zarážku běhu skriptu lze zadat tak, že se vytvoří v místě kde je umístěn kurzor po stisku tlačítka "Toggle Breakpoint".

Hodnotu proměnné lze sledovat v okně Watch spuštěném tlačítkem "Watch". Do něj při "krokování" tahem myši je přenesena požadovaná proměnná jejiž hodnotu pak lze sledovat.

Navigace:
 
 
- Jak v MsExcel načítat data z externích databází
 
 
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice