Avatar billede candino Nybegynder
17. juli 2004 - 00:10 Der er 5 kommentarer og
1 løsning

Hvad er et modul

Jeg har flg. forklaring. men forstår den ikke.

"Et modul er en samling Visual Basic for Applications-erklæringer og -procedurer, der gemmes sammen som en enhed".
Avatar billede avlund Nybegynder
17. juli 2004 - 00:20 #1
Man kan principielt bare sige, at det er en mængde kode, som er samlet i en fil. Den her kode er så noget, der kan gå ind og indvirke i din database.
Avatar billede candino Nybegynder
17. juli 2004 - 02:51 #2
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)?
Avatar billede mugs Novice
17. juli 2004 - 06:30 #3
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.
Avatar billede mugs Novice
17. juli 2004 - 06:35 #4
"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.
Avatar billede candino Nybegynder
17. juli 2004 - 15:29 #5
Det bliver jeg vist nød til at læse mange gange, før jeg forstår det helt. Det er, kan jeg konstatere, meget mere indviklet end jeg havde frygtet.

Men tak for forklaringen. :-)
Avatar billede mugs Novice
17. juli 2004 - 20:02 #6
Det er faktisk ikke så indviklet når du forstår princippet. Et eksempel ville hjælpe på det. Tak for point.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester