Promotic

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).

- 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í..., karta Úroveň zabezpečení.
Vybrat "Střední" (Po spuštění aplikace bude otevřeno 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 přejmenuje název listu (Sešitu), pak 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í tlačítka v List1:
V "List1" stiskněte 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" stiskněte 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í. Vzhled a popisný text se upraví pravým tlačítkem myši nad tímto objektem ve vlastnostech. Dvojklikem levým tlačítkem myši nad tímto objektem se otevře "Editor Jazyka Visual Basic" a v něm se "přednastaví funkce", která bude volána po stisknutí (popsáno níže). Zavřít "Editor Jazyka Visual Basic", zrušit režim návrhu (kliknutím deaktivovat) a aplikaci průběžně uložit.

b) V Editoru Jazyka Visual Basic. Otevře 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 levým tlačítkem 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. (Volá 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, pokud 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 stisknutí 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 pomocí metody "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" - Č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" - 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 otevře klávesou F1, je funkční i kontextově pokud je kurzor umístěn na klíčovém slově.
Funkce lze spouštět jednotlivě pokud je 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 stisknutí tlačítka "Toggle Breakpoint".
Hodnota proměnné může být sledována 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.