Avatar billede madiedk Nybegynder
08. marts 2008 - 18:25 Der er 6 kommentarer og
1 løsning

opbygning af program

Hej

jeg skal lave et progam i VBA, og er lidt i tvivl om hvordan jeg skal designe det, altså mht. klasser og moduler

progammet skal laves med en userform og der bliver hentet data ind fra en access database.

databasen indeholder ca 200 personer der skal laves nogle beregning på. hver person har 8-18 seperate beregninger.
databasen indeholder i en anden tabel de tal som beregninger skal laves på. og hver person har så nogle beregningsID'er. Selve beregninger laves i VBA koden, alt efter hvilke beregningID beregningen har i databasen.
jeg er ny til objektorienter programmeting, men har lavet en del procedure programmering i VBA men læst en masse om java objektorienter. så kender godt konceptet.

Jeg har faktisk allerede lavet programmet i 2 moduler med en masse procedurer, men har lige fundet ud af at man også kan lave klasser i VBA og har tænkt på om det ikke ville være bedre?

her kommer problemet/spørgsmålet så:

Jeg kan kun komme på en klasse nemlig PERSON, som måske så skal indeholde alle bereginger også, eller skulle de måske være i et modul?

Håber det er nogle der vil komme med et par forslag..
Avatar billede word-hajen Nybegynder
08. marts 2008 - 23:58 #1
Jeg synes, at det lyder som en rigtig god idé med en "personklasse" inkl. beregningerne, da de er afhængige af beregnings-ID'er for hver enkelt person. Men det er lidt svært at vide, om det evt. skal splittes på anden vis uden at kende projektet/sammenhængen mellem data/egenskaber osv.
Avatar billede madiedk Nybegynder
09. marts 2008 - 00:44 #2
ja det klart. Nogle af personerne har samme omkostningsID'er for nogle af deres beregninger (dvs. det er de samme formeler der skal bruges, bare med forskellige tal) og andre har unikke omkostnigngsID'er (dvs. specielle formler) Derfor har jeg tænkt på at det måske ikke var så smart at have en kæmpe klasse med en masse formler hvor det måske kun er ca halvdelen der skal bruges pr. person i gennemsnit. men ved ikke lige hvordan det ellers skal opbygges.

Måske en "personklasse" med de attributer der er gældende for alle personer(navn, adresse, et array med max 18 pladser til beregningsresultaterne, mm.) og en sql klasse med alle forspørgelserne og en userformen med events. og så er det bare hvor beregninger skal laves?
Avatar billede word-hajen Nybegynder
09. marts 2008 - 09:34 #3
Jeg kan ikke umiddelbart se problemet i at have alle beregninger samlet i én klasse, da det er dine beregnings-ID'er, der styrer hvilke beregninger, der skal laves. Men igen - det er svært at "se" den rigtige struktur, når man ikke kender projektet.

Har du alle data til rådighed i databasen, som skal bruges til beregningerne? Hvis du har, er det måske bedre at foretage beregninger mv. deri.
Avatar billede madiedk Nybegynder
09. marts 2008 - 11:50 #4
okay, det er også det letteste at have dem samlet i en klasse, så det passer mig fint, ja alle data er samlet i databasen, men selve formlerne skriver jeg i vba koden, og de er ret avanceret nogle af dem, så kan ikke lige se hvordan jeg skulle kunne lave det i databasen, men lytter gerne?
Avatar billede word-hajen Nybegynder
09. marts 2008 - 14:28 #5
Hvis du har det bedst med at kode dine beregninger, skal du gøre det, men du kan lave "multiarder" af beregninger i en forespørgsel i Access, hvor du jo også har direkte adgang til dine data.
Avatar billede madiedk Nybegynder
05. maj 2008 - 12:40 #6
smid det som et svar wordh-haj. og tak for dit input
Avatar billede word-hajen Nybegynder
06. maj 2008 - 07:09 #7
Velbekomme (tag selv de fleste point retur; jeg kom bare med lidt input).
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