Avatar billede phi-del Nybegynder
22. marts 2005 - 10:34 Der er 18 kommentarer og
1 løsning

class module en god ide ?

Hej til alle.

Jeg har en access database hvor man igennem en hovedform kan komme til en masse underforme.
i disse underforme skrives der en masse ting igen.
i hovedformen kan man printe ting ud og den finder selv ud af hvilke tabeller den skal printe ud.

Efterhånden syndes jeg at koden er ved at blive uoverskuellige, og derfor tænkt på om jeg kan dele min kode ind i "Class module"
således at enhver tabel får sin egen "Class Module" .
Dette vil medfører mere overskuelligehed, men hvordan dette vil virke på  Perfomancen ved jeg ikke  hvad syndes i ?

og hvordan skal jeg til at referere til mine procedure som jeg tidligere bare skrev navnet og procuderen blev kørt ?

er det en god ide ?
Avatar billede phi-del Nybegynder
22. marts 2005 - 11:37 #1
ok! jeg vender den om, Hvordan kan jeg kalde en  procedure som ligger i en class module, -- fra en kode som ligger i en form.--
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:10 #2
Så skal du lave en objekt veraibel først. Dvs. hvis din klasse hedder tblClass så laver du en variabel med erklæringen

dim varCls as tblClass
set varCls = tblClass

herefter kan du ved at bruge denne objekt variabel kalde procedurer, og funktioner der ligger i klassen. Ligger der eksempelvis en procedure der hedder hentData() så kaldes den ved

tblClass.hentData

Men jeg er måske lidt usikker på om jeg synes det er en god ide i dit tilfælde at bruge class... måske alm modules kan bruges i stedet.

Jeg ville personligt kun bruge klasser, hvis der er tilstande der skal gemmes.

VH CK
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:18 #3
Jeg har valgt at lave en alm. modul, fra hovedformen kan jeg godt kaldte dette modul.
men problemmet er nu blevet at den nye modul skal bruge et par procedure fra den hovedformen.
jeg har omdøb procedurene til public istedet for public for at kunne tilgå dem.
jeg kalder proceduren ved at skrive "Hent_Bil" som proceduren hedder i hovedformen.
men den melder fejl. ??

ps. forskellen mellem privat og public er det ikke bare om proceduren er tilgænglige eller ej, den gøre vel ikke min program tunger ?
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:22 #4
Det er korrekt at forskellen mellem private og public, blot er om de er tilgængelige udenfor det kodemodul hvor de er skrevet. Der burde ikke være performance forskel.

Hvad fejl melder den?

VH CK
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:25 #5
hvordan kalder man en sub ?
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:25 #6
ved at skrive navnet på den
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:26 #7
sub og function not defined !
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:27 #8
jeg kalder proceduren ved at skrive "Hent_Bil" 
proceduren findes i en anden form og den
melder: sub og function not defined !
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:30 #9
så tag proceduren og flyt den over i et alm. kode modul. og husk public foran.

VH CK
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:37 #10
hvordan ?
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:38 #11
opret et kode modul, og kopier sub definitionen derover
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:39 #12
Public Sub test ()
Hent_Bil
end Sub

denne virker ikke
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:40 #13
skal jeg oprette en ny modul ?
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:40 #14
det er proceduren hent_bill du skal kopiere over i kode modulet

VH CK
Avatar billede kedde65 Praktikant
22. marts 2005 - 12:42 #15
Ja opret et nyt kode modul (ikke class modul)

VH CK
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:42 #16
kaldet sker fra en modul til noget som findes i en anden unit, som har disse procedure i sig
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:43 #17
er gjort  men det virker stadige ikke ? og melder samme fejl
Avatar billede phi-del Nybegynder
22. marts 2005 - 12:46 #18
ok.. har nu gjort som du har fortalt .
Jeg har taget det kode som jeg skal bruge fra hovedformen og smidt i en særskilt modul, og nu virker det hele, når den er i en særskilt form .
så er spørgesmålet hvorfor virker det ??????  : ))
Avatar billede kedde65 Praktikant
22. marts 2005 - 13:39 #19
Fordi hvis procedurer skal være "globale" for flere formularer så skal de være i et kodemodul.

VH CK
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
Kurser inden for grundlæggende programmering

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