gefilterd rapport afdrukken

Status
Niet open voor verdere reacties.

antonie_beens

Gebruiker
Lid geworden
16 jan 2006
Berichten
15
Hallo,

Voor mijn werk ben ik bezig met een acces databasetje voor het registeren van verzonden pakketten, en de aanmaak van pakbonnen.

In het formulier 'new package' vul ik alle benodigde gegevens in, waarna ik een pakbon wil uitdraaien als ik op het knopje afdrukken in het formulier klik.

Het kan zijn dat er een twee of meer onderdelen in een pakketje zitten, dus klik ik op het knopje nieuwe record, wis de onderste regels, typ de nieuwe gegevens in, en alle gegevens worden weer opgeslagen.

Vervolgens ga ik naar het rapport Delivery note, laat het rapport dan filteren op projectnummer, waarna ik alle gegevens krijg die ik op dat projectnummer versturen wil, en print ik het rapport.

Dit wil ik automatiseren door dat ene knopje 'afdrukken' op het formulier. Ook wil ik meerdere onderdelen tegelijk kunnen invoeren in dat formulier.

Any comments?
 
Om met het formulier te beginnen: ik weet niet of je al werkt met een hoofd- en een subformulier, maar dat zou ik zeker doen. Hierbij vul je in het hoofdformulier de eenmalige gegevens in, en het subformulier gebruik je voor de verschillende onderdelen uit het pakket. Het subformulier maak je van het type Doorlopend formulier, zodat je netjes regels onder elkaar kunt toevoegen, zonder steeds een nieuw record te hoeven aanmaken op het formulier. (je maakt uiteraard wel steeds nieuwe records als je een regel toevoegt...)

Voor het rapport kun je een knop maken die het rapport afdrukt of op het scherm weergeeft, wat je handiger vindt. Dit kun je dan filteren op het huidige formulierrecord, door in de criteriumregel van de onderliggende query (als je die hebt) te verwijzen naar het ID van het formulierrecord.
Eventueel kun je ook met VBA nog een filtering aan het rapport toewijzen, dan hou je het rapport 'schoon'
 
Maar hoe maak ik het filter dan gelijk met het project wat ik het laatst op het formulier heb ingevuld?

Ik kan helaas het bestand hier niet posten, het is blijkbaar te groot...
 
Laatst bewerkt:
Je kunt het rapport op deze manier filteren:

Code:
    stDocName = "RapportNaam"
    sProject = Me.txtProjectNummer.Value
    sFilter = "ProjectNummer=" & sProject

    DoCmd.Minimize                 ' Als je het formulier wilt minimaliseren.
    DoCmd.OpenReport stDocName, acPreview, , sFilter

Een andere optie is om de rapportbron aan te passen, maar die code is iets ingewikkelder. Kijk eerst maar eens of dit werkt...
 
Dank je wel voor de genomen moeite.

Hij heeft alleen moeite met de regel

Code:
sProject = Me.txtOrderFormula.Value

btw: OrderFormula is de naam van het veld waarin ik het ordernummer doorgeef.

Heeft iemand een idee:?
 
Laatst bewerkt:
Wat versta je onder 'moeite' ?
Het kan zijn, dat je een tekstveld gebruikt voor je veld OrderFormula. In dat geval moet je deze string gebruiken:

sProject = Me.txtOrderFormula.Value
sFilter = '"ProjectNummer=" & sProject & "'"
 
Hij geeft bij mij altijd de foutmelding:

kan de methode of het gegevenslid niet vinden.

Wat is er dan mis?
 
Kijk eens in het VBA scherm of hij ergens stopt als je <Foutopsporing>, <db compileren> uitvoert. En of er geen foutieve bibliotheken zijn geladen bij <Extra>, <Verwijzingen>? Eventueel een extra verwijzing naar <Microsoft Office Objects Library #> toevoegen, of Microsoft Word Objects Library #> als je een word merge doet in het project, of een Outlook library als er gemaild wordt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan