1 pdf per eigenaar (of relatie nr) printen

Status
Niet open voor verdere reacties.

john614

Gebruiker
Lid geworden
20 aug 2012
Berichten
32
Hallo,
Ik heb een rapport gemaakt van ongeveer 300 records. Deze wil ik gaan printen als pdf maar dan per eigenaar(record). Nu worden alles in 1 document geprint en dat wil ik dus niet.Ik wil ook niet alle records afzonderlijk selecteren) Is het mogelijk om per eigenaar(of nummer) een pdf te printen i.pv. in 1 document.
Alvast bedankt.
Groet,
John
 
dat kan wel maar dan moet je per eigenaar een pdf printen. Dus meerdere print opdrachten.
 
Dat kan, mits je rapport steeds elke keer één record laat zien. Ik zou dus een loop maken op basis van een recordset die steeds één record filtert en de query van het rapport daar op aanpast (QueryDefs collectie). Je rapport (en de onderliggende query) verandert dan niet, je kunt de naam van de klant in de exportnaam gebruiken en je krijgt dus losse pdfjes.
 
Hoi Michel,
Dat is helemaal wat ik zoek. Alleen heb ik daar geen ervaring in. Hoe doe ik dat precies.
Groet,
John
 
Maak een voorbeeldje, want het is best ingewikkelde code die je nodig hebt. En dan kunnen we beter je eigen situatie bekijken.
 
Hoi Michel,
Hierbij de database (heb alleen een paar records laten staan i.v.m. privacy). Ik kan dus wel per record printen maar het zijn er gewoon teveel. RNr1 is het nummer per eigenaar waarvan een print moet worden gemaakt.
Ik hoop dat het je lukt en ik leer er veel van. Alvast bedankt voor de moeite.
Groet,
John
 

Bijlagen

  • LMWleeg.zip
    46,6 KB · Weergaven: 48
Hier de versie zoals ik 'm nu heb. Hij gebruikt je query die steeds wordt aangepast, zodat het rapport altijd maar één record bevat. Daar kun je dan een pdf van maken.
 

Bijlagen

  • LMWleeg v1.zip
    67,2 KB · Weergaven: 80
Hoi Michel,
Heel erg bedankt, maar ik heb alleen versie 2003 tot mijn beschikking:(.
John
 
Bij deze :)
 

Bijlagen

  • LMWleeg 2k3.zip
    107,2 KB · Weergaven: 51
Hoi Michel,
mijn bedoeling is eigenlijk dat ik in het formulier (SelectieMenu) op een knop druk en dat er dan per R1nr een pdf gemaakt wordt, dus niet alle R1nrs in 1 pdf en ook niet dat ik per r1nr een pdf moet maken en opslaan.
Ik zie zo niet hoe ik dat nu in de database zou moeten doen en of dat ook kan.
Groet,
John
 
De basis heb je :). Je kunt de gebeurtenis uitbreiden met een gebeurtenis die de pdf aanmaakt. Jammer genoeg voor jou heb je dan een upgrade nodig naar (bij voorkeur) 2010, want dan kun je volstaan met één extra regel:
Code:
    DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, CurrentProject.Path & "\" & Me.Keuzelijst.Value & ".pdf"
Access 2k3 heeft dat echter niet, en dan moet je je toevlucht nemen tot de (knap gemaakte) code Stephen Leban. Of, zoals ik zou doen, het rapport openen in View en dan zelf naar een pdf printer sturen. De kwaliteit van de pdfjs van Leban vallen namelijk een beetje tegen als je ze vergelijkt met zelf naar de printer sturen.
 
Hoi Michel,
Ik ben ermee bezig geweest maar het is me niet gelukt. Jouw voorbeeld ziet er goed uit is bijna dat wat ik zoek alleen dan met 1 druk op de knop. Zou jij me willen helpen om dit te maken. Ben je nu al heel dankbaar maar het zou helemaal perfekt zijn met een druk op de knop.
Groet,
John
 
Wat zou je precies willen hebben? Want de procedure van Lebans implementeren is een beetje lastig. En, in mijn optiek, zou je die eigenlijk niet moeten gebruiken als je wilt dat de pdf-jes er goed uit zien. En de mooiste oplossing is dus in jouw geval denk ik een pdf printer installeren, je rapport openen in Preview en dan handmatig naar de pdf printer sturen. Dat is lastig te programmeren. En voor de gebruiker een hele simpele handeling; een die ze ook regelmatig doen als ze in Word een afdruk maken. En daar hoor je toch ook niemand over klagen dat ze daar zoveel handelingen voor uit moeten voeren :).
 
Hoi Michel,
Ik heb acces 2013 op mijn laptop. Het zou helemaal perfect zijn als via het laatste voorbeeld (ik heb deze al gebruikt maar bij ong 500 records is het veel werk om dat per record te doen) om dan via een druk op de knop alle pdfjes automatisch gemaakt worden.
Ik ben er nu bijna anderhalf uur mee bezig geweest:eek:.
Alvast bedankt,
Groet,
John
 
De techniek is dan zoals ik hem eerder heb beschreven. Je maakt een loop die door de Recordset loopt die je wilt exporteren, en van elk record print je dan een pdf. Je informatie is nog niet helemaal compleet, want je hebt nog niet gezegd hoe die export er dan uit moet zien. Een rapport heeft een vaste naam bijvoorbeeld. Als je per klant een eigen rapportnaam wilt, moet je die ook meenemen in de procedure.
 
Ik heb niet alle reacties van OctaFish gelezen en die zijn vast behulpzamer dan die van mij. Maar ik gebruik onderstaande code om eerst pdf's op te slaan en deze vervolgens te mailen. Moet er wel bij zeggen dat de mailtjes vervolgens handmatig moeten worden verzonden.
Code:
Private Sub Knop28_Click()

'**pdfs maken

Dim stDocNamelocatie As String
    Dim BestandsnaamLocatie As String
    
With CurrentDb.OpenRecordset("Actievelocaties")
    .MoveFirst
    
    Do While Not .EOF
    Instelling = !Instelling
   MsgBox Instelling
    stDocNamelocatie = "bijlage9"
   BestandsnaamLocatie = "c:\pad\locatie - " & Instelling & ".pdf"
   
   DoCmd.OpenReport stDocNamelocatie, acViewPreview, "instelling ='" & Instelling & "'"
   DoCmd.OutputTo acOutputReport, stDocNamelocatie, acFormatPDF, BestandsnaamLocatie
   DoCmd.Close acReport, stDocNamelocatie
 

.MoveNext 'volgende locatie
    'herhalen tot einde van de recordset
    Loop
End With
MsgBox "klaar"


    
End Sub

Private Sub Knop43_Click()
' http://www.helpmij.nl/forum/showthread.php/830643-Mailen?highlight=vba+bijlage+mailen%27
'pdf verzenden

Dim BestandsNaamOverzicht As String
Set r = CurrentDb.OpenRecordset("SELECT * FROM QryVerzendlijstOverzicht;", dbOpenSnapshot)
Dim datum As String

datum = Format(Now(), "yymm")

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    MailAdresAlgemeen = r("EmailOverzicht")
    OnderwerpAlgemeen = r("onderwerpOverzicht") & "-" & datum
    TekstAlgemeen = r("tesktEmailOverzicht")
    bestandAlgemeen = Me.TxtBewaarlocatie & "Rapportage - " & "x" & ".pdf"
    
    On Error Resume Next
    With OutMail
        .To = MailAdresAlgemeen
        .CC = ""
        .BCC = ""
        .Subject = OnderwerpAlgemeen
        .Body = TekstAlgemeen
        .Attachments.Add bestandAlgemeen
        '.Send  'hierin zal iets zitten waarbij het automatisch mailen zal gaan.
        .display
        If Send = True Then
            .Send
        Else
            .display
        End If
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
 
de output zoals die nu is is helemaal goed R1nr.pdf alleen moet ik nu per R1nr het pulldownmenu gebruiken, meer dan 500 keer en dat is heel veel werk. Het zou dus mooi zijn om
via een druk op de knop zoals jwaque beschrijft (ik weet niet precies hoe ik dat in mijn voorbeeld moet gebruiken) dat alle pdfjes afzonderlijk maar in 1 keer geprint worden. Het liefst in acces 2003 maar als dat niet lukt is 2013 ook goed.
Groet,
John
 
de output zoals die nu is is helemaal goed R1nr.pdf alleen moet ik nu per R1nr het pulldownmenu gebruiken, meer dan 500 keer en dat is heel veel werk. Het zou dus mooi zijn om
via een druk op de knop zoals jwaque beschrijft (ik weet niet precies hoe ik dat in mijn voorbeeld moet gebruiken) dat alle pdfjes afzonderlijk maar in 1 keer geprint worden. Het liefst in acces 2003 maar als dat niet lukt is 2013 ook goed.
Groet,
John
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan