Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Przykład jak w MsExcel wczytywać dane z zewnętrznych baz danych

Plik ten przedstawia prosty przykład, w jaki sposób można w Excelu wczytywać dane z zewnętrznych plików typu *.dbf nebo *.csv (aplikacja została stworzona w wersji Microsoft Excel 2000 cz).
 
- Dla tego przykładu plikami źródłowymi są "Data.dbf" lub "Data.csv".
 
1. Możliwości oraz ograniczenia:

Ogólnie można wczytywać dane z każdej bazy danych, której otwarcie umożliwia Excel. Ścieżkę do pliku źródłowego nie można określić ścieżką względną (arkusz "Settings", komórka "B1"). Zewnętrzne bazy danych (te, które są wspierane) otwierane są przy pomocy metody "Open" w środowisku Excela. Dlatego zazwyczaj, "Nazwa arkusza, w którym znajdują sie dane źródłowe" = nazwa pliku bez rozszerzenia (arkusz "Settings", komórka "B2"). W ustawieniach Excela w menu powinno się znajdować:

Narzędzia/Makro/Zabezpieczenie..., karta Poziom zabezpieczenia.
Wybrać "Średni" (Podczas uruchomienia aplikacji zostanie wywołane okno dialogowe, w którym należy zezwolić wykonywanie Makro wyrażeń).
lub "Niski" (Makra zostaną od razu wykonane bez zapytania). W poprzednich wersjach Excela wybór ten znajdował się w: Narzędzia/Możliwości...

Jeżeli dojdzie do zmiany nazwy arkusza (Zeszytu), wtedy nastąpi błąd skryptu (Makra).

 
2. W jaki sposób została ta aplikacja stworzona

Został zastosowany następujący schemat:

 
a) W środowisku Excela do opracowania zostały wykorzystane dwa arkusze:
"Arkusz1" z przyciskiem uruchomienia wczytywania danych oraz obszar (od komórki "A2"), do którego dane będą wczytywane.
"Ustawienie" - komórki A1 oraz A2 z opisem oraz komórki B1 oraz B2, którzch "wartość" jest zastosowana w poniżej opisanym skrypcie
 
Wytworzenie funkcjonalnego przycisku w Arkusz1:

W "Arkusz1" naciśnij prawy przycisk myszy ponad pustym obszarem paska "Menu" a z oferowanych pozycji wybrać elementy sterowania.

W menu "Elementy sterowania" naciśnij przycisk "Propozycja trybu", by stał się aktywny, następnie "Przycisk polecenia".

Następnie ruchem po arkuszu z naciśniętym lewym przyciskiem myszki zostanie zaznaczony obszar, do którego zostanie przycisk narysowany. Nad tym obiektem w właściwościach zostanie prawym przyciskiem myszy poprawiony wygląd oraz tekst opisu. Poprzez dwukrotne kliknięcie myszki ponad tym obiektem zostanie wywołany "Edytor Języka Visual Basic" a w nim można "wstępnie ustawi funkcję", która zostanie wywołana po naciśnięciu (opis poniżej). Zamknąć "Edytor Języka Visual Basic", zamknąć tryb tworzenia (kliknięciem deaktywować) oraz aplikację bieżąco zapisać.

 
b) W Edytorze Języka Visual Basic. Wywoła się z menu Narzędzia/Makro/Edytor Edytor Języka Visual Basic (Alt+F11).

Opis Edytora oraz jego podstawowe funkcje:

W oknie "Project-VBAProject" (przycisk Project Explorer) są do dyspozycji wszystkie arkusze aplikacji, następnie obiekt ThisWorkbook oraz w sekcji Modules "Modul1". Poprzez dwukrotne kliknięcie myszki w oknie dla edycji pojawi się zawartość (skrypty), które te obiekty zawierają. Ta aplikacja posiada w obiekcie ThisWorkbook w zdarzeniu "Open" wytworzoną funkcję, która zostanie wykonana w momencie, kiedy aplikacja zostanie uruchomiona. (Wywoła funkcję "Init" w globalnym "Modul1" a zarazem jeżeli w funkcji nastąpi błąd, wtedy to zapewnia zdarzenie).

W obiekcie Arkusz1 znajduje się uszeregowana lista funkcji, które zostaną kolejno wykonane, jeżeli zostanie naciśnięty "Przycisk" w tym arkuszu. Jeżeli w dowolnej z tych funkcji nastąpi błąd, wtedy to ponownie zapewnia zdarzenie.

A w obiekcie Moduł1 znajdują się funkcje, do których istnieje link po naciśnięciu przycisku lub te, które obsługują przebieg uruchomionego procesu.

 
Opis skryptów w funkcjach modułu Moduł1:

Na wstępie zostaną wytworzone globalne zmienne (Public - te będą dostępne we wszystkich funkcjachoraz obiektach tej aplikacji).

Funkcja "Init" - Wytworzy referencje na tą aplikację "List1" oraz "Setting" a do zmiennych sPath przyszereguje wartość z komórki B1 a do sSheet wartość z komórki B2. Następnie przy pomocy metody "Open" z 1 parametrem sPath otworzy źródłową bazę danych oraz wytworzy referencję ne ten globalny obiekt. W taki sam sposób wytworzy referencję na arkusz tego obiektu.
Funkcja "Reset" - Zwalnia zmienne z pamięci, jeżeli nastąpi błąd przebiegu aplikacji.
Funkcja "ReadData" - Odczytuje dane z bazy danych oraz zapisuje je do "Arkusz1" tej aplikacji. Składa się z dwu pętli For-Next oraz Do-Loop-While. For-Next zapewni, że dane z źródła (bazy danych) są odczytywane oraz zapisywane od pierwszej kolumny do kolumny czwartej. Do-Loop-While (w pętli For-Next) wykonuje to, że odczytuje oraz zapisuje do "Arkusz1" każdą wartość w wierszu danej kolumny a to tak długo, dopóki w pierwszej kolumnie źródlówej bazy danych nie pojawi się wiersz z "pustą wartością" (warunek w While).
Funkcja "CloseDb" - Zamknie bazę danych oraz zwolni globalne zmienne z pamięci.
 
3. Pomoc, sterowanie oraz dostrajanie skryptów:

Pomoc w edytorze Języka Visual Basic można wywołać przy pomocy klawisza F1, działa tematycznie jeżeli kursor znajduje się w słowie kluczowym.

Funkcje można uruchamiać pojedyńczo jeżeli kursor znajduje się w funkcji i jest aktywny przycisk "Run Sub/User Form" lub przy pomocy klawisza F5.

Skrypt można krokować przy pomocy przycisku "Step Into".

Wykonywanie skryptu zostanie zakończone przy pomocy przycisku "Reset".

Punkt wstrzymania biegu skryptu można wprowadzić w następujący sposób: po naciśnięciu przycisku "Toggle Breakpoint" punkt ten zostanie stworzony w miejscu kursora.

Wartość zmiennej można śledzić w oknie Watch uruchomionym przy pomocy przycisku "Watch". Do niego podczas "krokowania" ciągnięciem myszki zostanie przeniesiona wymagana zmienna, której wartość następnie można śledzić.

© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice