[ Pobierz całość w formacie PDF ]
.Jeśli zmienna służy do wprowadzania wartości do bazy danych, może dojść do wprowadzenianiewłaściwych danych bez żadnego ostrzeżenia.VBA traktuje po prostu nieprawidłowo nazwaną zmienną jako kolejnązmienną.W poniższym przykładzie, zmienna BankBalance w drugiej linii napisana jest z błędem:BankBalance = 4,576.98RS!BankBalance = BankBalenceVBA nie rozpozna BankBalence jako słowa kluczowego, więc przyjmie, że chcesz zadeklarować nową zmienną typuVariant z domyślną wartością Empty.W rezultacie, zamiast umieścić w bazie żądaną wartość 4,576.98, umieści tamwartość Empty.Deklarowanie zmiennych ma również znaczenie dla optymalizacji pracy aplikacji.Niezadeklarowane zmienne typuVariant zajmują dużo cennego miejsca.Przykładowo, różnice w zajmowanej przestrzeni dla zmiennej przechowującejliczbę 5 są następujące:u Dim bytNumber as Byte (1 bajt);u Niezadeklarowana zmienna (tylko dane liczbowe) (16 bajtów);u Niezadeklarowana zmienna (ciąg znaków) (22 bajty).W tym przykładzie, niezadeklarowanej zmiennej przyznany jest typ danych Variant.Aby wymusić deklarowaniezmiennych, przejdz do edytora Visual Basic i z menu Tools wybierz Options.Otwarte zostanie okno dialogowe Options.Na karcie Editor włącz Require Variable Declaration (rysunek 13.2).Spowoduje to wstawianie Option Explicit u górykażdego modułu.Nie spowoduje jednak aktualizacji już istniejących, pamiętaj więc o umieszczeniu Option Explicit wkażdym już utworzonym module.Rysunek 13.2.Aby wymusićdeklarowaniezmiennych, wybierzRequire VariableDeclarationMożna również spotkać inne błędy składni:Msggbox "Hi"lubEndSebBłędy w pisowni tego typu słów zarezerwowanych powodują błędy składni.Podczas pisania kodu, jesteś zwykle o nichinformowany poprzez wyróżnienie błędnie napisanego tekstu oraz ukazanie się komunikatu ostrzegawczego.W edytorze VBA wybierz z menu głównego Tools, Options.Na zakładceEditor wyłącz opcję Auto Syntax Check.Nie wyłączy to kontroli składni, atylko usunie irytujące okna dialogowe, które pokazują się przy każdymbłędzie składniowym.Błąd będzie zaznaczany poprzez zmianę koloruczcionki na czerwony.W oknie dialogowym Options możesz zmieniać niektóre z ustawień kompilatora.Na karcie General znajduje się opcjaCompile on Demand, która umożliwia szybsze funkcjonowanie aplikacji, ponieważ moduły kompilowane są dopiero po ich 223Rozdział 13.f& Profesjonalna obsługa błędówzaładowaniu do wykonania.Przy szybkości współczesnych komputerów zalecamy włączenie tej opcji w celuwyeliminowania błędów.Na tej samej karcie znajduje się opcja Background Compile.Po jej włączeniu uruchomione zostanie kompilowanie w tle, wczasie, gdy komputer jest nieaktywny.Opcja ta może wpłynąć na poprawę szybkości wykonywania aplikacji.Aby jąwłączyć, opcja Compile on Demand musi być również włączona.Aby mieć pewność, że wszystkie błędy składni zostały wykryte, ważne jest, by przed oddaniem aplikacji do rąkużytkowników wszystkie moduły zostały skompilowane i zapisane.Z menu Debug wybierz Compile and Save All Modules,aby skompilować i zapisać każdy moduł w bazie danych, niezależnie od tego czy są załadowane, czy nie.Usuwanie błędów logicznychZ błędem logicznym mamy do czynienia, gdy wykonanie kodu nie przynosi oczekiwanych rezultatów.Może to być błąd wrozumowaniu lub program jest wykonywany nieprawidłowo.Gdy kod jest wykonywany, lecz nie przynosi oczekiwanychrezultatów, spodziewaj się błędu logicznego.Do usuwania błędów logicznych używaj rozbudowanego programu uruchomieniowego Microsoft Accessa.Temat tenzostał omówiony w rozdziale 12.,  Usuwanie błędów w aplikacjach Accessa.Usuwanie błędówwykrytych w trakcie użytkowaniaNie istnieje sposób na wyeliminowanie wszystkich błędów wykrywanych w trakcie użytkowania aplikacji, lecz można sięna nie przygotować.Dlatego też narzędzie do obsługi błędów jest koniecznością.W profesjonalnej aplikacji narzędzie do obsługi błędów umieszczone jest w każdej procedurze.Nic nie jest zostawioneprzypadkowi.Proste narzędzie do obsługi błędówPrzed omówieniem zaawansowanych narzędzi do obsługi błędów zacznijmy od prostego przykładu:Sub Demo()Dim I as IntegerOn Error GoTo ErrorHandler' Błąd programu w tej liniiExitHere:Exit SubErrorHandler:MsgBox "Wystąpił błąd"Resume ExitHereEnd SubTo proste narzędzie stosuje się do standardowych konwencji programowych, które omówione są w następnej części.On Error GoTo ErrorHandlerZgodnie z konwencją, instrukcja ta znajduje się u góry procedury, po instrukcjach Dim.Znajduje się tam dlatego, by każdykod, w którym może wystąpić błąd, znajdował się za nią.Jeśli w kodzie pojawi się błąd, instrukcja GoTo przekaże kontrolęnad programem do narzędzia do obsługi błędów.Narzędzie to znajduje się przy etykiecie ErrorHandler.ErrorHandlernie jest słowem zarezerwowanym, lecz nazwą procedury (możesz użyć dowolnej nazwy).Etykiety są łatwe do odnalezienia, gdyż znajdują się na lewym krańcu pro-cedury i występuje po nich dwukropek.ExitHereTa etykieta jest punktem wyjścia dla procedury.Dobrym zwyczajem jest umieszczanie tylko jednego punktu wyjścia dlaprocedury.Jeśli procedura wykonywana jest bez błędów, wykonywany jest kod ExitHere i procedura jest zakończona.Kod w 224Część IV f& Tajniki VBAczęści ErrorHandler nie będzie wykonywany, gdyż znajduje się na samym końcu procedury.Wykonywanie kodu nigdy dotego miejsca procedury nie dojdzie, bo wcześniej nastąpi wyjście.Etykieta to świetne miejsce na umieszczenie kodu porządkującego.Przykładowo, można w tym miejscu zwolnić zmienneobiektu, ustawiając je na Nothing, zamknąć bazę danych, przywrócić domyślne ustawienie klepsydry lub włączyćaktualizację ekranu.Instrukcja On Error Resume Next powinna być najczęściej pierwszą instrukcją procedury wyjścia.Jest to konieczne,gdyż niektóre z instrukcji porządkujących mogą same powodować błędy [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • higrostat.htw.pl
  •