Avatar billede it-manden.dk Nybegynder
16. januar 2005 - 18:34 Der er 11 kommentarer og
1 løsning

dlookup - hastighed

Har en formular der ud fra kundenummer laver dlookup på kundenavn.

Dette fungere perfekt, men kører ikke særlig hurtig. Er er en anden måde ? fx noget vba ol ?
Avatar billede mugs Novice
16. januar 2005 - 18:38 #1
DlookUp er langsom, om der er en anden mulighed er svært at sige ud fra de mildt sagt sparsomme oplysninger du giver.
Avatar billede it-manden.dk Nybegynder
16. januar 2005 - 18:43 #2
Har en tabel med opgaver, dato og status
har en anden tabel med kundnr, kundenavn, adr mv


I tabellen opgaver er autonr, kundenr, dato og status.

For at giver brugerne et bedre overblik vil jeg gerne hente kundenavn (slå det op) da det er mere sigende end kun et kundenummer.

PT bruger jeg dlookup til at hente kundenavn, men synes ikke at hastigheden er for god i takt med at mængden af data vokser
Avatar billede mugs Novice
16. januar 2005 - 18:55 #3
Det er ikke alene mængden af data der er af betydning men også databasens størrelse. Jeg antager, at du jævnligt komprimerer databasen evt. ved lukning.

Hvis situationen er, at du har en formular åben og ønsker at åbne en anden formular med f.eks. det samme kundenummer, kan du kode dig ud af det med en docmd.findrecord.

En anden mulighed er, at lave en underformular hvor kundenummer er det overordnede / underordnede felt således, at underformularen altid viser data tilhørende den post du ser i parentform.
16. januar 2005 - 19:36 #4
DLookup er lynhurtig (tilnærmelsesvis lige så hurtig, som hvis du programmere det selv vha recordsets) hvis blot man bruger det fra VBA. Jeg går ud fra, at du bare har lavet en tekstboks, hvor du har skrevet:
=Dlookup(".....

Dette er langsomt.

Læg i stedet denne linie kode på Form_Current og Form_AfterUpdate:

Me!DinTekstboks = Dlookup("[Dit felt]", "Din tabel", "Dit kriterie")

Så går det (næsten med garanti) hurtigt!
Avatar billede terry Ekspert
17. januar 2005 - 08:17 #5
and if it doesnt then try putting an index on the field
Avatar billede terry Ekspert
17. januar 2005 - 08:18 #6
(kundenummer)
17. januar 2005 - 08:35 #7
Jeg glemte at sige, at hvis din Dlookup er afhængig af et felt på formularen, skal du også lægge koden (Me!DinTekstboks = Dlookup("[Dit felt]", "Din tabel", "Dit kriterie")) på dette felts AfterUpdate.

En helt anden måde, er at bruge kombobokse. Ligesom postnr/by i dette ekspempel: http://www.makeiteasy.dk/eksempler/kalender.zip
Avatar billede jesperfjoelner Nybegynder
17. januar 2005 - 10:41 #8
Nogle har programmeret hurtigere versioner af dlookup, dmax m.m.
Se dette modul: http://www.mvps.org/access/modules/mdl0012.htm
17. januar 2005 - 12:27 #9
jeg lavede faktisk en test af de 2 metoder. Jeg lavede en form, hvor der blev skrevet til et felt vha Dlookup/tlookup på form_current. Jeg satte koden til at bladre gennem 10.000 poster og DLookup og TLookup var præcis lige hurtige....

Det er muligt, at TLookup har en fordel i andre sammenhænge, men ikke her.
Avatar billede jesperfjoelner Nybegynder
17. januar 2005 - 13:02 #10
Interessant, det er taget til efterretning :-) Men dlookup drager mig bekendt også fordel af indexes ligesom recordsets så den er ret hurtig.
Avatar billede it-manden.dk Nybegynder
17. januar 2005 - 23:22 #11
takker det har givet noget at arbejde med
18. januar 2005 - 08:16 #12
selv tak :o)
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