Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00221 007387 11068524 na godz. na dobę w sumie
Access. Programowanie w VBA - książka
Access. Programowanie w VBA - książka
Autor: Liczba stron: 408
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-807-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> access
Porównaj ceny (książka, ebook, audiobook).

Wykorzystaj całą moc Accessa

MS Access jest jednym z najczęściej wykorzystywanych systemów zarządzania bazami danych. Jest łatwy w obsłudze, posiada spore możliwości i nie wymaga poznawania złożonych języków manipulacji danymi. Czasem jednak jego podstawowe możliwości nie wystarczają do realizacji niektórych zadań. W takich sytuacjach należy sięgnąć po VBA (Visual Basic for Applications), czyli narzędzie programistyczne pozwalające na tworzenie 'aplikacji dla aplikacji' -- programów integrujących się z Accessem i wykorzystujących jego funkcje, ale w sposób dokładnie taki, jaki jest potrzebny w określonym przypadku.

Książka 'Access. Programowanie w VBA' opisuje zasady programowania w Accessie z wykorzystaniem VBA. Przedstawia zasady projektowania aplikacji i pracy ze środowiskiem programistycznym VBA, korzystania z elementów i funkcji Accessa oraz tworzenia formularzy i raportów. Znajdziesz w niej także bardziej zaawansowane techniki -- tworzenie aplikacji klient-serwer, mechanizmy wymiany danych pomiędzy aplikacjami pakietu MS Office oraz łączenie Accessa z SQL Serverem.

Jeśli nie wystarczają Ci standardowe możliwości Accessa, sięgnij po VBA -- w ten sposób wykorzystasz prawdziwe bogactwo Accessa.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Access. Programowanie w VBA Autor: Charles E. Brown T³umaczenie: Krzysztof Mas³owski (wstêp, rozdz. 1 – 8), Grzegorz Werner (rozdz. 9 – 21, dod. A) ISBN: 83-7361-807-4 Tytu³ orygina³u: Access VBA Programming Format: B5, stron: 408 Wykorzystaj ca³¹ moc Accessa • Poznaj ġrodowisko VBA • Naucz siê wykorzystywaæ mo¿liwoġci Accessa w VBA • Stwórz wydajne i szybkie aplikacje MS Access jest jednym z najczêġciej wykorzystywanych systemów zarz¹dzania bazami danych. Jest ³atwy w obs³udze, posiada spore mo¿liwoġci i nie wymaga poznawania z³o¿onych jêzyków manipulacji danymi. Czasem jednak jego podstawowe mo¿liwoġci nie wystarczaj¹ do realizacji niektórych zadañ. W takich sytuacjach nale¿y siêgn¹æ po VBA (Visual Basic for Applications), czyli narzêdzie programistyczne pozwalaj¹ce na tworzenie „aplikacji dla aplikacji” — programów integruj¹cych siê z Accessem i wykorzystuj¹cych jego funkcje, ale w sposób dok³adnie taki, jaki jest potrzebny w okreġlonym przypadku. Ksi¹¿ka „Access. Programowanie w VBA” opisuje zasady programowania w Accessie z wykorzystaniem VBA. Przedstawia zasady projektowania aplikacji i pracy ze ġrodowiskiem programistycznym VBA, korzystania z elementów i funkcji Accessa oraz tworzenia formularzy i raportów. Znajdziesz w niej tak¿e bardziej zaawansowane techniki — tworzenie aplikacji klient-serwer, mechanizmy wymiany danych pomiêdzy aplikacjami pakietu MS Office oraz ³¹czenie Accessa z SQL Serverem. • Projektowanie aplikacji • Dostosowanie Accessa do w³asnych potrzeb • Ďrodowisko programistyczne VBA oraz jêzyk Visual Basic for Applications • Tworzenie formularzy, raportów, menu i pasków narzêdziowych • Bezpieczeñstwo baz danych • Aplikacje WWW i zastosowanie jêzyka XML • Tworzenie aplikacji wielodostêpnych Jeġli nie wystarczaj¹ Ci standardowe mo¿liwoġci Accessa, siêgnij po VBA — w ten sposób wykorzystasz prawdziwe bogactwo Accessa. Spis treści O Autorach ...................................................h..................................... 9 Wstęp ...................................................h.......................................... 11 Część I Poznanie środowiska MS Accessa ..................................15 Rozdział 1. Wstęp do VBA for Applications...................................................h...... 17 Historia Microsoft Accessa ...................................................c.......................................... 17 Tworzenie aplikacji w Accessie ...................................................c................................... 19 Okno Baza danych ...................................................c................................................. 19 Makra ...................................................c...................................................c.................. 21 Moduły...................................................c...................................................c................ 22 Przyszłość Microsoft Accessa ...................................................c...................................... 23 Podsumowanie ...................................................c...................................................c.......... 24 Rozdział 2. Projektowanie aplikacji Accessa ...................................................h... 25 Etapy procesu tworzenia aplikacji ...................................................c................................ 26 Określanie i analizowanie wymagań ...................................................c............................ 26 Analizowanie wymagań ...................................................c......................................... 27 Ocena i oszacowanie wymagań ...................................................c.................................... 28 Projektowanie i tworzenie programu...................................................c............................ 29 Model encja-relacja ...................................................c................................................ 30 Tłumaczenie modelu E-R na accessową bazę danych............................................... 31 Wdrażanie i testowanie...................................................c................................................. 34 Przygotowanie dokumentacji ...................................................c....................................... 35 Utrzymanie systemu ...................................................c...................................................c.. 36 Podsumowanie ...................................................c...................................................c.......... 37 Rozdział 3. Używanie Accessa bez VBA...................................................h........... 39 Architektura systemu...................................................c...................................................c. 40 Rozumienie aplikacji bazodanowej ...................................................c.............................. 41 Praca bez VBA ...................................................c...................................................c.......... 42 Relacje...................................................c...................................................c................. 43 Zdarzenia...................................................c...................................................c................... 45 Stwórz makro ...................................................c...................................................c...... 46 Przekształcanie makr w kod VBA...................................................c.......................... 49 Konwencje nazw ...................................................c...................................................c....... 50 Szablony predefiniowane ...................................................c............................................. 50 Menadżer panelu przełączania...................................................c...................................... 51 Podsumowanie ...................................................c...................................................c.......... 55 4 Access. Programowanie w VBA Rozdział 4. Przystosowywanie środowiska Accessa do własnych potrzeb ............ 57 Interakcja z Accessem ...................................................c.................................................. 57 Dostosowywanie paska poleceń ...................................................c............................. 59 Tworzenie własnego paska narzędziowego...................................................c............ 62 Dostosowywanie menu podręcznych ...................................................c........................... 63 Tworzenie menu ...................................................c...................................................c........ 64 Przypisywanie kodu do elementu dostosowanego menu ................................................. 65 Podsumowanie ...................................................c...................................................c.......... 68 Część II Poznanie środowiska VBA...............................................69 Rozdział 5. Wprowadzenie do środowiska programistycznego VBA ...................... 71 Wprowadzenie do VBA ...................................................c............................................... 71 Historia VBA ...................................................c...................................................c...... 72 Model VBA ...................................................c...................................................c............... 72 Moduły...................................................c...................................................c................ 73 Procedury ...................................................c...................................................c............ 73 Koncepcja obiektów ...................................................c...................................................c.. 74 Obiekty ADO ...................................................c...................................................c...... 76 Obiekty VBA ...................................................c...................................................c...... 77 Obiekty Accessa...................................................c...................................................c.. 77 Edytor VBA ...................................................c...................................................c.............. 78 Zaprzęgnięcie edytora VBA do pracy ...................................................c.................... 80 Podsumowanie ...................................................c...................................................c.......... 84 Rozdział 6. Podstawy programowania w VBA...................................................h... 85 Podstawy programowania ...................................................c............................................ 85 Tworzenie modułów standardowych...................................................c...................... 86 Tworzenie procedur ...................................................c............................................... 88 Wejście i wyjście...................................................c...................................................c. 94 Struktury sterujące...................................................c...................................................c..... 96 Struktury decyzyjne ...................................................c............................................... 96 Pętle ...................................................c...................................................c.................. 101 Tablice...................................................c...................................................c..................... 106 Składniki tablicy ...................................................c.................................................. 106 Czyszczenie tablic...................................................c................................................ 111 IsArray ...................................................c...................................................c.............. 111 Podsumowanie ...................................................c...................................................c........ 112 Rozdział 7. Zrozumienie działania edytora VBA ................................................. 113 Otwieranie edytora VBA ...................................................c............................................ 113 Najważniejsze elementy i cechy systemu menu ...................................................c......... 115 Menu Edit ...................................................c...................................................c......... 115 Menu View...................................................c...................................................c........ 115 Menu Tools ...................................................c...................................................c....... 116 Menu podręczne (Shortcut)...................................................c.................................. 116 Paski narzędziowe Debug, Edit i UserForm ...................................................c............... 117 Eksplorator projektu ...................................................c...................................................c 118 Zarządzanie modułami ...................................................c............................................... 119 Wstawianie i kasowanie modułów ...................................................c....................... 119 Importowanie i eksportowanie modułów ...................................................c............. 120 Okno Properties...................................................c...................................................c....... 121 Przeglądarka obiektów ...................................................c............................................... 121 Biblioteki...................................................c...................................................c........... 124 Referencje ...................................................c...................................................c...............125 Spis treści 5 Używanie opcji edytora VBA...................................................c..................................... 125 Karta Editor...................................................c...................................................c....... 126 Karta Editor Format ...................................................c............................................. 129 Karty General i Docking ...................................................c...................................... 130 Sięganie po pomoc ...................................................c...................................................c.. 131 Rozpoczynanie nowej procedury w VBA ...................................................c.................. 133 Podsumowanie ...................................................c...................................................c........ 134 Rozdział 8. Składniki języka VBA ...................................................h.................. 135 Obiekty w VBA...................................................c...................................................c....... 135 Stałe wewnętrzne...................................................c...................................................c..... 136 Podstawowe programy VBA używające formularzy ...................................................c.. 137 Ustawianie ogniska ...................................................c.............................................. 138 Znajdowanie rekordu ...................................................c........................................... 141 Obiekt Me ...................................................c...................................................c......... 143 Sprawdzanie poprawności rekordu ...................................................c...................... 144 Łączenie z Accessem...................................................c.................................................. 145 SQL (strukturalny język zapytań)...................................................c............................... 146 SQL — podstawy...................................................c................................................. 147 SQL i VBA...................................................c...................................................c.............. 150 Prezentacja wyników...................................................c.................................................. 153 Podsumowanie ...................................................c...................................................c........ 155 Rozdział 9. Procedury ...................................................h................................... 157 Deklarowanie procedury ...................................................c............................................ 157 Funkcje...................................................c...................................................c.................... 159 Parametry ...................................................c...................................................c................160 Parametry opcjonalne...................................................c........................................... 162 Parametry nazwane ...................................................c.............................................. 163 Projekt i zasięg ...................................................c...................................................c........ 164 Zmienne globalne i statyczne ...................................................c..................................... 165 Zmienne globalne...................................................c................................................. 165 Zmienne statyczne...................................................c................................................ 166 Zmiana struktury bazy danych za pomocą procedury...................................................c. 167 Konstruowanie tabeli ...................................................c........................................... 167 Podsumowanie ...................................................c...................................................c........ 169 Rozdział 10. Usuwanie usterek z kodu VBA...................................................h..... 171 Podstawowe informacje o obsłudze błędów ...................................................c............... 171 Błędy wykonania...................................................c.................................................. 172 Obiekt Err...................................................c...................................................c................ 176 Kolekcja Errors ...................................................c...................................................c....... 177 Narzędzia do usuwania usterek z kodu...................................................c....................... 180 Okno Immediate i punkty wstrzymania...................................................c................ 181 Asercje ...................................................c...................................................c.............. 183 Okno Locals ...................................................c...................................................c...... 184 Okno Watch ...................................................c...................................................c...... 185 Podsumowanie ...................................................c...................................................c........ 186 Rozdział 11. Funkcje ...................................................h...................................... 187 Podprogramy i funkcje ...................................................c............................................... 187 Funkcje wbudowane...................................................c...................................................c 188 MsgBox...................................................c...................................................c............. 188 InputBox ...................................................c...................................................c........... 192 Funkcje daty i czasu ...................................................c...................................................c 193 Funkcje finansowe...................................................c...................................................c... 195 Podsumowanie ...................................................c...................................................c........ 197 6 Access. Programowanie w VBA Część III Interakcja z VBA ...................................................n.......199 Rozdział 12. Formularze...................................................h.................................. 201 Formularze i dane...................................................c...................................................c.... 201 Dynamiczne przypisywanie zestawów rekordów ...................................................c....... 205 Dołączanie i edytowanie danych ...................................................c................................ 207 Sterowanie formantami na formularzach...................................................c.................... 208 Podsumowanie ...................................................c...................................................c........ 214 Rozdział 13. Raporty ...................................................h...................................... 215 Anatomia raportu...................................................c...................................................c..... 215 Kreator raportów ...................................................c...................................................c..... 218 Raporty specjalne ...................................................c...................................................c.... 220 Wykresy ...................................................c...................................................c............ 221 Etykiety adresowe ...................................................c................................................ 224 Wywoływanie raportu z kodu VBA ...................................................c........................... 226 Tworzenie raportu metodą programową...................................................c..................... 226 Tworzenie pustego raportu...................................................c................................... 226 Dodawanie formantów do raportu...................................................c........................ 228 Podsumowanie ...................................................c...................................................c........ 231 Rozdział 14. Menu i paski narzędzi ...................................................h................. 233 Paski poleceń...................................................c...................................................c........... 233 Tworzenie paska narzędzi ...................................................c.......................................... 235 Menu ...............................................c...................................................c........................... 240 Podmenu...................................................c...................................................c..................243 Podsumowanie ...................................................c...................................................c........ 244 Rozdział 15. Modyfikowanie środowiska Accessa............................................... 245 Właściwości startowe ...................................................c................................................. 245 Modyfikowanie opcji ...................................................c................................................. 247 Karta Widok...................................................c...................................................c...... 249 Karta Ogólne ...................................................c...................................................c..... 249 Karta Edytowanie/Znajdowanie ...................................................c........................... 250 Karta Klawiatura ...................................................c.................................................. 250 Karta Arkusz danych...................................................c............................................ 251 Karta Formularze/Raporty...................................................c.................................... 251 Karta Strony ...................................................c...................................................c...... 252 Karta Zaawansowane ...................................................c........................................... 252 Karta Międzynarodowe ...................................................c........................................ 253 Karta Sprawdzanie błędów...................................................c................................... 253 Karta Pisownia ...................................................c...................................................c.. 253 Karta Tabele/Kwerendy ...................................................c....................................... 254 Podsumowanie ...................................................c...................................................c........ 255 Część IV Zaawansowane techniki programowania .......................257 Rozdział 16. Bezpieczeństwo bazy danych...................................................h....... 259 Access i bezpieczeństwo ...................................................c............................................ 259 Interfejs użytkownika...................................................c........................................... 259 Ustawianie hasła ...................................................c.................................................. 260 Programowe tworzenie hasła...................................................c................................ 261 Ochrona kodu VBA...................................................c.............................................. 262 Kompilowanie kodu do pliku .mde ...................................................c...................... 263 Zabezpieczenia na poziomie użytkownika ...................................................c................. 263 Modyfikowanie kont użytkowników metodą programową ..................................... 266 Spis treści 7 Bezpieczeństwo i Access 2003...................................................c................................... 268 Jet Sandbox ...................................................c...................................................c....... 269 Zabezpieczenia makr...................................................c............................................ 269 Podsumowanie ...................................................c...................................................c........ 273 Rozdział 17. Access i środowisko Microsoft Office ............................................. 275 Współdzielone obiekty ...................................................c............................................... 275 Obiekt FileSearch...................................................c................................................. 276 Obiekt CommandBar ...................................................c........................................... 277 Łączenie Accessa z innymi programami pakietu Microsoft Office ............................... 280 Łączenie się z Excelem ...................................................c........................................ 281 Łączenie się z Outlookiem ...................................................c................................... 283 Łączenie się z Wordem ...................................................c........................................ 284 Podsumowanie ...................................................c...................................................c........ 286 Rozdział 18. Access i sieć WWW...................................................h.................... 287 Mechanika sieci WWW...................................................c.............................................. 287 Strony dostępu do danych ...................................................c.......................................... 288 Generowanie strony dostępu do danych...................................................c............... 289 Zapisywanie strony DAP ...................................................c..................................... 293 Tworzenie strony dostępu do danych w widoku projektu ....................................... 295 Strony dostępu do danych i VBA...................................................c......................... 297 XML (Extensible Markup Language) ...................................................c........................ 298 Podsumowanie ...................................................c...................................................c........ 301 Rozdział 19. Rozbudowa ...................................................h................................. 303 Microsoft Access i SQL Server ...................................................c.................................. 304 Access Data Projects ...................................................c.................................................. 304 Rozbudowa bazy danych Accessa...................................................c........................ 306 Praca z plikiem ADP ...................................................c.................................................. 310 Procedury przechowywane ...................................................c.................................. 311 Widoki ...................................................c...................................................c.............. 311 Podsumowanie ...................................................c...................................................c........ 313 Część V Tworzenie aplikacji...................................................n....315 Rozdział 20. Aplikacje wielodostępne ...................................................h............. 317 Współdzielenie bazy danych ...................................................c...................................... 317 Obsługa współzawodnictwa i konfliktów...................................................c................... 318 Ustawianie interwału odświeżania ...................................................c....................... 319 Ustawianie interwału aktualizacji...................................................c......................... 319 Blokowanie rekordów w interfejsie Accessa...................................................c........ 320 Ustawianie opcji sposobem programowym...................................................c.......... 322 Blokowanie rekordów w ADO...................................................c............................. 323 Zwiększanie wydajności aplikacji ...................................................c.............................. 324 Oddzielanie danych od innych obiektów Accessa...................................................c 325 Centralizacja i decentralizacja...................................................c.............................. 329 Kompilowanie kodu ...................................................c............................................. 329 Optymalizowanie kodu VBA ...................................................c............................... 331 Podsumowanie ...................................................c...................................................c........ 333 Rozdział 21. Nie tylko Microsoft Access ...................................................h......... 335 VBA i Microsoft Office...................................................c.............................................. 335 Visual Basic ...................................................c...................................................c............ 340 VBScript...................................................c...................................................c.................. 347 Platforma Microsoft .NET...................................................c.......................................... 349 Podsumowanie ...................................................c...................................................c........ 350 8 Access. Programowanie w VBA Dodatki ...................................................n....................................351 Dodatek A Obiekt DoCmd ...................................................h............................ 353 AddMenu ...................................................c...................................................c................ 354 ApplyFilter ...................................................c...................................................c..............354 Beep ...................................................c...................................................c........................ 355 CancelEvent ...................................................c...................................................c............ 356 Close..............................................c...................................................c............................. 356 CopyDatabaseFile ...................................................c...................................................c... 358 CopyObject ...................................................c...................................................c............. 358 DeleteObject...................................................c...................................................c............ 359 DoMenuItem ...................................................c...................................................c........... 360 Echo ...................................................c...................................................c........................ 360 FindNext...................................................c...................................................c.................. 361 FindRecord...................................................c...................................................c.............. 362 GoToControl ...................................................c...................................................c........... 364 GoToPage...................................................c...................................................c................ 364 GoToRecord ...................................................c...................................................c............ 365 Hourglass...........................................c...................................................c......................... 366 Maximize...................................................c...................................................c.................366 Minimize ...................................................c...................................................c.................367 MoveSize............................................c...................................................c........................367 OpenDataAccessPage...................................................c................................................. 368 OpenDiagram ...................................................c...................................................c.......... 369 OpenForm ...................................................c...................................................c............... 369 OpenFunction ...................................................c...................................................c.......... 371 OpenModule...................................................c...................................................c............ 371 OpenQuery ...................................................c...................................................c.............. 372 OpenReport ...................................................c...................................................c............. 373 OpenStoredProcedure...................................................c................................................. 374 OpenTable ...................................................c...................................................c............... 375 OpenView ...................................................c...................................................c............... 376 OutputTo ...................................................c...................................................c.................377 PrintOut ...................................................c...................................................c................... 379 Quit ...................................................c...................................................c......................... 380 Rename...................................................c...................................................c.................... 380 RepaintObject...................................................c...................................................c.......... 382 Requery ...................................................c...................................................c................... 382 Restore ...................................................c...................................................c.................... 382 RunCommand ...................................................c...................................................c......... 383 RunMacro...................................................c...................................................c................ 383 RunSQL ...................................................c...................................................c.................. 384 Save ...................................................c...................................................c......................... 385 SelectObject ...................................................c...................................................c............ 386 SendObject ...................................................c...................................................c.............. 387 SetMenuItem ...................................................c...................................................c........... 388 SetWarnings ...................................................c...................................................c............ 389 ShowAllRecords...................................................c...................................................c...... 389 ShowToolbar ...................................................c...................................................c........... 390 TransferDatabase...................................................c...................................................c..... 391 TransferSpreadsheet ...................................................c...................................................c 391 TransferSQLDatabase ...................................................c................................................ 391 TransferText ...................................................c...................................................c............ 391 Skorowidz...................................................h................................... 393 Rozdział 6. Podstawy programowania w VBA W rozdziale 5 poznałeś środowisko VBA, jego strukturę, koncepcję i edytor. Teraz zamierzamy przedstawić podstawy programowania oraz specyficzną składnię języka VBA. Wrócimy do koncepcji omówionych w rozdziale 5 i przyjrzymy się im dokładniej, zaczynając od przeglądu miejsc, gdzie kod jest przechowywany, oraz typów bloków, na jakie jest dzielony. Czyniąc to, szczegółowo zajmiemy się również problemem zmiennych. Trudno jest mówić o zmiennych, pomijając ich szczególny typ nazywany tablicą (array). Zamierzamy także przyjrzeć się kilku wbudowanym narzędziom VBA, znacznie ułatwia- jącym wykonywanie zadań. Zakończymy nasze rozważania, przyglądając się różnym typom struktur programistycznych i ich stosowaniu w środowisku VBA. Podstawy programowania Jak już powiedzieliśmy w rozdziale 5, kod VBA jest zapisywany i przechowywany w modułach. Zapewne pamiętasz, że istnieją dwa podstawowe typy modułów: powiązane z raportami i formularzami oraz ogólne, przechowujące procedury używane w całym projekcie. Istnieje jeszcze jeden typ zwany modułem klasy, który zawiera kod powiązany z obiek- tem. O modułach będziemy jeszcze mówić w pozostałej części książki. Zanim zaczniesz pisać kod VBA, musisz stworzyć moduł. Ponieważ moduły dla for- mularzy i raportów są tworzone wraz z formularzami i raportami, tutaj skupimy się na tworzeniu modułu standardowego. 86 Część II ♦ Poznanie środowiska VBA Tworzenie modułów standardowych Istnieje kilka różnych sposobów tworzenia modułów standardowych. Najłatwiej przejść do kategorii Moduły w oknie dialogowym Baza danych, jak to zostało pokazane na rysunku 6.1. Wystarczy wówczas jedynie kliknąć przycisk Nowy, aby zostać przenie- sionym do edytora VBA, a w nim do wnętrza stworzonego modułu, co zostało pokazane na rysunki 6.2. Rysunek 6.1. Okno Baza danych po wybraniu kategorii Moduły Rysunek 6.2. Edytor VBA z otwartym modułem Module1 Rozdział 6. ♦ Podstawy programowania w VBA 87 VBA nada nowemu modułowi tymczasową nazwę /QFWNG. Zapewne zachcesz użyć nazwy bardziej opisowej. Możesz ją nadać w oknie Properties edytora VBA lub bez- pośrednio w oknie Baza danych. Możesz zaznaczyć nazwę /QFWNG w oknie Properties tak, jak to widać na rysunku 6.3, i wpisać inną nazwę, powiedzmy OQL2KGTYU[/QFWN Gdy dokonasz zmiany w oknie Properties, nazwa zostanie zmieniona również w oknie Project w edytorze VBA i w oknie Baza danych w Accessie (w kategorii Moduły). Rysunek 6.3. Property Name (czyli Właściwość Nazwa) Dodatkowo powinieneś na pasku narzędziowym kliknąć przycisk Save. Zostaniesz poproszony o potwierdzenie nazwy: O tym, że nazwa została zmieniona, możesz się teraz upewnić w oknie Project (rysu- nek 6.4) i w oknie Baza danych (rysunek 6.5). Rysunek 6.4. Okno Project po zmianie nazwy modułu Nazwę modułu możesz również zmienić, klikając ją prawym przyciskiem myszy w oknie dialogowym Baza danych i wybierając z menu podręcznego polecenie Zmień nazwę. 88 Rysunek 6.5. Okno Baza danych po zmianie nazwy modułu Część II ♦ Poznanie środowiska VBA Tworzenie procedur Przypominam z rozdziału 5, że większość kodu VBA jest zapisywana w blokach zwa- nych procedurami. Dzielimy je na dwa rodzaje: procedury typu 5WD (podprogramy) i procedury typu (WPEVKQP (funkcje). Podprogramy wykonują zadania, ale nie zwracają żadnej wartości, zaś funkcje zwracają wartości. W większości przypadków na górze modułu będziesz widzieć dwie następujące linie: 1RVKQP QORCTG CVCDCUG 1RVKQP ZRNKEKV Są to tak zwane deklaracje ogólne modułu. Wszelki kod wpisany w tej sekcji będzie wpływał na wszystkie procedury w całym module. Linia 1RVKQP QORCTG umożliwia wybranie jednego z trzech sposobów sortowania łańcuchów znakowych wewnątrz kodu:    1RVKQP QORCTG CVCDCUG — powoduje sortowanie w takim samym porządku jak sortowanie rekordów bazy danych i jest opcją najczęściej stosowaną. 1RVKQP QORCTG$KPCT[ — powoduje sortowanie oparte na binarnych wartościach znaków. Wielkie litery są wtedy ustawiane przed małymi. 1RVKQP QORCTG6YZV — powoduje sortowanie rozpoznające wielkie i małe litery z uwzględnieniem języka lokalnego. W tej książce będziemy stosowali domyślne ustawienie 1RVKQP QORCTG CVCDCUG. Linia 1RVKQP ZRNKEKV jest, moim zdaniem, bardzo ważna. Wkrótce przekonasz się, że może ochronić Cię przed wieloma błędami kodowania, zmuszając do jawnego deklarowania zmiennych przed użyciem. Jeżeli ta opcja nie pojawia się automatycznie wraz z tworzeniem modułu, wymuś to, wydając polecenie Tools/Options i na karcie Editor zaznaczając opcję Require Variable Declaration, tak jak na rysunku 6.6. Rozdział 6. ♦ Podstawy programowania w VBA 89 Rysunek 6.6. Opcja Require Variable Declaration O procedurze myśl jak o miniprogramie mającym wykonać jedno wybrane zadanie. Na przykład zadaniem procedury może być dodanie do siebie dwóch liczb. Zawsze, gdy zechcesz dodać te dwie liczby, będziesz mógł wywołać tę procedurę. Nie mając procedury, za każdym razem, gdy należałoby wykonać to samo zadanie, musiałbyś pisać kod, w którym powtarzałby się ten sam ciąg poleceń. Wewnątrz procedury deklarujesz zmienne, używasz pętli i poleceń +H, a nawet wywo- łujesz inne procedury. Omówimy po kolei te wszystkie przypadki. Na początku deklarujesz procedurę w sposób pokazany poniżej. Oczywiście, jej nazwę wybierasz wedle własnej woli. 5WDCFF0WODGTU PF5WD Zauważ, że edytor VBA nakreśli poziomą linię oddzielającą nową procedurę od dekla- racji ogólnych. Pomaga to wyróżniać i oddzielać procedury i nie ma żadnego wpływu na ich działanie. Jest ważne, abyś deklarując procedurę, zaczynał od słowa 5WD i kończył deklarację nawiasami. Podkreślam, że to ważne, bo uważam, iż od początku należy stosować właściwą składnię. Jeżeli pominiesz nawiasy, edytor VBA wstawi je za Ciebie, gdy tylko naciśniesz Enter. Zwykle w nawiasach umieszcza się wszelkie argumenty, jakich oczekuje procedura, ale nawet gdy nie ma żadnych argumentów, puste nawiasy muszą pozostać. Zaraz po naciśnięciu klawisza Enter edytor VBA doda, zamykającą procedurę, linię PF5WD. Cały napisany przez Ciebie kod musisz umieścić między wyrażeniem otwie- rającym i zamykającym. Na kolejnych kartach książki będę robił uwagi o tym, jakie zwyczaje i praktyki progra- mistyczne uważam za dobre. Choć nie są one bezwzględnie obowiązujące, są akcep- towane przez wielu programistów i stały się standardami przemysłowymi. 90 Część II ♦ Poznanie środowiska VBA Zgodnie z pierwszym zwyczajem, nazwa nadawana procedurze musi opisywać jej dzia- łanie, np. CFF0WODGTU (dodaj liczby). Każdy programista od razu rozpozna, do czego ta procedura służy. Dodatkowo, choć VBA nie rozróżnia liter wielkich i małych, czasami musi współdziałać z programami, które to robią. Ogólna konwencja nazw, wspomniana w rozdziale 4, nakazuje rozpoczynanie nazwy od małej litery, wyróżnianie wielkimi literami początków wyrazów w zbitkach słownych, niestosowanie spacji i zaczynanie nazw raczej od liter niż cyfr. Rozpoczynanie nazw od liter, a nie od cyfr to w wielu językach, również w VBA, więcej niż zwyczaj — to obowiązująca zasada, narzucona przez reguły języka VBA. Drugi zwyczaj to zalecenie wcinania kodu procedury. Dzięki temu łatwo odszukać, gdzie się procedura rozpoczyna, a gdzie kończy. Aby zrobić wcięcie, zwykle trzykrotnie naciskam klawisz spacji lub używam klawisza Tab. Edytor VBA zapamięta wcięcie i automatycznie będzie je stosował do następnych linii. Trzecim zwyczajem jest staranne komentowanie kodu. Możesz to z łatwością robić, wpisując pojedynczy apostrof na początku linii. Dzięki temu VBA zignoruje tę linię, traktując ją jako komentarz. Poniższy przykład pokazuje wcięcie i komentarz: 5WDCFF0WODGTU  Deklaracja zmiennych PF5WD Zauważ kolor, jakiego VBA używa do wyróżnienia komentarza. Rozumienie znaczenia kolorów używanych przez edytor VBA podczas kodowania pomoże Ci śledzić, co się z kodem dzieje. Na przykład wyświetlenie tekstu na czerwono oznacza błąd składni. Co oznaczają poszczególne kolory, możesz zobaczyć, wydając polecenie Tools/Options. Po otwarciu okna dialogowego Options karta Editor Format pokaże znaczenie poszcze- gólnych kolorów, a ponadto pozwoli na dokonanie zmian schematu. Deklarowanie zmiennych Dwoma zasadniczymi składnikami procedur są zmienne i metody. Mówiąc po prostu, zmienna to „kawałek” informacji przechowywanej gdzieś w pamięci komputera. Może to być liczba, litera lub całe zdanie. Określenie miejsca przechowywanej informacji jest możliwe dzięki nadanej nazwie. Powiedzmy, że w kodzie mamy taką linię: PWODGT Od tego momentu, jeżeli kod gdziekolwiek odwoła się do nazwy PWODGT, w to miejsce zostanie wstawiona liczba 23. Oczywiście, później możesz zmiennej o nazwie PWODGT nadać inną wartość. Aby zmienna działała prawidłowo, powinieneś zadeklarować, jakiego typu informację ma przechowywać (w miarę uczenia się przyczyny tego staną się dla Ciebie oczywiste). W tabeli 6.1 zostały podane typy zmiennych i ich zastosowanie. Rozdział 6. ♦ Podstawy programowania w VBA 91 Tabela 6.1. Typy zmiennych Typ zmiennej Opis $QQNGCP $[VG WTTGPE[ CVG QWDNG +PVGIGT .QPI 1DLGEV 5KPING 5VTKPI Zmienna $QQNGCP zwraca wartości 6TWG lub (CNUG (2TCYFC lub (CđU). Można je również wyrazić liczbowo: (CNUG, 6TWG. To jeden z najrzadziej używanych typów zmiennych. Może przechowywać tylko pojedynczą wartość od 0 do 255. Robi to, co opisuje nazwa (waluta). Przechowuje wartości walutowe z czterema miejscami po przecinku, od –922 337 203 685 477,5808 do 922 337 203 685 477,5807. Przechowuje daty i czas. Ciekawe, że dopuszczalne lata to od 100 do 9999. To jeden z dwóch typów zmiennych zmiennoprzecinkowych. Drugi to 5KPING. Zmienne QWDNG służą do przechowywania bardzo długich liczb w zakresie od –1.79769313486231 * 10308 do –4.94065645841247 * 10–324 dla wartości ujemnych i od 4.94065645841247 * 10–324 do 1.79769313486232* 10308 dla wartości dodatnich. To jeden z dwóch typów zmiennych całkowitych. Drugi to .QPI. Zmienne +PVGIGT przechowują liczby z zakresu od –32 768 do 32 767. .QPI to drugi to zmiennych całkowitych. Pierwszy to +PVGIGT. Zmienne .QPI przechowują liczby z zakresu od –2 147 483 648 do 2 147 483 657. Służy do przechowywania obiektów, które mają być później użyte. To drugi typ liczb zmiennoprzecinkowych. Pierwszym był QWDNG. To najczęściej używany typ zmiennych. Zmienna typu 5VTKPI może przechowywać do 2 miliardów znaków. Do deklarowania zmiennych służy słowo kluczowe KO. Na przykład: KOPWODGT#U+PVGIGT Ta deklaracja oznacza, że zmienna o nazwie PWODGT będzie przechowywała wyłącznie dane typu +PVGIGT. Zauważ, że jeszcze nie nadaliśmy zmiennej żadnej wartości (i edytor by nam na to nie pozwolił). Jedynie zadeklarowaliśmy nazwę i typ zmiennej. Gdzieś w dalszej części kodu umieścimy linię w rodzaju: PWODGT Pamiętaj, że VBA nie odróżnia liter wielkich i małych. Nazwy zmiennej PWODGT, 0WODGT i PWO$GT będą rozpoznawane jako ta sama nazwa. Nadając zmiennej wartość, musisz zdawać sobie sprawę z wielu rzeczy. Po pierwsze, wartość nadawana zmiennej typu 5VTKPI musi być wzięta w cudzysłów1. Prawidłowe przypisanie wartości zmiennej typu 5VTKPI może wyglądać następująco: KONCUV0COG#U5VTKPI NCUV0COG-QYCNUMK e Nie stosujemy cudzysłowów drukarskich — przyp. tłum. 1 92 Część II ♦ Poznanie środowiska VBA Ponadto musisz pamiętać, że wartość nadawana zmiennej typu CVG musi być ujęta w znaki . Prawidłowe przypisanie wartości zmiennej typu CVG może wyglądać następująco2: KOVJKU CVG#U CVG VJKU CVG W rozdziale 5 omówiliśmy konwencję nazw połączonych z obiektami bazy danych. Te same zasady odnoszą się do zmiennych. Pamiętaj, że nie są to zasady obowiązujące, lecz tylko konwencje przyjęte przez większość programistów. Przedrostki nazw są podane w tabeli 6.2. Tabela 6.2. Przedrostki zmiennych Typ zmiennej Przedrostek $QQNGCP $[VG WTTGPE[ CVG QWDNG +PVGIGT .QPI 1DLGEV 5KPING 5VTKPI DNP D[V EWT FCV FDN KPV NPI QDL UPI UVT Dobrym pomysłem jest, aby przy nadawaniu nazw obiektom jakiegokolwiek typu stosować nazwy opisowe. W ten sposób kod staje się „samoopisującym”. Oto przykład prawidłowego zadeklarowania zmiennej daty: KOFCV6JKU CVG#U CVG Wróćmy do procedury CFF0WODGTU, dodając deklaracje trzech zmiennych: 5WDCFF0WODGTU  Deklaracja zmiennych  KOKPV0WODGT#U+PVGIGT  KOKPV0WODGT#U+PVGIGT  KOKPV5WO#U+PVGIGT PF5WD Powinieneś już rozumieć znaczenie tych deklaracji. W zmiennych KPV0WODGT i KPV å0WODGT zostaną zapamiętane dwie liczby. Po dodaniu ich suma zostanie zapamiętana w zmiennej KPV5WO. e Data podawana w stylu amerykańskim: miesiąc, dzień, rok — przyp. tłum. 2 Rozdział 6. ♦ Podstawy programowania w VBA 93 Variant Typ zmiennej, o jakim jeszcze nie mówiliśmy, to 8CTKCPV. Zależnie od tego, z jakim programistą rozmawiasz, dowiesz się albo że jest to potężne narzędzie programistyczne, albo że to rozwiązanie dla niechlujnych programistów. 8CTKCPV pozwala VBA na samodzielne określanie, jaki typ danych jest zapamiętywany. Jest to domyślny typ zmiennych, używany, jeżeli w deklaracji zmiennej pominiesz klauzulę CUV[RAOKGPPGL. Przedrostkiem oznaczającym ten typ zmiennej jest XCT. Przykładowa deklaracja zmiennej typu 8CTKCPV może mieć postać: KOXCT/[ CVC Ponieważ pominęliśmy parametr CUV[RAOKGPPGL, zostanie użyty domyślny typ 8CTKCPV. Taki sam efekt dałoby użycie deklaracji: KOXCT/[ CVC#U8CTKCPV Powiedzmy, że tej zmiennej przypiszesz wartość w następujący sposób: XCT/[ CVC6QLGUVOKGPPC8CTKCPV VBA przekształci wówczas typ XCT/[ CVC na 5VTKPI. Jeżeli potem dokonasz kolejnego przypisania wartości: XCT/[ CVC VBA zmieni typ XCT/[ CVC na +PVGIGT. Jak się przekonamy w trakcie dalszej nauki, czasem prowadzi to do sytuacji, gdy zmienna 8CTKCPV staje się zmienną nieoczekiwanego typu lub, co gorsza, końcowym rezultatem jest błąd. Wielu programistów uważa, że użycie zbyt wielu zmiennych typu 8CTKCPV powoduje zbędne zajmowanie pamięci i spowalnia działanie kodu. Zanim więc zdecy- dujesz się na używanie zmiennych 8CTKCPV, rozważ dobrze wszystkie „za” i „przeciw”. Najlepiej, abyś jako początkujący traktował zmienne 8CTKCPV z wielką ostrożnością i stosował przede wszystkim jawne deklaracje typów podstawowych. Constant Wielokrotnie chcesz zadeklarować wartości, które nie będą się zmieniać. Używamy do tego typu QPUVCPV, deklarowanego za pomocą słowa kluczowego QPUV, zamiast KO, stosowanego w normalnych deklaracjach. Oto przykład: QPUVEQP0WODGT#U+PVGIGT QPUVEQP CVG#U CVG Zauważ użycie przedrostka EQP zamiast standardowego przedrostka typu. Pamiętaj także, że deklarując stałą, musisz przypisać jej wartość, gdyż jeżeli tego nie zrobisz, przy opuszczaniu linii zostanie zgłoszony błąd składni. 94 Część II ♦ Poznanie środowiska VBA Wejście i wyjście Zatem wiesz już, jak za pomocą zmiennych zachowywać dane. Ale w jaki sposób wpro- wadzić informację, jaka ma być zapamiętana przez zmienną? Albo jak odczytać infor- macje zapamiętane przez zmienne? Pod wieloma względami właśnie tego będziemy się uczyć w pozostałej części książki. Ale dla przetestowania naszego kodu zacznijmy od paru najprostszych technik. Jednym z najprostszych sposobów pobrania informacji od użytkownika i podstawienia jej pod zmienną jest użycie wbudowanej funkcji +PRWV$QZ. Spowoduje to wyświetlenie prostego okna dialogowego z wezwaniem. Kod naszego prostego przykładu uzupełnij pokazanymi niżej liniami, napisanymi pismem pogrubionym: 5WDCFF0WODGTU  Deklaracja zmiennych  KOKPV0WODGT#U+PVGIGT  KOKPV0WODGT#U+PVGIGT  KOKPV5WO#U+PVGIGT  Użycie InputBox do wprowadzenia liczb KPV0WODGT+PRWV$QZ 9RKURKGTYUæNKEDú KPV0WODGT+PRWV$QZ 9RKUFTWIæNKEDú PF5WD Zauważ, że dla jasności dodałem komentarz informujący, co robię. Wyrażenie KPV0WODGT+PRWV$QZ jest nazywane wyrażeniem przypisania, gdyż przy- pisuje do zmiennej wartość podaną przez użytkownika. W tym przypadku zostały stwo- rzone dwa przypisania — jedno dla KPV0WODGT, a drugie dla KPV0WODGT. Możesz uruchomić kod, klikając przycisk Run: Spowoduje to wyświetlenie pokazanego tu okna dialogowego do wprowadzenia pierw- szej liczby (do wprowadzenia drugiej liczby zostanie wyświetlone oddzielne okno). Jeżeli wykonałeś poprzednie kroki, kod powinien działać, zapamiętując w zmiennych podane liczby. Jednakże w żaden sposób nie informuje nas o tym. Są dwa sposoby stworzenia wyjścia. Pierwszy to dopisanie dwóch linii, napisanych poniżej pismem pogrubionym: Rozdział 6. ♦ Podstawy programowania w VBA 95 5WDCFF0WODGTU  Deklaracja zmiennych  KOKPV0WODGT#U+PVGIGT  KOKPV0WODGT#U+PVGIGT  KOKPV5WO#U+PVGIGT  Użycie InputBox do wprowadzenia liczb KPV0WODGT+PRWV$QZ 9RKURKGTYUæNKEDú KPV0WODGT+PRWV$QZ 9RKUFTWIæNKEDú  Dodanie obu liczb KPV5WOKPV0WODGT KPV0WODGT  Wyjście informacji  GDWI2TKPV2QFCPGNKED[VQKPV0WODGTKA KPV0WODGT PF5WD Jeżeli teraz uruchomisz kod, ponownie zostaną wyświetlone dwa okienka, te same co poprzednio, zaś komunikat wyjściowy pojawi się w oknie Immediate widocznym na dole okna edytora VBA. To okno służy nam jako tymczasowe i przydatne jest w początkowej fazie testowania kodu. Warto tu omówić kilka spraw. Po pierwsze linia: GDWI2TKPV2QFCPGNKED[VQKPV0WODGTKA KPV0WODGT jest przykładem konkatenacji, gdyż łączy w całość różne składniki. Tekst znakowy jest ujęty w cudzysłowy, zaś zmienne nie. Oba typy są oddzielone znakiem . Zauważ, że linia została podzielona spacją i znakiem podkreślenia. VBA wymaga tego, jeżeli jedno wyrażenie jest dzielone na wiele linii. W książce będziemy tak robili z powodu wymagań typograficznych. Jeżeli chcesz, możesz zapisywać wyrażenia kodu w jednej linii. Innym sposobem formatowania wyjścia danych jest technika, z którą już się spotkali- śmy w rozdziale 4. Możesz użyć okna komunikatów, jeżeli poprzednią linię wyjścia zastąpisz następującą: /UI$QZ2QFCPGNKED[VQKPV0WODGTKKPV0WODGT Spowoduje to wyświetlenie okna komunikatu: A więc masz już swój pierwszy działający program napisany w VBA. 96 Część II ♦ Poznanie środowiska VBA Struktury sterujące Komputer działa sekwencyjnie. Wykonuje pierwsze polecenie i jeżeli nie ma żadnego błędu, przechodzi do następnego. Nazywamy to strukturą sekwencyjną. Ale co masz zrobić, jeżeli nie chcesz, aby kolejnym krokiem było wykonanie następnej linii kodu? W pewnych sytuacjach możesz zechcieć przekazać sterowanie programem do innego bloku linii kodu. Albo zechcesz, aby pewien blok linii kodu był powtarzany wielo- krotnie, aż do wystąpienia określonej sytuacji (albo określoną liczbę razy). Mechanizmy służące realizacji tych zadań nazywamy strukturami sterującymi. Struktury te dzielimy na dwie bardzo szerokie kategorie: struktury decyzyjne i struktury powta- rzające. Jak się zaraz przekonasz, struktury decyzyjne pozwalają programowi na podej- mowanie decyzji. Najpopularniejszą z nich jest struktura +H6JGP. Ale VBA ma ich więcej: +H6JGP NUG, NUG+H, 5GNGEV CUG i ++H. Struktury powtarzające powodują wielokrotne wykonanie bloku linii — albo określoną liczbę razy, albo do zaistnienia sytuacji, która spowoduje przerwanie pętli. W VBA mamy dwie główne struktury powtarzające: (QT0GZV i Q.QQR. W ramach tych dwóch struktur zasadniczych istnieje wiele wariacji. Struktury decyzyjne Rozważmy pseudokod dla porannych czynności. Dla określenia działania w pewnym momencie możesz napisać: +H LGľGNK RCFCFGUE 6JGP VQ YGOúRCTCUQN NUG CYRTGEKYP[OY[RCFMW RQRTQUVWRÎLFúFQUCOQEJQFW Wyrazy pogrubione to słowa kluczowe konieczne do podjęcia decyzji. Rozpoczynamy strukturę decyzyjną od porównania dwóch wartości. Czy A jest równe B? Czy A jest większe od B? Czy B jest prawdziwe? Są to tak zwane wyrażenia warunkowe. Symbole używane w tych wyrażeniach są podane w tabeli poniżej.      jest równe jest różne jest większe od jest mniejsze od jest większe lub równe jest mniejsze lub równe Zobaczmy, jak prosta struktura decyzyjna działa w procedurze: 5WDKH6GUV  KOKPV0WO#U+PVGIGT  KOUVT/GUUCIG#U5VTKPI Rozdział 6. ♦ Podstawy programowania w VBA 97 KPV0WO +HKPV0WO 6JGP UVT/GUUCIG.KEDCLGUVTÎYPCKPV0WO  PF+H  GDWI2TKPVUVT/GUUCIG PF5WD W tym kodzie należy zauważyć kilka rzeczy. Linia zawierająca wyrażenie warunkowe rozpoczyna się od +H i kończy na 6JGP. Ponadto, tak jak wszystkie struktury w VBA, również struktura warunkowa +H musi się kończyć instrukcją PF. W tym przypadku jest to PF+H. Jeżeli uruchomisz tę przykładową procedurę, w oknie Immediate zobaczysz wynik pokazany na rysunku poniżej: Rozważmy kilka problemów. Kod działa dobrze, ale co by się stało, gdyby liczba nie była większa od 10? A co ważniejsze, skoro wartość zmiennej jest sztywno ustalona, będzie ona zawsze większa od 10. Przyjrzyjmy się temu bliżej. Za pomocą polecenia NUG możesz wewnątrz struktury +H umieścić ścieżkę alternatywną. Zmodyfikujmy nieco nasz kod: 5WDKH6GUV  KOKPV0WO#U+PVGIGT  KOUVT/GUUCIG#U5VTKPI KPV0WO +HKPV0WO 6JGP UVT/GUUCIG.KEDCLGUVYKúMUCQF  NUG UVT/GUUCIG.KEDCLGUVOPKGLUCNWDTÎYPC  PF+H  GDWI2TKPVUVT/GUUCIG PF5WD Zauważ, że teraz nadaliśmy zmiennej KPV0WO nową wartość oraz dodaliśmy instrukcję NUG. Ponieważ instrukcja NUG jest częścią instrukcji +H, nie potrzeba dodatkowej instrukcji PF. Ponieważ wartość KPV0WO jest mniejsza od 10, po uruchomieniu procedury zostanie włączona instrukcja NUG, dając wynik pokazany na rysunku na następnej stronie. 98 Część II ♦ Poznanie środowiska VBA Oczywiście, tak jak poprzednio możesz użyć funkcji wbudowanych +PRWV$QZ i /UI$QZ do wprowadzania liczby i wyświetlania wyjściowego komunikatu. AND, OR, NOT W niektórych przypadkach zechcesz sprawdzić spełnienie warunków złożonych. Czy KPV0WO14KPV0WO ? Słowa kluczowe #0 , 14 i 016 są nazywane operatorami logicznymi i służą do sprawdzania warunków złożonych. W przypadku operatora logicznego #0 oba wyrażenia logiczne muszą być prawdziwe, aby warunek +H był spełniony. Poniżej została podana tabela wszystkich możliwych wyników logicznych dla opera- tora #0 . Pierwszy argument logiczny Drugi argument logiczny Wynik True True False False True False True False True False False False Jeżeli zostanie użyty operator 14, tylko jeden argument logiczny musi być prawdziwy, aby warunek +H został spełniony. Następna tabela podaje wszystkie możliwe wyniki logiczne dla operatora 14. Pierwszy argument logiczny Drugi argument logiczny Wynik True True False False True False True False True True True False Ostatni operator logiczny 016 zwraca — zgodnie z oczekiwaniami — wartość przeciwną. Jeżeli wyrażenie warunkowe (A NIE jest równe B) jest prawdziwe, to jego zaprze- czenie 016 (A NIE jest równe B) jest fałszywe i odwrotnie — jeżeli A jest równe B, wyrażenie jest fałszywe, a wynik ostateczny prawdziwy. Nie przejmuj się, jeżeli potrze- bujesz nieco czasu, aby sobie to wszystko wyobrazić. Będziemy nadal zajmować się tą samą co poprzednio procedurą KH6GUV i użyjemy jej do wyjaśnienia wielokrotnego użycia instrukcji +H NUG. Chcemy również ograniczyć wprowadzanie przez użytkownika liczb do zakresu od 1 do 15. Rozdział 6. ♦ Podstawy programowania w VBA 99 Zmień swój kod, aby wyglądał tak jak pokazany poniżej. 1RVKQP QORCTG CVCDCUG 1RVKQP ZRNKEKV 2TKXCVGKPV0WO#U+PVGIGT  5WDKH6GUV  KOUVT/GUUCIG#U5VTKPI KPV0WO+PRWV$QZ 9RKUNKEDúQFFQA 6GUVQYCPKGUVTWMVWT[+H +HKPV0WO #PFKPV0WO6JGP KH6GUV  NUG /UI$QZ.KEDCOWUKD[èRTGFKCđWQFFQ  PF+H PF5WD  5WDKH6GUV +HKPV0WO 6JGP /UI$QZKPV0WOLGUVNKEDæYKúMUæQF  NUG /UI$QZKPV0WOLGUVNKEDæOPKGLUæNWDTÎYPæ  PF+H PF5WD Zauważ, że musiałeś przedefiniować KPV0WO na zmienną globalną. Jeszcze o tym nie mówiliśmy, ale przypomnij sobie z początku tej części, że wszystko, co jest umiesz- czone w części deklaracji globalnych, obowiązuje dla całego modułu. Procedura KH6GUV sprawdza, czy wartość KPV0WO zawiera się w zakresie od 1 do 15. Jeżeli tak, wywołuje procedurę KH6GUV zawierającą kod, którego używaliśmy poprzednio, a jeżeli nie — wyświetla komunikat dla użytkownika. Jeżeli jedna procedura uruchamia inną, nazywamy to wywołaniem procedury. Spróbuj uruchomić ten kod wielokrotnie. Jeżeli wprowadzisz liczbę z przedziału od 1 do 15, otrzymasz komunikat, że jest ona większa albo mniejsza lub równa 10. Jeżeli wprowadzona liczba będzie spoza przedziału od 1 do 15, zostanie wyświetlony komunikat pokazany poniżej. Struktura ElseIf Za pomocą NUG+H możesz połączyć kilka struktur +H. Na przykład: 5WDKH6GUV  KOKPV0WO#U+PVGIGT KPV0WO 100 Część II ♦ Poznanie środowiska VBA +HKPV0WO6JGP  GDWI2TKPV6QLGUVPCLOPKGLUCNKEDC  NUG+HKPV0WO6JGP  GDWI2TKPV6QLGUVPCLYKúMUCNKEDC  NUG  GDWI2TKPV6C
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Access. Programowanie w VBA
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: