sql >> Database >  >> RDS >> Access

MS-Access Class-module en VBA

Inleiding.

De afgelopen weken hebben we geleerd hoe we User-Defined Type (UDT) kunnen gebruiken door een complexe datastructuur te creëren en we kennen de sterkte of zwakte van UDT nu min of meer. Als u die artikelen niet hebt doorgenomen, kunt u ze bezoeken. Gebruik de volgende links:

  • Door gebruiker gedefinieerd gegevenstype-2
  • Door gebruiker gedefinieerd gegevenstype-3

In Microsoft Access zijn er twee soorten VBA-modules.

  1. Standaardmodules
  2. Klasmodules

We hebben met klasmodules gewerkt aan Formulieren en Rapporten van Microsoft Access. Form/Report Class Module-programma's zijn meestal gebeurtenisgestuurde (knop-klikken, Before-Update, Form/Report Current Event, enzovoort) kleine routines.

Meer serieuze gegevensverwerking Programma's zullen worden geschreven in standaardmodules. Verschillende programma's, die niet noodzakelijk gerelateerd zijn, kunnen in één standaardmodule worden geschreven om verschillende taken uit te voeren.

Klasmodules zijn anders. Ze worden gebruikt voor het bouwen van aangepaste objecten en één klassemodule wordt gebruikt voor slechts één object.

De basisprincipes van een zelfstandige klasmodule.

Laten we vanaf het begin een eenvoudige klasmodule maken en de basis leren.

  1. Start Microsoft Access en open een database of maak een nieuwe. Als het een nieuwe database is, sla deze dan op in de bestaande vertrouwde locatie (map) of voeg de nieuwe locatie toe aan de lijst met vertrouwde locaties. Klik op Office-knop -> Toegangsopties -> Vertrouwenscentrum -> Instellingen vertrouwenscentrum. Voeg de databasemap toe aan de lijst en klik op OK.
  2. Open het VBA-bewerkingsvenster (Alt+F11).
  3. Klik op Invoegen Menu en selecteer de Klasmodule van de lijst. Er wordt een nieuwe klasmodule ingevoegd.

  • In het linkerdeelvenster staat een Naam controle met de naam Klasse1.
  • Wijzig de naam Klasse1 naar ClsArea . Dit is de naam van ons aangepaste object.

  • Opmerking: De klassenaam:ClsArea de objectnaam worden. Dat betekent dat, waar we dit object ook gebruiken, het als een normale variabele declaratie zal zijn:Dim xyz As ClsArea . We hebben een soortgelijke verklaring geschreven voor declaraties van door de gebruiker gedefinieerde gegevenstypen.

    Vervolgens voegen we drie eigenschappen (variabelen) van het object toe (voor Beschrijving, Lengte, en Breedte ) bovenaan de module, onder de Optie Vergelijk Database en Expliciete optie lijnen. Typ de volgende regels in de klasmodule.

    Optie Vergelijk DatabaseOption ExplicitPublic p_Desc als StringPublic p_Length als DoublePublic p_Width als Double

    Deze variabelen worden aangeduid als Eigenschappen van het VBA Custom Class Object. Sla de klasmodule op.

    Opmerking: Ons Class Module Object en coderegels zullen niet zo eenvoudig zijn. Het zal veranderingen ondergaan met verschillende regels code. Wees voorbereid om ze stap voor stap te volgen, zonder elke fase van veranderingen uit het oog te verliezen. Dit is een eenvoudige oppervlakteberekeningsklasse (oppervlakte =lengte * breedte ), dat is simpel. Het zal geleidelijk veranderingen ondergaan, zodat u weet waarom die veranderingen nodig zijn.

    We zullen een klein programma schrijven in een standaardmodule om onze nieuwe klasmodule te testen. Voeg een standaardmodule in vanuit het menu Invoegen. U kunt de volgende code typen of kopiëren en plakken in de standaardmodule, waarbij u de bestaande regel in de module overschrijft:

    Optie Vergelijk DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsAreaoArea.Set oArea =NothingEnd Function

    De Dim statement declareert een variabele zoals we doen voor een normale variabele, zoals Dim Desc as String. Maar dit is geen gewone variabele, we stellen een verwijzing in naar ons Class Module Object ClsArea . Aangezien het een object is, is een eenvoudige Dimension-instructie alleen niet voldoende, omdat er geen geheugenruimte wordt toegewezen om waarden op te slaan in ons lokaal gedefinieerde Object oArea Eigenschappen.

    De Set statement in de volgende regel met de Nieuwe trefwoord vereist om een ​​instantie van een object te maken uit ClsArea in het geheugen, met de objectinstantienaam oArea . We kunnen op deze manier indien nodig verschillende instanties van hetzelfde klasseobject in het geheugen openen (we zullen er de komende weken meer over leren), zodat we waarden kunnen opslaan in zijn eigenschappen (p_Desc, p_Length, p_Width). De p_ prefix voor de variabelen is een indicator dat het bereik van variabelen Private is, d.w.z. de variabelen zijn niet zichtbaar buiten de Class Module als de variabele is gedeclareerd met het sleutelwoord Private, maar nu is deze gedeclareerd als Public. De variabelenaam kan elke geldige naam zijn.

    Opmerking: We hebben het nog niet als Privé gedeclareerd. We zijn op weg naar die verandering.

    Onmiddellijk na het trefwoord Set de lokale objectnaam (u kunt een geschikte naam kiezen, maar deze moet voldoen aan de normale variabelenaamregels) gevolgd door een gelijkteken en het trefwoord Nieuw en de Class Module Name (ClsArea) om een ​​instantie van het clsArea-object in het geheugen te maken met al zijn eigenschappen (variabelen).

    Er is een snelkoppeling voor deze tweeregelige code. Acties van beide coderegels kunnen worden bereikt met één instructie, zoals hieronder weergegeven:

    Dim oArea As ClsAreaSet oArea =New ClsArea'de snelkoppeling naar de bovenstaande twee statementsDim oArea As New ClsArea

    Wanneer u de volgende regel typt oArea gevolgd door een punt (. ) scheidingsteken verschijnt het volgende scherm om de lijst met beschikbare aangepaste objecteigenschappen weer te geven waaruit u kunt kiezen.

    Als het niet verschijnt, gaat u naar het dialoogvenster Opties in het menu Extra en plaatst u een vinkje bij Leden automatisch weergeven op het tabblad Editor.

    Voordat u de functie verlaat, moet de laatste instructie Set oArea =Nothing . zijn . Deze instructie geeft expliciet het geheugen vrij dat wordt ingenomen door de instantie van het aangepaste object, zodat er meer geheugen beschikbaar is voor andere programma's. Dit is een verantwoorde schoonmaakoperatie volgens ons programma.

    Wat we ook doen met het geïnstantieerde aangepaste object, het moet worden gecodeerd tussen de eerste en de laatste Set verklaringen.

    Het ClsArea Class Object-testprogramma.

    De ingevulde Class Testing Program Code wordt hieronder gegeven:

    Optie Vergelijk DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsAreaoArea.p_Desc ="Carpet"oArea.p_Length =25oArea.p_Width =15Debug.Print "Description", "Lengthbug", "Print" oArea.p_Desc, oArea.p_Length, oArea.p_WidthSet oArea =NothingEnd-functie

    Klik ergens in het midden van de code en druk op F5 om het programma uit te voeren. De uitvoering van het programma wordt hieronder ter referentie gegeven.

    Omschrijving Lengte BreedteCarpet 25 15 

    Openbaar|Privé bereik van objecteigenschappen.

    Ons eenvoudige Class Module Object heeft weinig nadelen en we gaan ze corrigeren.

    De eerste is dat we alle variabelen (of eigenschappen) hebben gedeclareerd met Openbaar Domein. Daarom zijn ze zichtbaar voor andere VBA-programma's en kan hun waarde direct worden gewijzigd. Het tweede probleem is dat het alle ongeldige waarden accepteert, zoals negatieve of nulwaarden, die niet geschikt zijn voor ons klasseobject. We moeten enkele validatiecontroles opnemen voordat we de waarden in de variabelen accepteren.

    Het eerste probleem dat we gemakkelijk kunnen oplossen door de variabele declaraties te wijzigen van Openbaar in Privé . Als we dat doen, zouden we een indirecte methode moeten hebben om waarden op te slaan en op te halen uit de privévariabelen. Dat is het doel van de Get en Laat Eigenschappenprocedures, voor elke eigenschap van het object. Laten we deze wijzigingen aanbrengen in de klasmodule.

    Open de klasmodule ClsArea. Verander het woord Openbaar in Privé voor alle drie de variabelen.

    Procedures voor eigendom maken

    Selecteer Procedure van Invoegen Menu, typ strDesc in de Naam tekstbesturingselement, selecteer Eigenschap in het Type Optiegroep en Openbaar in de Reikwijdte optie groep. Klik op OK om de eigenschappenprocedures in te voegen voor de Private p_Desc Variabele (eigenschap).

    Optie Vergelijk DatabaseOption ExplicitPrivate p_Desc As StringPrivate p_Length As DoublePrivate p_Width As DoublePublic Property Get strDesc() As String strDesc =p_Desc 'retourneer de waarde van p_DescEnd PropertyPublic Property Let strDesc(ByVal strNewValue As String) pNewValue As String) p_DescEnd Eigenschap

    Zowel de Krijgen Procedure en Laat Procedure zijn gedeclareerd als Openbaar . Beide procedurenamen zijn hetzelfde strDesc. Standaard is de geretourneerde gegevenstype is Variant in de Krijgen Procedure en het gegevenstype Parameter wordt ook ingevoegd als Variant in de Let Procedure. Deze kunnen we indien nodig wijzigen in specifieke typen, wat we hebben gedaan en gewijzigd in String type. De eerste drie letters str in strDesc geeft de gebruiker een hint dat de eigenschap een waarde van het gegevenstype String verwacht. Wijzig de Laat Eigenschap Procedure Parameter Variabelenaam vNewValue naar strNewValue

    Wanneer we de eigenschappenprocedure invoegen, worden ze altijd ingevoegd met Get en Laat Procedureparen voor een variabele.

    Kijk nu eens goed naar de uitdrukking die we hebben geschreven in de Get Procedure. De linkerkant van de = Onderteken de naam van de Get-procedure strDesc fungeert als een variabele om de waarde te retourneren die is gekopieerd van de privévariabele p_Desc naar het oproepende programma.

    De Laat Procedure strDesc accepteert tekenreekswaarde in parametervariabele strNewValue . De invoerwaarde wordt overgebracht naar onze privévariabele p_Desc.

    Het punt om hier op te merken is dat er geen directe toegang is tot onze privévariabele p_Desc naar de buitenwereld. Transport van waarden Van/Naar de variabele (eigenschap) p_Desc wordt altijd gerouteerd via de Get/Let Alleen eigendomsprocedures en onderhevig aan Validatiecontroles (nog niet geïmplementeerd), we zullen later validatiecontroles introduceren op ingevoerde waarden (let procedure) in de eigenschap.

    De Krijgen/laten Procedures worden automatisch uitgevoerd, afhankelijk van wat we doen met de eigenschap Object in een expressie in VBA-programma's.

    De Krijg procedure wordt uitgevoerd wanneer we de eigenschapsnaam in een uitdrukking op de volgende manier gebruiken:

    ‘ Leest de waarde van p_Desc naar PrintDebug.Print oArea.strDescOR‘ Leest de waarde van p_Desc en wijst deze toe aan de variabele XX =oArea.strDesc

    De Laat Property Procedure wordt uitgevoerd wanneer we proberen een waarde toe te wijzen aan de Property Name. Bekijk de voorbeelduitdrukking in ons testprogramma hieronder:

    oArea.strDesc ="Tapijt"

    In eerdere BASIC Language-boeken zie je het gebruik van het trefwoord LET.

    LET X =25 ' LET is optioneel

    Omdat het optioneel was, werkt het statement ook zonder en is het helemaal niet meer gebruikt.

    Hier, als je alleen leest een waarde uit een variabele en er niets rechtstreeks in opslaat, dan kunt u de Let-procedure weglaten en alleen de Get gebruiken Procedure.

    Deze regel geldt ook voor de Let-procedure. U mag alleen de Let . gebruiken Procedure, als u toewijst een waarde in een privévariabele maar leest niets terug van dezelfde variabele en laat dan de Get-procedure weg.

    De Krijg en Laat Procedures zullen na elkaar worden uitgevoerd als onze uitdrukking zoiets als het volgende is:

    oArea.strDesc =oArea.strDesc &“ – Kingsize.”

    In de bovenstaande uitdrukking zullen we Get de bestaande waarde van de privévariabele p_Desc en wijzig de beschrijving en sla deze weer op in dezelfde variabele. In het kort in een uitdrukking als u de eigenschapsnaam rechts van het gelijkteken gebruikt (= ) de Krijgen Procedure wordt aangeroepen en Let De procedure wordt uitgevoerd wanneer de procedurenaam van de objecteigenschap links van de gelijksoort verschijnt (= ) teken.

    Voeg twee sets Eigenschapsprocedures in voor de variabelen p_Length en p_Width. Wanneer u de procedurenamen geeft in de Naam controle geef de naam dblLength en dblWidth om de gebruiker een hint te geven dat deze eigenschappen dubbele precisie-getallen als invoer verwachten.

    ClsArea Class Object met zijn Property Procedures.

    De voltooide code tot nu toe met dblLength en dblWidth Property Procedures wordt hieronder gegeven ter referentie en om uw code bij te werken.

    Optie Vergelijk DatabaseOption ExplicitPrivate p_Desc As StringPrivate p_Length As DoublePrivate p_Width As DoublePublic Property Get strDesc() As String strDesc =p_Desc 'kopieer de waarde van p_DescEnd PropertyPublic Property Let strDesc(ByVal strNewValue As String) p_Desc ) As Double dblLength =p_LengthEnd PropertyPublic Property Let dblLength(ByVal dblNewValue As Double) p_Length =dblNewValueEnd PropertyPublic Property Get dblWidth() As Double dblWidth =p_WidthEnd Double_End PropertyPublic Property( 

    Het testprogramma met veranderingen.

    Als u klaar bent met het invullen van de bovenstaande code, laat ons dan wijzigingen aanbrengen in ons testprogramma om de wijzigingen weer te geven die we hier hebben aangebracht. De gewijzigde voorbeeldcode wordt hieronder gegeven.

    Optie Vergelijk DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsArea'Property Laat procedures genaamd hereoArea.strDesc ="Carpet"oArea.dblLength =25oArea.dblWidth =15Debug.Print "Description", "LENgth" "Width"'Property Get-procedures worden hier aangeroepen voor printDebug.Print oArea.strDesc, oArea.dblLength, oArea.dblWidthSet oArea =NothingEnd-functie

    Wanneer u een punt (.) direct na de objectnaam oArea (oArea.) invoert, wordt de lijst met namen van eigenschapsprocedures weergegeven door de VBA IntelliSense en kunt u de vereiste uit de lijst selecteren zonder deze handmatig te typen.

    Het doel van dit klasseobject is om de oppervlakte van iets te berekenen, zoals de oppervlakte van de kamer, tapijt, vloertegel of welk materiaal dan ook, met waarden voor lengte en breedte. Dat betekent dat we een openbare functie nodig hebben om het gebied te berekenen van de lengte-, breedte- en beschrijvingswaarden van het item die in het klasseobject zijn ingevoerd.

    ClsArea Objectmethode:Area()

    Hier is de code voor de publieke functie:

    Public Function Area() As Double Area =Me.dblLength * Me.dblWidthEnd Function

    U kunt deze functie invoegen vanuit de Invoegen Menu door Gebied in te voeren in de Naam Controle, Functie selecteren van het Type optiegroep, en Openbaar als Reikwijdte in de ClsArea-klassenmodule. Voltooi de functie door de regel in het midden in te voeren.

    We kunnen de variabelen p_Length en p_Width direct adresseren (omdat de functie Area() maakt deel uit van de klassenmodule) in de uitdrukking voor het berekenen van de oppervlakte. Maar we nemen de juiste route en roepen Get Procedures dblLength en dblWidth op voor berekening. Je hebt misschien de verwijzing Me. . opgemerkt gebruikt om de dblLength, dblWidth Get-procedures te kwalificeren, zoals we vroeger schreven in Form/Report Class Modules, om te verwijzen naar het huidige object in het geheugen en zijn eigenschappen. Zoals ik eerder al zei, kan ons Custom Class Object meerdere Object-instanties tegelijkertijd in het geheugen hebben geopend en de Ik trefwoord verwijst naar de huidige instantie waartoe het Functiegebied() behoort.

    De testfunctie met aanpassing.

    Wijzig onze Test Functie ClassTest1() om de Area() functie-uitvoer op te nemen, zoals hieronder:

    Optie Vergelijk DatabaseOption ExplicitPublic Function ClassTest1()Dim oArea As ClsAreaSet oArea =New ClsAreaoArea.strDesc ="Carpet"oArea.dblLength =25oArea.dblWidth =15Debug.Print "Description", "LengthArea", "Width", "Width" "Debug.Print oArea.strDesc, oArea.dblLength, oArea.dblWidth, oArea.AreaSet oArea =NothingEnd-functie

    De wijziging zit alleen in de Debug.Print-instructies. Voer de code uit en controleer het Debug-venster voor het resultaat.

    Er zijn twee gebeurtenisprocedures vereist in de aangepaste klassenmodules:Class_Initialize() en Class_Terminate() .

    Automatische uitvoeringsmethoden.

    De Class_Initialize() programma wordt automatisch uitgevoerd wanneer we een object instantiëren met de Nieuwe Sleutelwoord. Dit programma kan worden gebruikt om standaardwaarden in variabelen in te stellen of om andere objecten in het geheugen te instantiëren. Eén klasseobject kan andere klassen gebruiken als onderliggende object(en) en moet worden geïnstantieerd. Dit aspect zullen we verder onderzoeken en leren hoe we het later kunnen doen.

    De Class_Terminate() programma wordt uitgevoerd wanneer we proberen het object uit het geheugen te wissen wanneer de Niets trefwoord wordt uitgevoerd in de instructie Set oArea =Nothing . Wanneer het programma dat het klasseobject gebruikt, eindigt, wordt de instantie van het object in het geheugen standaard verwijderd. Maar het is een goede programmeerpraktijk die we gebruiken Set oArea =Nothing statement als het laatste uitvoerbare statement in onze programma's om het object uit het geheugen te wissen.

    We zullen de bovenstaande programma's toevoegen aan onze klasmodule. Voeg de volgende code toe aan het einde van je klasmodule:

    Private Sub Class_Initialize() p_Length =0 p_Width =0 'MsgBox "Initialiseren.", vbInformation, "Class_Initialize()"End SubPrivate Sub Class_Terminate() 'MsgBox "Beëindigen.", vbInformation, "Class_Initialize()"Beëindigen Sub 

    Als u deze twee subroutines wilt testen, verwijder dan het commentaarsymbool en maak de MsgBox actief. Voer uw testprogramma nog een keer uit. U vindt de Initialiseren bericht verschijnt aan het begin (Klik op OK om door te gaan) en de Beëindigen bericht verschijnt aan het einde van het testprogramma.

    Ik weet wat je nu denkt, zoals "zoveel code om twee variabelen met elkaar te vermenigvuldigen". In dat opzicht is het waar, maar het is zeer waarschijnlijk dat we code hebben geschreven voor soortgelijke probleemoplossende problemen, telkens opnieuw, waarbij we code dupliceren voor validatiecontroles en voor andere logische foutbeveiligingen.

    Hier schrijven we geen gewoon programma, maar ontwikkelen we een aangepast object dat vele malen kan worden gebruikt of deel kan uitmaken van andere objecten, waar we het ook nodig hebben zonder ons zorgen te maken over hoe het werkt, vanuit het oogpunt van de gebruiker. Microsoft Access heeft veel ingebouwde objecten/functies die we altijd gebruiken zonder ons zorgen te maken over hoe het werkt, door hun eigenschappen of parameters in te stellen en het werk gedaan te krijgen.

    We hebben nog een probleem te verhelpen, de validatiecontroles op waarden die zijn ingevoerd in de dblNewValue Parameter in de Let Eigenschappenprocedures van dblLength() en dblWidth(), om ervoor te zorgen dat geldige waarden worden toegewezen aan Objecteigenschappen p_Length en p_Width .

    Negatieve of nulwaarden die zijn ingevoerd, worden als ongeldig beschouwd en we moeten voorzorgsmaatregelen nemen om ervoor te zorgen dat de gebruiker de juiste waarde invoert.

    Validatiecontroles uitvoeren.

    De gewijzigde Let De segmenten van de eigendomsprocedurecode worden hieronder gegeven. Breng dienovereenkomstig wijzigingen aan in uw code.

    Public Property Let dblLength(ByVal dblNewValue As Double) Do While dblNewValue <=0 dblNewValue =InputBox("Negative/0 Values ​​Invalid:", "dblLength()", 0) Loop p_Length =dblNewValueEnd PropertyPublic Property dblNewValue As Double) Do While dblNewValue <=0 dblNewValue =InputBox("Negative/0 Values ​​Invalid:", "dblwidth()", 0) Loop p_Width =dblNewValueEnd Property

    De Do While. . . Loop wordt herhaaldelijk uitgevoerd totdat een geldige waarde (groter dan 0) wordt ingevoerd in dblNewValue door de gebruiker

    Validatiecontroles in de openbare methode:Area()

    We hebben nog een validatiecontrole nodig in het Area() Functie. Als de gebruiker de functie Area() aanroept zonder eerst geldige waarden voor Lengte en Breedte in te voeren, moet de gebruiker hierover worden geïnformeerd. We zullen controleren of de variabelen p_Length en p_Width geldige waarden hebben voordat we de uitdrukking voor oppervlakteberekening uitvoeren. Hier is de code:

    Public Function Area() As Double If (Me.dblLength> 0) And (Me.dblWidth> 0) Then Area =Me.dblLength * Me.dblWidth Else Area =0 MsgBox "Fout:lengte/breedte waarde(n) ) Ongeldig., Programma afgebroken." End IfEnd-functie

    De volledige code van het ClsArea-object.

    De volledig ingevulde Code van onze Class Module ClsArea wordt hieronder gegeven:

    Optie Vergelijk DatabaseOption ExplicitPrivate p_Desc As StringPrivate p_Length As DoublePrivate p_Width As DoublePublic Property Get strDesc() As String strDesc =p_Desc 'kopieer de waarde van p_DescEnd PropertyPublic Property Let strDesc(ByVal strNewValue As String) p_Desc ) As Double dblLength =p_LengthEnd PropertyPublic Property Let dblLength(ByVal dblNewValue As Double) Do While dblNewValue <=0 dblNewValue =InputBox("Negative/0 Values ​​Invalid:", "dblLength()", 0 =LoopdEngth()", 0 =LoopdEngth()", 0 =Loopd Property p_LengthPub dblWidth() As Double dblWidth =p_WidthEnd PropertyPublic Property Let dblWidth(ByVal dblNewValue As Double) Do While dblNewValue <=0 dblNewValue =InputBox("Negative/0 Values ​​Invalid:", "dblwidlic Property()", 0) Functie Area() As Double If (Me.dblLength> 0) And (Me.dblWidth> 0) Then Area =Me.dblLength * Me.dblWidth Else Area =0 MsgBox "Fout:Lengte/Breedte Waarde(n) Ongeldig., Programma afgebroken." 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 Sub, "Class_Terminate" /pre> 

    Procedures en methoden voor eigenschappen testen.

    U kunt ons Custom Class Object testen door negatieve of 0 waarden in te voeren als invoer voor dblLength, dblWidth Properties.

    Geef in het testprogramma commentaar op de regels (oArea.dblLength=25 en oArea.dblWidth=15) om de Area()-functie te testen. Het zou de foutmelding moeten weergeven die we in de functie hebben geschreven.

    Onze Klasse-module voor oppervlakteberekening wordt nu als voltooid beschouwd en we hebben getest en vastgesteld dat deze correct werkt. U kunt het verder testen op logische fouten die ik over het hoofd heb gezien. Als je iets tegenkomt dat ik niet had verwacht, deel het dan met me.

    Toekomstig plan voor testen.

    We hebben het klasseobject voor slechts één item getest. We moeten de oppervlakte van verschillende items berekenen (bijvoorbeeld de oppervlakte van 5 slaapkamers of 10 tapijten van verschillende afmetingen, enzovoort). Er wordt ons verteld dat als een object eenmaal is ontwikkeld, we het meerdere keren in het geheugen kunnen instantiëren door een andere reeks waarden toe te wijzen in elke instantie van het object en kan ermee werken.

    Daarnaast kan dit object worden gebruikt als onderdeel van andere objecten die we ontwikkelen met minder code omdat een deel van ons nieuwe klasseobject al is ontwikkeld in de ClsArea Class-module.

    Volgende week leren we hoe we een array van aangepaste objecten kunnen maken om de oppervlakte van verschillende items te berekenen.

    1. MS-Access Class-module en VBA
    2. MS-Access VBA Class Object Arrays
    3. MS-Access-basisklasse en afgeleide objecten
    4. VBA-basisklasse en afgeleide objecten-2
    5. Basisklasse en afgeleide objectvarianten
    6. Ms-Access Recordset en Class Module
    7. Toegang tot klassenmodule en wrapperklassen
    8. Transformatie van functionaliteit van wrapperklasse
    9. Basisprincipes voor MS-Access en verzamelingsobjecten
    10. Ms-Access Class-module en verzamelobject
    11. Tabelrecords in verzamelobject en formulier
    12. Basisprincipes van woordenboekobjecten
    13. Basisprincipes van woordenboekobjecten-2
    14. Woordenboekobjectsleutels en -items sorteren
    15. Records van woordenboek naar formulier weergeven
    16. Klasobjecten toevoegen als woordenboekitems
    17. Klasobjectwoordenboekitem op formulier bijwerken


    1. Gebruik SET TEXTSIZE om de geretourneerde gegevens voor elke rij in SQL Server te beperken

    2. ODBC-toegang vanaf Windows Server Core

    3. Disaster Recovery Planning voor MySQL &MariaDB

    4. Gebruik @@IDENTITY om de laatst ingevoerde identiteitswaarde in SQL Server te retourneren