[VBA] [Access] Loop over reports

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • iscara
  • Registratie: Juli 2001
  • Niet online
Ik wil graag een loopje maken over reports, maar krijg het maar niet voor elkaar.

Het idee is het volgende: ik heb een report met allemaal subreports. Deze subreports hebben niets met elkaar te maken. Het enige dat ze wel gemeen hebben is dat er onderscheidt te maken is op 1 onderwerp.
Via een form en een listbox wil ik in de listbox een onderwerp selecteren en dan alle 5 de subreports hierop filteren en dan het totale rapport zien. En dit werkt als ik alles uitschrijf, maar ik wil het graag in een loopje gooien, zodat de code mooi overzichtelijk blijft. Maar dat krijg ik dus niet voor elkaar.

Ik heb het volgende (wat dus niet werkt):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub cmdSubmit_Click()
   
    Dim rapporten(1 To 5) As Variant, i As Long
    rapporten(1) = "rptafdeling1"
    rapporten(2) = "rptafdeling2"
    rapporten(3) = "rptafdeling3"
    rapporten(4) = "rptafdeling4"
    rapporten(5) = "rptafdeling5"
    
        For i = 1 To 5
            DoCmd.OpenReport rapporten(i), acViewDesign 'Open subReport
            Reports!rapporten(i).FilterOn = False 'Turn filter off
            DoCmd.Close acReport, "rapporten(i)", acSaveYes 'Save and close
        Next i
DoCmd.OpenReport "rptTotaal", acViewPreview 'Open Total report
End Sub


Deze code geeft een fout: Reports!rapporten(i).FilterOn = False, als ik rechte haken m rapporten(i) zet gaat het ook fout. De regel ervoor werkt wel (openen report).

Op mij werk gebruiken ze Office 2003.

[ Voor 4% gewijzigd door iscara op 10-08-2012 14:18 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Probeer eens Reports(rapporten(i)), nu probeer je het i-de element van een onbestaand rapport op te vragen... ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • iscara
  • Registratie: Juli 2001
  • Niet online
Helaas, dat werkt niet. Ik krijg dan ook de Runtime error 2541.

Acties:
  • 0 Henk 'm!

  • Cyrus-The-Virus
  • Registratie: Juni 2003
  • Laatst online: 22-10-2024
zo werkt het wel

code:
1
2
3
4
5
For i = 1 To 5
  DoCmd.OpenReport rapporten(i), acViewDesign 'Open subReport
  Reports(rapporten(i)).FilterOn = False 'Turn filter off
  DoCmd.Close acReport, rapporten(i), acSaveYes 'Save and close
Next i


in je close code heb je " tjes staan, die moeten ook weg, anders sluit hij ze niet :)

Acties:
  • 0 Henk 'm!

  • iscara
  • Registratie: Juli 2001
  • Niet online
Dat werkt! Hartelijk dank voor de snelle reacties pedorus en Cyrus-The-Virus!