Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
Hmm..., det bliver man rigtig nok lidt klogere af, men ikke meget. Jeg kan forstå, at det er noget indviklet noget. Jeg er derfor også godt klar over, at det sikkert ikke kan forklares bedre.
Hvornår bruger man det - er det noget man kan få brug for (privat)?
Et modul er et databaseobjekt på samme måde som tabeller, forespørgsler, formularer og rapporter.
Et modul indeholder en eller flere procedürer / funktioner med hver sin VBA-kode, der kaldes fra en forespørgsel eller formular, og f.eks udfører nogle beregninger.
F.eks. kan vi tage validiteten af et CPRNR. Et CPRNR er ikke bare en række tilfældige tal. De første 6 er jo din fødselsdato, og disse cifrer kan ikke røres. Men de sidste 4 er nøje afstemt efter hinanden, så det er muligt efterfølgende at foretage en validering af dit CPRNR. Denne validering (en modulus 11 beregning) kan du kode i VBA, og f,eks lægge koden i et kontrolelement i din formular. Men så fungerer koden kun i denne ene formular, og hvis du gerne vil bruge beregningen andre steder i databasen, kan du placere koden i en funktion i et modul.
Denne funktion kan du så kalde fra dine formularer. På denne måde "genbruge" koden andre steder i din database.
Hvis du f.eks. arbejder med CPRNR, og du i nogle tilfælde kun vil se fødselsdata, kan du også lægge denne kode i samme modul. Ligeledes med beregningen af personens køn.
På denne måde kan du samle alle beregninger om et CPRNR i et modul der netop hedder CPRNR. Inde i dette CPRNR-modul kan du så have flg. funktioner:
- fødselsdata - køn
Du kan så kalde een eller flere funktioner således fra din formular:
Private Sub Køn_Enter() CPR.Check CPRNR CPR.Køn CPRNR CPR.CPR6første CPRNR CPR.Fødselsdata CPRNR End Sub
Selve moduler hedder CPR og efter punktummet følger funktionens navn. CPRNR er et felt i formularen. Indeholdet af dette felt sendes til modulet for at beregningen kan foretages. En funktion i et modul kan se således ud hvis du vil uddrage fødselsdata fra et CPRNR:
Public Function CPR6første(CPRNR) Dim Streng As String, Ctl As Control Streng = CPRNR Set Ctl = Forms![CPR].Controls![Fødselsdata] Ctl = Left(String:=Streng, length:=6) End Function
Det var en længere smøre om et grundlæggende emne i Access. Det modul jeg har skitseret har jeg i en lille database. Hvis du lægger din e-mail, kan jeg sende den til dig som en zip fil iaften (Skal på arbejde)
Bemærk at funktionen er erklæret Public, og kan således bruges overalt i databasen i modsætning til funktioner, der er erklæret Private. Bemærk ligeledes, at der i parantesen er anført navnet på variabelen. Det var jo den vi sendte fra formularen ved funktionskaldet. Her modtages den og beregningen af fødselsdata udføres.
"Hvornår bruger man det - er det noget man kan få brug for (privat)?"
Du kan sagtens lave en database uden moduler. Men moduler er så afgjort praktisk at anvende. Specielt hvis du som ovenfor skitseret skal anvende en beregning flere steder i din database.
Selve anvendelsen af moduler er som sådan ikke indviklet når du har forstået princippet i det. Det er mere kodningen, der kan være lidt langhåret.
Det er faktisk ikke så indviklet når du forstår princippet. Et eksempel ville hjælpe på det. Tak for point.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.