Avatar billede puppetmaster Nybegynder
21. september 2005 - 10:00 Der er 15 kommentarer og
1 løsning

VBA Common Functions

Når man nu har et dusin Access frontends, som alle benytter den samme kode til at skifte sprog på kontrollerne, kan man så ikke lægge denne kode i et lib, på en eller anden måde? (så man slipper for at skulle opdatere koden i alle databaser!)
Avatar billede terry Ekspert
21. september 2005 - 10:19 #1
The method I use is to have a database template which contains standard modules etc. Then use this as your starting point.
Avatar billede puppetmaster Nybegynder
21. september 2005 - 10:26 #2
Hmm...in my code I use this
Dim OS As New OperatingSystem

I have moved the module that holds the class OperatingSystem from my main database to a auxilary database and now reference that database from my main db. Shouldn't I be able to use the code above?
Avatar billede claesdamlund Nybegynder
21. september 2005 - 10:32 #3
Det er ret simpelt:

Opret din kodelib som en almindelig Access database hvor du lægger din kode/funktioner i Standard Modules.

I dine frontends laver du en reference til din Access Kodelib database.

Her efter kan du kalde alle dine funktioner fra Kodelib databasen i din frontend.

Husk - når du i VBA editoren skal danne referencen, skal du selvfølgelig vælge reference til mdb-filer fremfor ocx, dll m.m.
Avatar billede claesdamlund Nybegynder
21. september 2005 - 10:35 #4
PS: Når referencen til kodelib databasen er dannet skal du IKKE paste den relevante kode ind i frontend databasen, men kan direkte kalde dine sub- og funktionsprocedurer i frontenden. (Det vidste du sikkert godt - men ville lige nævne det :o)  )
Avatar billede puppetmaster Nybegynder
21. september 2005 - 10:38 #5
Hvis jeg ikke kan lave et klassemodul i .mda filen, som jeg vil reference fra min main database, så kan jeg jo ikke oprette objekter i main databasen! :(
Avatar billede claesdamlund Nybegynder
21. september 2005 - 10:47 #6
Ikke forstået???
Avatar billede claesdamlund Nybegynder
21. september 2005 - 10:58 #7
Du behøver ikke at lave det som klassemoduler i en mda fil. Du kan nøjes med almindelige procedurer i en mdb fil. Men hvis du vil wrappe din kode på en "pæn" måde kan du da godt lave klassemoduler (objekter). Dem kan du også benytte hvis du laver en reference til den database de ligger i.
Avatar billede puppetmaster Nybegynder
21. september 2005 - 11:06 #8
"hvis du vil wrappe din kode på en "pæn" måde kan du da godt lave klassemoduler (objekter). Dem kan du også benytte hvis du laver en reference til den database de ligger i."
Nej, det kan jeg ikke, claes (eller også gør jeg noget forkert)
Jeg har oprettet en ny database og importeret min .cls fil (OperatingSystem.cls).
Så har jeg i min anden database lavet en reference til den anden database (i VB editioren under Tools -> References)

Når jeg så afvikler min kode, Dim OS As New OperatingSystem, stopper databasen i Debug mode.
Avatar billede puppetmaster Nybegynder
21. september 2005 - 14:18 #9
Når jeg forsøger at compile main-databasen, får jeg en fejl:

Compile error:
"User-defined type not defined"
(sker i linien Dim OS As New OperatingSystem)

Jeg kan sagtens se klassen i det refererede VBA projekt fra den anden database i venstre side i VB editoren (Project - VBA Funktioner)
Avatar billede claesdamlund Nybegynder
21. september 2005 - 15:10 #10
Prøv at åbne Object-browseren, find din klasse og se om den er defineret som en privat klasse.
Avatar billede puppetmaster Nybegynder
30. september 2005 - 13:25 #11
endelig tilbage på opgaven.
Hvordan ser jeg lige at det er en privat (eller public) class?
Avatar billede puppetmaster Nybegynder
30. september 2005 - 13:27 #12
Jeg har fundet mit Library, min klasse og kan se en masse Members......
Avatar billede puppetmaster Nybegynder
30. september 2005 - 13:42 #13
Nu får jeg fejlen:
A module is not a valid type
Avatar billede puppetmaster Nybegynder
30. september 2005 - 13:54 #14
Hvordan dim'er man et nyt objekt på baggrund af en referenced class?
Dim OS As New OperatingSystem
virker ikke...
Avatar billede puppetmaster Nybegynder
10. oktober 2005 - 10:02 #15
Så virker det, som ud af den blå luft. Beklager den sene accept
Avatar billede terry Ekspert
10. oktober 2005 - 10:20 #16
hi puppetmaster, and thanks for the proints, but were they intended for me, or should someone else have them?
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