Toon posts:

[Access2K3]Rapport aanroepen met OpenReport + where wil niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een heel vaag probleem op het moment, ik heb een drietal rapportjes die ik wil aanroepen met het volgende stukje code (elk wel hun eigen button & stukje code, maar de code verschilt slechts marginaal):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Passagierrapport_Click()
On Error GoTo Err_Passagierrapport_Click

    Dim stDocName As String

    stDocName = "raportpassagiers"
    DoCmd.OpenReport stDocName, acPreview, , "Vlucht=" & Me.vluchtnr

Exit_Passagierrapport_Click:
    Exit Sub

Err_Passagierrapport_Click:
    MsgBox Err.Description
    Resume Exit_Passagierrapport_Click
    
End Sub


Dit is voor het eerste rapportje, en het werkt perfect. Maar het tweede rapport wil niet, de query:

code:
1
2
3
4
SELECT vlucht.vluchtnummer, COUNT(passagier.passagiernummer) AS passagiers, SUM(object.gewicht) AS gewicht
FROM (vlucht INNER JOIN passagier ON passagier.vlucht=vlucht.vluchtnummer) 
INNER JOIN [object] ON object.passagier=passagier.passagiernummer
GROUP BY vlucht.vluchtnummer;


Query werkt, en het rapport ook. Maar nu wil ik het rapport aanroepen met het volgende stukje code:

code:
1
2
stDocName = "rapport2"
   DoCmd.OpenReport stDocName, acPreview, , "YEAR(Vlucht.vertrektijdstip)=" & Me.jaartal1


Het formuliertje:

Afbeeldingslocatie: http://neographikal.nl.eu.org/got/formuliertje.jpg

Afbeeldingslocatie: http://neographikal.nl.eu.org/got/foutmelding.jpg

Net of de kolom niet bestaat... Wat ik ook doe, ik kom niet om die foutmelding heen. Ik heb het gecontroleerd op spelfouten, maar ik kan niks vinden :) Als ik het stukje code direct in de query zet gaat het wel weer goed. Maar wanneer ik heb rapport op deze manier probeer aan te roepen krijg ik dus de bovenstaande foutmelding. Als iemand een goed idee heeft, heel graag

[ Voor 13% gewijzigd door Verwijderd op 02-06-2005 20:39 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

De where-voorwaarde die je meegeeft bij een docmd.openreport wordt toegepast op de recordset die het resultaat is van de onderliggende query. En daar komt vluchttijdstip niet in voor. In je query zelf dus een where of een havingvoorwaarde opnemen:
code:
1
where year(tijdstip)=forms!rapport2.jaartal

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Niesje schreef op donderdag 02 juni 2005 @ 21:33:
De where-voorwaarde die je meegeeft bij een docmd.openreport wordt toegepast op de recordset die het resultaat is van de onderliggende query. En daar komt vluchttijdstip niet in voor. In je query zelf dus een where of een havingvoorwaarde opnemen:
code:
1
where year(tijdstip)=forms!rapport2.jaartal
Kijk dat verklaart de boel, driedubbel dank :) Ik wist niet dat dat ook in een query zelf kon :)