Avatar billede dougheffernan Nybegynder
13. december 2006 - 13:34 Der er 9 kommentarer og
1 løsning

Speed up rapport generering

På en formular vælger brugeren :
Område (10 muligheder)
Hold (3 muligheder)
Startdato
Slutdato

Programmet genererer en rapport som opdeles i sektioner:

Område1_Hoved
  Hold1
  Hold2
  Hold3
Område1_Fod (Total)

Område2_Hoved
  Hold1
  Hold2
  Hold3
Område2_Fod (Total)

Område3_Hoved
  Hold1
  Hold2
  Hold3
Område3_Fod (Total)

og så fremdeles.
Problemet er at hver af sektionerne kører en forespørgsel som tager ca. 1 min.
og når rapporten så er i Vis udskrift tilstand, tager det forever and ever at skifte fra side 1 til side 2 (4-5 min) og en udskrift tager ligeså lang tid som at generere rapporten!! :(
Avatar billede dougheffernan Nybegynder
13. december 2006 - 14:58 #1
Måske skal koden bare overføre til Excel i stedet, så undgår jeg i hvert fald de ekstra minutter på at generer side 2, 3, 4 osv. samt ved udskrift...
Avatar billede fdata Forsker
13. december 2006 - 18:56 #2
... men hvorfor går det så langsomt? Har du ekstemt mange data? Eller et sløvt net? Eller laver du mange DLookUp'er? Bruger du Access 2000?
Du bør nok starte med at finde årsagen, for det er da helt urealistisk langsomt.
Avatar billede dougheffernan Nybegynder
15. december 2006 - 11:10 #3
Bruger Access 2003. Ingen DLookUp'er overhovedet (al data-beregning sker i VBA koden).
Ja, en af tabellerne som gennemløbes HVER GANG er på ca. 360.000 poster (ca. 1500 medarbejdere på arbejde 250 dage på et år)

Det jeg IKKE forstår er:
Hvis vi siger brugeren har valgt 5 områder, 3 hold pr. område, vil rapporten generere 3 sider, 2 områder på de første 2 sider, 1 på sidste side. Men HVORFOR, når nu Access looper gennem ALLE områder, før side 1 vises, skal Access så loope gennem ALLE områder IGEN for at vise side 2!!! Og hvorfor %"¤%#% skal Access gøre det HELE IGEN når der klikkes på Filer -> Udskriv?! :(
Avatar billede dougheffernan Nybegynder
15. december 2006 - 11:13 #4
Og hvad angår nettet, så er det på et LAN overførslen sker, 100 Mbit netkort, og kortet på serveren, 1 Gbit, laver næsten ikke noget.
Glemte at sige at der er tale om linked tables - DB5 filer, på tilsammen ca. 100 MB.
Avatar billede fdata Forsker
16. december 2006 - 15:41 #5
Hm.
Umiddelbart ligner din rapport jo et klasseeksempel med 2 grupperingsniveauer.
Hvad sker der i koden, som kunne sløve rapporten? En ting er jo, hvordan du opdeler, en anden er hvordan indholdet beregnes.
Når du siger at "en af tabellerne som gennemløbes ..." skal det så tages bogstaveligt? Løber du tabellen igennem i koden? Sekventielt?
360.000 poster, som er indekseret korrekt, burde ikke volde problemer, hvis vi forudsætter at de hentes direkte via en forespørgsel.
Avatar billede dougheffernan Nybegynder
19. januar 2007 - 12:09 #6
Ja, det løbes igennem sekventielt i koden, der foretages en del beregninger/summeringer på felter ved gennemløbene. Vi har talt om at flytte dataene fra de sammenkædede Symphony (.dbf) filer til SQL Server, så får vi se om det hjælper.
Avatar billede fdata Forsker
19. januar 2007 - 12:34 #7
Det gør det  ;o)
Avatar billede dougheffernan Nybegynder
10. april 2007 - 12:05 #8
Det gjorde det! En rapport som før tog ca. 5 min, tager nu ca. 30 sek! Læg et svar, fdata.
Avatar billede fdata Forsker
10. april 2007 - 17:02 #9
Et svar
Avatar billede fdata Forsker
26. april 2007 - 09:00 #10
Takker for point  ;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