rapport preview is anders dan uitprint

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.682
beste allemaal

Als ik een rapport via volgend commando open:

Code:
 DoCmd.OpenReport "Fa_brief", acViewPreview, , , , Forms!Fa_Pathologie_aanvraag_nieuw!Tekst

dan wordt het rapport perfect getoond

wil ik het uitprinten:
Code:
 DoCmd.OpenReport "Fa_brief", , , , , Forms!Fa_Pathologie_aanvraag_nieuw!Tekst

dan worden alle niet-afhankelijke velden op het rapport leeg gemaakt
Als ik in het OnLoad event van het rapport een codestop inlas, dan stopt het programma als ik in preview-modus ben maar niet in de uitprint-modus.
Blijkbaar wordt hier het OnLoad-event niet gepasseerd

iemand enig idee?

Bedankt
JP
 
Je geeft zelf het antwoord. Dus daar kunnen we weinig aan toevoegen. Bij een Preview wordt het rapport daadwerkelijk opgebouwd met de parameters, een directe printopdracht stuurt het rapport as-is naar de printer. Daarom (en dat heb ik je al vaker gezegd) is het veel beter om van een rapport de bron (de query dus) aan te passen met een QueryDef, dan heb je nergens last van. Zoek eben in dit forum naar QueryDefs en je vindt talloze voorbeelden.
Maar wat je dus doet is dit: je koppelt het rapport aan een vaste query, en m.b.v. een QueryDef verander je de SQL van die query. De query krijgt dus altijd ‘wisselende vaste’ data, en het rapport blijft altijd werken.
 
In het rapport zitten data uit een querry maar veel meer data van forms die op dat moment open staan dus.......?
 
Ik herhaal mijn antwoord :). Laat ik eens een simpel voorbeeldje geven, wellicht dat je dan het licht gaat zien en bereid bent je huidige werkwijze bij het groot vuil te zetten.

Je begint met het declareren van de QueryDef.
PHP:
Dim qTmp As QueryDef

Vervolgens wijs je de querydef toe aan je query. Laten we zeggen dat je een vaste query hebt voor al je rapporten die 'qTempRapport' heet.
PHP:
    On Error GoTo Hell
    Set qTmp = CurrentDb.QueryDefs("qTempRapport")

Ik bouw vaak een foutafhandeling in voor het geval de definitie niet bestaat. Die staat onderin de procedure.
PHP:
Hell:
    Set qTmp = CurrentDb.CreateQueryDef("qTempRapport")
    Resume Next

Zo ben je er zeker van dat de query altijd bestaat. Wel zo handig.
Vervolgens bouw je de SQL op voor het rapport. Dus een query met alle voorwaarden en filters.

PHP:
        strSQL = "SELECT * FROM [Hier jouw tabel] WHERE [Hier jouw filterveld] = """ & Me.Filterveld & """"
        qTmp.SQL = strSQL
        DoCmd.OpenReport "Fa_brief", acViewPreview
        Of als je het rapport wilt afdrukken, rechtstreeks.
        DoCmd.OpenReport "Fa_brief", acViewPreview

En dit werkt dus altijd.
 
Ik kom er niet uit, ik krijg het niet opgelost...
ik maakte een "light-versie" van het programmaonderdeel in de hoop...
Snap niet hoe je dingen die op een form komen, in die query zou moeten steken

Klik op "zoek_voorschrift"
Kies "Bosman Marc"
Kies voor de eerst lijn in de keuzelijst ernaast
een formulier opent zich
kies voor "administratie"
kies voor Fa
maak uit de pathologie-lijst een keuze
klik op "Ga verder"
dan kan je kiezen tussen preview en printen

de preview werkt perfect, da print dus niet
Beide nemen de keuze die je maakte uit de pathologie-lijst mee, en hier gaat het al fout
het onLoad event (van het rapport) loopt niet in de print-keuze, wel in de preview-keuze

Enfin... krijg er een vierkant hoofd van

Alvast bedankt
JP
 

Bijlagen

  • Fa_brief.zip
    130,9 KB · Weergaven: 29
het onLoad event (van het rapport) loopt niet in de print-keuze, wel in de preview-keuze
Dat klopt. Dat moet je dus ook niet doen! Maar ik zal er wel even naar kijken als ik vandaag tijd heb. (Niet veel overigens ;) )
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan