Access
 sql >> Baza danych >  >> RDS >> Access

Moduł klasy MS-Access i VBA

Wprowadzenie.

W ciągu ostatnich kilku tygodni nauczyliśmy się korzystać z typu zdefiniowanego przez użytkownika (UDT) poprzez tworzenie złożonej struktury danych i już mniej więcej znamy mocne lub słabe strony UDT. Jeśli nie przejrzałeś tych artykułów, możesz je odwiedzić. Użyj następujących linków:

  • Typ danych zdefiniowany przez użytkownika-2
  • Typ danych zdefiniowany przez użytkownika-3

W programie Microsoft Access istnieją dwa rodzaje modułów VBA.

  1. Moduły standardowe
  2. Moduły klasowe

Pracowaliśmy z modułami zajęć w Formularzach i Raporty Microsoft Access. Programy modułu klasy formularza/raportu są w większości sterowane zdarzeniami (kliknięcia przycisków, przed aktualizacją, formularze/raporty dotyczące bieżącego zdarzenia itd.)

Poważniejsze programy do przetwarzania danych będą pisane w modułach standardowych. Kilka programów, niekoniecznie powiązanych, można napisać w jednym module standardowym do wykonywania różnych zadań.

Moduły klas są różne. Służą do budowania niestandardowych obiektów, a jeden moduł klasy jest używany tylko dla jednego obiektu.

Podstawy samodzielnego modułu klas.

Stwórzmy od podstaw prosty moduł Class Module i nauczmy się podstaw.

  1. Uruchom program Microsoft Access i otwórz bazę danych lub utwórz nową. Jeśli jest to nowa baza danych, zapisz ją w istniejącej zaufanej lokalizacji (folderze) lub dodaj nową lokalizację do listy zaufanych lokalizacji. Kliknij Przycisk pakietu Office -> Opcje dostępu -> Centrum zaufania -> Ustawienia Centrum zaufania. Dodaj folder bazy danych do listy i kliknij OK.
  2. Otwórz okno edycji VBA (Alt+F11).
  3. Kliknij Wstaw Menu i wybierz Moduł zajęć z listy. Wstawiono nowy moduł klasy.

  • W lewym panelu znajduje się Nazwa kontrolka o nazwie Klasa1.
  • Zmień nazwę Klasa1 do ClsArea . To jest nazwa naszego obiektu niestandardowego.

  • Uwaga: Nazwa klasy:ClsArea stać się nazwą obiektu. Oznacza to, że gdziekolwiek użyjemy tego obiektu, będzie on przypominał normalną deklarację zmiennej:Dim xyz As ClsArea . Napisaliśmy podobne oświadczenie dla deklaracji typu danych zdefiniowanego przez użytkownika.

    Następnie dodamy trzy właściwości (zmienne) obiektu (dla Opis, Długość, i Szerokość ) u góry modułu, pod Opcją Porównaj bazę danych i opcja wprost linie. Wpisz następujące wiersze do modułu klasy.

    Option Porównaj DatabaseOption ExplicitPublic p_Desc jako StringPublic p_Length jako DoublePublic p_Width jako Double

    Te zmienne są identyfikowane jako właściwości obiektu klasy niestandardowej VBA. Zapisz moduł zajęć.

    Uwaga: Nasz obiekt modułu klasy i wiersze kodu nie będą takie proste. Będzie podlegać zmianom za pomocą kilku linijek kodu. Lepiej przygotuj się na śledzenie ich krok po kroku, nie tracąc z oczu każdego etapu zmian. To jest prosta klasa obliczania powierzchni (powierzchnia =długość * szerokość ), tak proste. Będzie stopniowo ulegać zmianom, dzięki czemu będziesz wiedział, dlaczego te zmiany stają się konieczne.

    Napiszemy mały program w module standardowym, aby przetestować nasz nowy moduł klasy. Wstaw moduł standardowy z menu Wstaw. Możesz wpisać lub skopiować i wkleić następujący kod do modułu standardowego, nadpisując istniejącą linię w module:

    Opcja Porównaj DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsAreaoArea.Set oArea =NothingEnd Function

    Przyciemnienie Instrukcja deklaruje Zmienną, tak jak robimy to dla normalnej zmiennej, na przykład Dim Desc jako String. Ale to nie jest zwykła zmienna, w której ustawiamy odniesienie do naszego obiektu modułu klasy ClsArea . Ponieważ jest to obiekt, sama prosta instrukcja Dimension nie wystarczy, ponieważ nie przydzieli żadnej przestrzeni pamięci do przechowywania wartości w naszym lokalnie zdefiniowanym Object oArea Właściwości.

    Zestaw oświadczenie w następnym wierszu z Nowym wymagane słowo kluczowe, aby utworzyć wystąpienie obiektu z ClsArea w pamięci, z nazwą instancji obiektu oObszar . W razie potrzeby możemy w ten sposób otworzyć kilka instancji tego samego obiektu klasy w pamięci (dowiemy się o nich w nadchodzących tygodniach), abyśmy mogli przechowywać wartości w jego właściwościach (p_Desc, p_Length, p_Width). p_ prefiks do zmiennych wskazuje, że Zakres zmiennych jest Prywatny, tzn. Zmienne nie są widoczne poza modułem Class, jeśli zmienna jest zadeklarowana słowem kluczowym Private, ale teraz jest zadeklarowana jako Public. Nazwa zmiennej może być dowolną prawidłową nazwą.

    Uwaga: Nie zadeklarowaliśmy go jeszcze jako Prywatne. Jesteśmy na dobrej drodze do tej zmiany.

    Bezpośrednio po słowie kluczowym Ustaw lokalna nazwa obiektu (możesz wybrać odpowiednią nazwę, ale powinna być zgodna z normalnymi regułami nazw zmiennych), po której następuje znak równości i słowo kluczowe Nowy i Nazwa modułu klasy (ClsArea) aby utworzyć instancję obiektu clsArea w pamięci ze wszystkimi jego właściwościami (zmiennymi).

    Istnieje skrót do tego dwuwierszowego kodu. Akcje obu tych wierszy kodu można osiągnąć za pomocą jednej instrukcji, jak pokazano poniżej:

    Dim oArea As ClsAreaSet oArea =Nowy ClsArea'skrót do powyższych dwóch instrukcjiDim oArea As New ClsArea

    Kiedy wpiszesz następny wiersz oObszar po którym następuje kropka (. ) separator pojawi się następujący ekran, pokazujący listę dostępnych właściwości obiektu niestandardowego do wyboru.

    Jeśli się nie pojawi, przejdź do okna dialogowego Opcje z menu Narzędzia i umieść znacznik wyboru w Automatycznej liście członków na karcie Edytor.

    Przed wyjściem z funkcji ostatnią instrukcją powinno być Set oArea =Nothing . Ta instrukcja jawnie zwalnia pamięć zajmowaną przez wystąpienie obiektu niestandardowego, dzięki czemu więcej pamięci jest dostępnej dla innych programów. Jest to odpowiedzialna operacja czyszczenia przez nasz program.

    Cokolwiek zrobimy z instancją obiektu niestandardowego, powinno być zakodowane między pierwszym a ostatnim zestawem oświadczenia.

    Program testowy obiektów klasy ClsArea.

    Ukończony kod programu testów klasowych znajduje się poniżej:

    Opcja Porównaj DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsAreaoArea.p_Desc ="Dywan"oArea.p_Length =25oArea.p_Width =15Debug.Print "Description", "Widthength" oArea.p_Desc, oArea.p_Length, oArea.p_WidthSet oArea =Funkcja NothingEnd

    Kliknij gdzieś w środku kodu i naciśnij F5 uruchomić program. Uruchomienie programu podano poniżej w celach informacyjnych.

    Opis Długość SzerokośćDywan 25 15 

    Publiczny|Prywatny zakres właściwości obiektu.

    Nasz prosty obiekt modułu klasy ma kilka wad i zamierzamy je naprawić.

    Pierwszym z nich jest to, że zadeklarowaliśmy wszystkie zmienne (lub właściwości) za pomocą Publicznych Zakres. Z tego powodu są widoczne dla innych programów VBA i mogą bezpośrednio zmieniać ich wartość. Drugą kwestią jest to, że zaakceptuje wszelkie nieprawidłowe wartości, takie jak wartości ujemne lub zerowe, co nie jest odpowiednie dla naszego obiektu klasy. Przed zaakceptowaniem wartości w zmiennych musimy uwzględnić kilka sprawdzeń walidacji.

    Pierwszy problem, który możemy łatwo rozwiązać, zmieniając deklaracje zmiennych z publicznych na Prywatne . Kiedy to zrobimy, powinniśmy mieć jakąś pośrednią metodę przechowywania i pobierania wartości ze zmiennych prywatnych. Taki jest cel Pobierz i Pozwól Procedury dotyczące właściwości dla każdej właściwości obiektu. Wprowadźmy te zmiany w module klasy.

    Otwórz moduł klasy ClsArea. Zmień słowo Public na Private dla wszystkich trzech zmiennych.

    Tworzenie procedur dotyczących własności

    Wybierz Procedura od Wstaw Menu, wpisz strDesc w Nazwie kontrola tekstu, wybierz Właściwość w Typie Grupa opcji i Publiczne w Zakresie grupa opcji. Kliknij OK, aby wstawić Procedury właściwości dla Private p_Desc Zmienna (właściwość).

    Option Porównaj DatabaseOption ExplicitPrivate p_Desc As StringPrivate p_Length As DoublePrivate p_Width As DoublePublic Property Uzyskaj strDesc() As String strDesc =p_Desc 'zwróć wartość z właściwości p_DescEnd PropertyPublic Niech strDesc(ByVal String') strNew_storeValue wartość do wartości strDesc =p_Desc Właściwość p_DescEnd

    Zarówno Pobierz Procedura i Pozwól Procedury są deklarowane jako Publiczne . Obie nazwy procedur są takie same strDesc. Domyślnie zwrócony typ danych to Wariant w Pobierz Procedura i typ danych Parametr jest również wstawiany jako Wariant w Let Procedura. W razie potrzeby możemy je zmienić na określone typy, co zrobiliśmy i zmieniliśmy na String rodzaj. Pierwsze trzy litery str w strDesc daje Użytkownikowi wskazówkę, że Właściwość oczekuje wartości typu danych String. Zmień Pozwól Procedura właściwości Parametr Nazwa zmiennej vNewValue do strNewValue

    Kiedy wstawiamy Procedurę właściwości, są one zawsze wstawiane za pomocą Pobierz i Pozwól Pary procedur dla zmiennej.

    Teraz przyjrzyj się dokładnie wyrażeniu, które napisaliśmy w Pobierz Procedura. Lewa strona = Podpisz nazwę procedury pobierania strDesc działa jak zmienna, aby zwrócić wartość skopiowaną ze zmiennej prywatnej p_Desc do programu wywołującego.

    Pozwól Procedura strDesc przyjmuje wartość ciągu w parametrze Zmienna strNewValue . Wartość wejściowa jest przekazywana do naszej prywatnej zmiennej p_Desc.

    Należy zauważyć, że nie ma bezpośredniego dostępu do naszej prywatnej zmiennej p_Desc do świata zewnętrznego. Transport wartości Od/Do zmienna (właściwość) p_Desc jest zawsze kierowany przez Get/Let Tylko procedury dotyczące własności i podlegają kontrolom walidacyjnym (jeszcze nie zaimplementowane), Wprowadzimy kontrole walidacji dla wartości wejściowych (procedura Let) do właściwości później.

    Pobierz/Pozwól Procedury są wykonywane automatycznie w zależności od tego, co robimy z właściwością Object w wyrażeniu w programach VBA.

    Pobierz procedura jest wykonywana, gdy użyjemy nazwy właściwości w wyrażeniu w następujący sposób:

    ‘ Odczytuje wartość z p_Desc do PrintDebug.Print oArea.strDescOR‘ Odczytuje wartość z p_Desc i przypisuje ją do zmiennej XX =oArea.strDesc

    Pozwól Procedura właściwości jest uruchamiana, gdy próbujemy przypisać wartość do nazwy właściwości. Sprawdź przykładowe wyrażenie w naszym programie testowym poniżej:

    oArea.strDesc =„Dywan”

    We wcześniejszych książkach w języku BASIC można zobaczyć użycie słowa kluczowego LET.

    LET X =25 ‘LET jest opcjonalny

    Ponieważ była opcjonalna, instrukcja działa bez niej i w ogóle przestała jej używać.

    Tutaj, jeśli tylko czytasz jakąś wartość ze zmiennej i nie przechowując niczego bezpośrednio w niej, możesz pominąć procedurę Let i użyć tylko Get Procedura.

    Zasada ta dotyczy również procedury Let. Możesz używać tylko Pozwól Procedura, jeśli przypisujesz jakaś wartość do zmiennej prywatnej, ale nie odczytuje niczego z tej samej zmiennej, a następnie pomiń procedurę pobierania.

    Pobierz i Pozwól Procedury będą działać jedna po drugiej, jeśli nasze wyrażenie będzie wyglądało mniej więcej tak:

    oArea.strDesc =oArea.strDesc &„ – King Size.”

    W powyższym wyrażeniu Pobierz istniejąca wartość ze zmiennej prywatnej p_Desc i zmodyfikuj opis i zapisz go z powrotem w tej samej zmiennej. W skrócie w wyrażeniu jeśli używasz nazwy usługi po prawej stronie znaku równości (= ) Pobierz Procedura jest wywoływana i Pozwól Procedura jest uruchamiana, gdy nazwa procedury właściwości obiektu pojawia się po lewej stronie równości (= ) znak.

    Wstaw dwa zestawy procedur właściwości dla zmiennych p_Length i p_Szerokość. Kiedy podasz nazwy procedur w Nazwie kontrola podaj nazwę dblLength i dblWidth aby dać wskazówkę użytkownikowi, że te właściwości oczekują liczb podwójnej precyzji jako danych wejściowych.

    Obiekt klasy ClsArea z procedurami właściwości.

    Ukończony dotychczas kod z procedurami właściwości dblLength i dblWidth znajduje się poniżej w celach informacyjnych i w celu aktualizacji kodu.

    Option Porównaj DatabaseOption ExplicitPrivate p_Desc As StringPrivate p_Length As DoublePrivate p_Width As DoublePublic Property Uzyskaj strDesc() As String strDesc =p_Desc 'skopiuj wartość z właściwości p_DescEnd PropertyPublic Let strDesc(ByVal StringEnd(ByVal strNewPValue Property) Asbl ) As Double dblLength =p_LengthEnd PropertyWłaściwość publiczna Let dblLength(ByVal dblNewValue As Double) p_Length =dblNewValueEnd PropertyWłaściwość publiczna Get dblWidth() As Double dblWidth =p_WidthEnd PropertyByblWid . 

    Program testowy ze zmianami.

    Jeśli ukończysz powyższy kod, pozwól nam wprowadzić zmiany w naszym programie testowym, aby odzwierciedlić zmiany, które tutaj wprowadziliśmy. Zmodyfikowany przykładowy kod znajduje się poniżej.

    Opcja Porównaj DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsArea'Property Pozwól procedurom o nazwie hereoArea.strDesc ="Carpet"oArea.dblLength =25oArea.dblWidth =15Debug", "Leng" "Width"'Property Get Procedury wywoływane tutaj, aby printDebug.Print oArea.strDesc, oArea.dblLength, oArea.dblWidthSet oArea =NothingEnd Function

    Po wprowadzeniu kropki (.) bezpośrednio po nazwie obiektu oArea (oArea.) lista nazw Procedur właściwości jest wyświetlana przez VBA IntelliSense i można wybrać żądaną z listy bez wpisywania jej ręcznie.

    Celem tego obiektu klasy jest obliczenie powierzchni czegoś, takiego jak powierzchnia pokoju, dywan, płytka podłogowa lub jakikolwiek inny materiał, który ma wartości Długość i Szerokość. Oznacza to, że potrzebujemy funkcji publicznej, aby obliczyć obszar dowolnej długości, szerokości i wartości opisu elementu wprowadzonych do obiektu klasy.

    Metoda obiektu ClsArea:Area()

    Oto kod funkcji publicznej:

    Obszar funkcji publicznej() jako podwójny obszar =Me.dblLength * Funkcja Me.dblWidthEnd

    Możesz wstawić tę funkcję z Wstaw Menu, wpisując Obszar w Nazwie Sterowanie, wybierając Funkcja z Typu grupa opcji i Publiczne jako Zakres do modułu klasy ClsArea. Uzupełnij funkcję, wpisując linię pośrodku.

    Możemy bezpośrednio adresować zmienne p_Length i p_Width (ponieważ funkcja Obszar() jest częścią modułu klasy) w wyrażeniu do obliczania powierzchni. Ale obieramy właściwą trasę i wywołujemy Get Procedures dblLength i dblWidth do obliczeń. Być może zauważyłeś odniesienie Ja. służy do kwalifikowania procedur pobierania dblLength, dblWidth, tak jak używaliśmy do pisania w modułach klasy Form/Report, do odwoływania się do bieżącego obiektu w pamięci i jego właściwości. Jak wspomniałem wcześniej, nasz obiekt klasy niestandardowej może mieć kilka instancji Object otwartych w pamięci w tym samym czasie, a Ja słowo kluczowe odnosi się do bieżącej instancji, do której należy funkcja Function Area().

    Funkcja testowa z modyfikacją.

    Zmodyfikuj naszą funkcję testową ClassTest1() tak, aby zawierała dane wyjściowe funkcji Area(), jak poniżej:

    Opcja Porównaj DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsAreaoArea.strDesc ="Dywan"oArea.dblLength =25oArea.dblWidth =15Debug.Print "Opis", "Długość", "A", "Debug.Print oArea.strDesc, oArea.dblLength, oArea.dblWidth, oArea.AreaSet oArea =NothingEnd Function

    Zmiana dotyczy tylko instrukcji Debug.Print. Uruchom kod i sprawdź wynik w oknie debugowania.

    W modułach klas niestandardowych wymagane są dwie procedury zdarzeń:Class_Initialize() i Class_Terminate() .

    Metody automatycznego wykonywania.

    Class_Initialize() program jest wykonywany automatycznie, gdy tworzymy wystąpienie obiektu z Nowym Słowo kluczowe. Ten program może być używany do ustawiania wartości domyślnych w zmiennych lub tworzenia instancji innych obiektów w pamięci. Jeden obiekt klasy może używać innych klas jako obiektów podrzędnych i wymaga utworzenia instancji. Ten aspekt omówimy dalej i dowiemy się, jak to zrobić później.

    Class_Terminate() program uruchamia się, gdy próbujemy wyczyścić obiekt z pamięci, gdy Nic słowo kluczowe jest uruchamiane w instrukcji Set oArea =Nothing . Gdy program korzystający z obiektu klasy kończy działanie, wystąpienie obiektu w pamięci jest domyślnie usuwane. Ale dobrą praktyką programistyczną jest używanie Set oArea =Nothing instrukcja jako ostatnia wykonywalna instrukcja w naszych programach, aby usunąć obiekt z pamięci.

    Powyższe programy dodamy w naszym module klasy. Dodaj następujący kod na końcu modułu zajęć:

    Private Sub Class_Initialize() p_Length =0 p_Width =0 'MsgBox "Initialize.", vbInformation, "Class_Initialize()"End SubPrivate Sub Class_Terminate() 'MsgBox "Terminate.", vbInformation, "Class_Terminate()"End Sub 

    Jeśli chcesz przetestować te dwie podprogramy, usuń symbol komentarza i aktywuj MsgBox. Uruchom program testowy jeszcze raz. Znajdziesz Zainicjuj na początku pojawia się komunikat (kliknij OK, aby kontynuować), a komunikat Zakończ na końcu programu testowego pojawi się komunikat.

    Wiem, o czym teraz myślisz, na przykład „tyle kodu do mnożenia dwóch zmiennych razem”. To prawda z tej perspektywy, ale jest bardzo prawdopodobne, że za każdym razem pisaliśmy kod dla podobnych problemów związanych z rozwiązywaniem problemów, powielając kod w celu sprawdzenia walidacji i innych logicznych zabezpieczeń przed błędami.

    Tutaj nie piszemy zwykłego programu, ale rozwijamy niestandardowy obiekt, który może być używany wiele razy lub może być częścią innych obiektów, gdziekolwiek go potrzebujemy, bez martwienia się o to, jak działa z punktu widzenia użytkownika. Microsoft Access ma wiele wbudowanych obiektów/funkcji, których używamy przez cały czas, nie martwiąc się o to, jak to działa, ustawiając ich właściwości lub parametry i wykonując pracę.

    Mamy jeszcze jedną kwestię, którą musimy się zająć, weryfikację sprawdzania wartości wprowadzanych do dblNewValue Parametr w Pozwól Procedury właściwości dblLength() i dblWidth(), aby upewnić się, że prawidłowe wartości są przypisane do właściwości obiektu p_Length i p_Width .

    Wprowadzone wartości ujemne lub zerowe są uważane za nieważne i musimy podjąć środki ostrożności, aby upewnić się, że użytkownik wprowadził prawidłową wartość.

    Wykonywanie kontroli walidacyjnych.

    Zmodyfikowany Pozwól Segmenty Kodu Procedury Własności podano poniżej. Wprowadź odpowiednie zmiany w kodzie.

    Właściwość publiczna Niech dblLength(ByVal dblNewValue jako Double) działa, podczas gdy dblNewValue <=0 dblNewValue =InputBox("Nieprawidłowe wartości ujemne/0:", "dblLength()", 0) Loop p_Length =dblNewValueEnd PropertyPubal Property dblNewValue As Double) Wykonaj, gdy dblNewValue <=0 dblNewValue =InputBox("Nieprawidłowe wartości ujemne/0:", "dblwidth()", 0) Loop p_Width =dblNewValueEnd Property

    Zrób chwilę. . . Pętla działa wielokrotnie, aż do wprowadzenia prawidłowej wartości (większej niż 0) w dblNewValue przez Użytkownika

    Kontrole walidacji w metodzie publicznej:Area()

    Potrzebujemy jeszcze jednego sprawdzenia poprawności w Obszar() Funkcjonować. Jeżeli użytkownik wywoła funkcję Area() bez uprzedniego podania poprawnych wartości dla Length i Width, to użytkownik musi zostać o tym poinformowany. Przed uruchomieniem wyrażenia do obliczenia powierzchni sprawdzimy, czy zmienne p_Length i p_Width mają prawidłowe wartości. Oto kod:

    Funkcja publiczna Area() jako podwójna, jeśli (Me.dblLength> 0) i (Me.dblWidth> 0) Then Area =Me.dblLength * Me.dblWidth Else Area =0 MsgBox "Błąd:wartości długości/szerokości ) Nieprawidłowy, program przerwany." Zakończ, jeśliZakończ funkcję

    Pełny kod obiektu ClsArea.

    W pełni wypełniony kod naszego modułu klasowego ClsArea znajduje się poniżej:

    Option Porównaj DatabaseOption ExplicitPrivate p_Desc As StringPrivate p_Length As DoublePrivate p_Width As DoublePublic Property Uzyskaj strDesc() As String strDesc =p_Desc 'skopiuj wartość z właściwości p_DescEnd PropertyPublic Let strDesc(ByVal StringEnd(ByVal strNewPValue Property) Asbl ) As Double dblLength =p_LengthEnd PropertyWłaściwość publiczna Let dblLength(ByVal dblNewValue As Double) Do While dblNewValue <=0 dblNewValue =InputBox("Niepoprawne wartości ujemne/0:", "dblLength()", 0) Loop PropertyP_Length dblWidth() As Double dblWidth =p_WidthEnd PropertyWłaściwość publiczna Niech dblWidth(ByVal dblNewValue As Double) Do While dblNewValue <=0 dblNewValue =InputBox("Niepoprawne wartości ujemne/0:", "dblwidthPdblNewValue()", 0) Loop Funkcja Area() jako Double If (Me.dblLength> 0) i (Me.dblWidth> 0) Then Area =Me.dblLength * Me.dblWidth Else Area =0 MsgBox "Błąd:Nieprawidłowe wartości długości/szerokości, program przerwany." End IfEnd FunctionPrivate Sub Class_Initialize() p_Length =0 p_Width =0 'MsgBox "Initialize.", vbInformation, "Class_Initialize()"End SubPrivate Sub Class_Terminate() 'MsgBox "Terminate.", vbInformation, "Class_Sub 

    Procedury i metody testowania właściwości.

    Możesz przetestować nasz obiekt klasy niestandardowej, wprowadzając wartości ujemne lub 0 jako dane wejściowe do właściwości dblLength, dblWidth.

    W programie testowym skomentuj wiersze (oArea.dblLength=25 i oArea.dblWidth=15), aby przetestować funkcję Area(). Powinien wyświetlić komunikat o błędzie, który napisaliśmy w funkcji.

    Nasz moduł klasy obliczania powierzchni jest teraz uważany za kompletny i przetestowaliśmy go i stwierdziliśmy, że działa poprawnie. Możesz go dalej przetestować pod kątem błędów logicznych, które przeoczyłem. Jeśli natkniesz się na coś, czego nie przewidziałem, podziel się tym ze mną.

    Przyszły plan testów.

    Przetestowaliśmy obiekt klasy tylko dla jednego elementu. Musimy obliczyć powierzchnię kilku przedmiotów (powiedzmy powierzchnię 5 sypialni lub 10 dywanów o różnej wielkości itd. Powiedziano nam, że po opracowaniu obiektu możemy go kilkakrotnie utworzyć w pamięci, przypisując inny zestaw wartości do każdej instancji obiektu i może z nimi pracować.

    Poza tym ten obiekt może być używany jako część innych obiektów, które opracowujemy przy użyciu mniejszego kodu, ponieważ część naszego nowego obiektu klasy jest już opracowana w module klas ClsArea.

    W przyszłym tygodniu dowiemy się, jak utworzyć tablicę niestandardowych obiektów, aby obliczyć powierzchnię kilku elementów.

    1. Moduł klasy MS-Access i VBA
    2. Tablice obiektów klasy MS-Access VBA
    3. Klasa bazowa MS-Access i obiekty pochodne
    4. Klasa podstawowa VBA i obiekty pochodne-2
    5. Warianty klasy bazowej i obiektów pochodnych
    6. Ms-Access Recordset and Class Module
    7. Dostęp do modułu klas i klas opakowujących
    8. Transformacja funkcjonalności klasy opakowującej
    9. Podstawy dostępu do MS i obiektów kolekcji
    10. Moduł klasy Ms-Access i obiekt kolekcji
    11. Rekordy tabeli w obiekcie i formularzu kolekcji
    12. Podstawy obiektów słownikowych
    13. Podstawy obiektów słownika-2
    14. Sortowanie kluczy obiektów i elementów słownika
    15. Wyświetl rekordy ze słownika do formularza
    16. Dodaj obiekty klasy jako elementy słownika
    17. Aktualizuj element słownika obiektów klasy w formularzu


    1. Database
    2.   
    3. Mysql
    4.   
    5. Oracle
    6.   
    7. Sqlserver
    8.   
    9. PostgreSQL
    10.   
    11. Access
    12.   
    13. SQLite
    14.   
    15. MariaDB
    1. Jak utworzyć pole obliczeniowe w programie Access

    2. Sprawdź źródło kontroli wszystkich kontroli w projekcie MS Access

    3. Kiedy należy używać programu SQL Server z programem Access? (Wskazówka:prawie zawsze)

    4. Jak dodać nagłówek i stopkę do raportu w programie Microsoft Access

    5. Jak naprawić „Przekroczono zasoby systemowe” podczas migracji do systemu Windows 10?