Raporten verzamelen en ineen keer afdrukken.

Status
Niet open voor verdere reacties.

Risk

Gebruiker
Lid geworden
5 jul 2010
Berichten
275
Forum,

Min database bevat een groot aantal rapporten. Een aantal daarvan bevatten de up to date management informatie die ik periodiek (stel op vrijdag voor de MT vergadering op maandag) wil laten uitprinten.

Het zou mooi zijn als dat een vast "setje" kon worden vooraf ingegeven en met een printopdracht worden verwerkt. Zo voorkom je dat er een item wordt vergeten.

Een formulier met voor ingestelde radiobuttons op ja zou een optie zijn denk ik.

Hoe verzamel ik de printopdrachten zodat deze soepel worden uitgewerkt en de printer niet op hol slaat? Mijn Access bible in side out geeft geen oplossing. Tenminste ik heb deze niet gevonden.

Iemand ervaring hiermee?

Ik hoor graag.

Risk
 
Je hoeft daar geen formulier voor te maken; een functie in een module is op zich al genoeg. De functie kun je dan met een macro starten. In die functie laat je alle opdrachten achter elkaar uitvoeren. De printer slaat daar doorgaans niet van op hol, want de printopdrachten komen in een spooler terecht. Dus dat regelt de printer wel.
Die functie kun je, als je alle opdrachten op een vast moment wilt laten afdrukken, nog wel in een aparte db zetten die je laat starten met een Scheduled Task. Dan weet je zeker dat de taak op het door jou bepaalde moment wordt uitgevoerd.
 
Michel,

Ga mij eens inlezen in de fabricage van modules.

Wordt even een lange zit en uitdaging.

Risk
 
Een module hoeft niet veel meer te zijn dan een click procedure. Je begint Met Public Function() i.p.v. Private Sub Knop_Click(). Er zit uiteraard wel wat meer achter, maar om een aantal afdruk opdrachten achter elkaar te zetten is dat in beginsel wel een uitgangspunt. Die opdrachten zijn verder identiek, dus dat is makkelijk na te maken: maak een macro, en kopieer de opdracht regel! In de macro kun je procedures aanroepen, en daarmee start je dan het proces.
Ik gebruik zelf een vrij uitgebreide functie om een query naar een aantal Excel bestanden te kopieëren; daarbij worden de bestand stuk voor stuk geopend, en de gegevens verwijderd en vervangen. Daarnaast wordt elke actie gelogd in een historie tabel. En de hele procedure wordt met één macro aangeroepen. Kortom: met een beetje voorbereiding is het niet zo heel lastig!
 
Ons dossier heeft een knop waarmee er 7 rapporten van een bewoner direct na elkaar naar de printer worden gestuurd bv. (zit ook eerst controle op de keuzelijst of ze een bewoner hebben geselecteerd)
Code:
Private Sub CmbAlle_Rapporten_Click()
On Error GoTo Err_CmbAlle_Rapporten_Click

    Dim stDocName As String
            'check of er een bewoner is geslecteerd:
If (IsNull(Me.cmbBewoner.Value)) Then
    MsgBox "Selecteer eerst een bewoner in de keuzelijst hiernaast"
    Me.cmbBewoner.SetFocus
    Exit Sub
End If
    stDocName = "rpt_PersoonlijkeSteekaart"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "rpt_FamilieSteekkaart"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "Rpt_MedischDossier"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "Rpt_MultidisciplinairDossier"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "Rpt_FamilieSteekkaartVPDos"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "rpt_Borgstelling"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "rpt_Palliatieve_Kwaliteitskaart_naam"
    DoCmd.OpenReport stDocName, acNormal
Exit_CmbAlle_Rapporten_Click:
    Exit Sub

Err_CmbAlle_Rapporten_Click:
    MsgBox Err.Description
    Resume Exit_CmbAlle_Rapporten_Click
End Sub

Misschien ben je hier iets mee?
 
Johan,

Dank ik ga eens proberen. Als ik het goed begrijp (ben niet zo goed in codes) dan heb je een keuzelijst gemaakt en als je daar iemand uit kiest dan komen de rapporten die berekking hebben op de cliënt uit de printer rollen?

Wat ik voorsta is een knop print managementinfo en dan komen de vooraf geselecteerde rapportages te voorschijn op de printer. Is nog even puzzelen.

resultaat volgt.

Nogmaals dank voor je idee en hulp.

Risk
 
De code van Johan is grotendeels met de wizard gemaakt; iets dat ik je een aantal dagen geleden ook al aanraadde ;) Met de wizard maak je één opdracht die wordt uitgevoerd. Zoals je in zijn voorbeeld ziet, heeft hij de afdrukcode daarna een aantal keer gekopieerd en de naam van het rapport vervangen. Voordeel hiervan: alle rapporten worden altijd afgedrukt. Nadeel: je kunt niet varieëren mocht dat nodig zijn zonder in de code te duiken. Wil je dat wel kunnen, dan zou ik met een Groepsvak werken met selectievakjes (geen optierondjes, want dan kun je er maar één kiezen). Die kun je standaard op Aan of Uit zetten, zodat je een basisselectie hebt. Bij het afdrukken via de knop moet je dan wel extra code gebruiken die kijkt of een optie geselecteerd is of niet, want het afdrukken van de rapporten is dan uiteraard afhankelijk van de selectie.
De keuzelijst die Johan gebruikt heb je (uit je vraag te lezen) niet nodig. Ik vermoed dat Johan het criterium al in zijn rapporten heeft ingebouwd, want hij geeft geen filter mee bij de rapporten. (Zou bij afdrukken ook niet werken trouwens).
 
Michel,

ja ik gebruik pop-up formuliertjes waar de gebruiker andere dingen kan invullen of selecteren om meer keuzes en combinaties te maken voor andere rapporten, die 7 rapporten zijn standaard rapporten die gemaakt moeten worden in een vaste lay-out bij een nieuwe opname en de selectie gebeurt inderdaad reeds in de sql string van iedere rapport op basis van een nummer uit die keuzelijst.
 
JohanRVT

Dank voor je input, heb jij een stukje als voorbeeld. Mijn bedoeling is dat er vanuit de rapporten een selectie gemaakt kan worden welke aan een directie kunnen worden toegestuurd. Jou oplossing sluit aan op mijn wens.

Risk
 
JohanRVT,

Zou je nog een voorbeeldje willen posten?

Met dank
Risk
 
Je wordt een stuk sneller geholpen vermoed ik als je zelf een voorbeeldje maakt met de formulieren/rapporten die je zelf hebt gemaakt; dan krijg je ook veel gerichter hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan