CREAZIONE REPORT E FILE PDF MULTIPLI

di il
22 risposte

22 Risposte - Pagina 2

  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    willy55 ha scritto:


    Il concetto è, come detto, il criterio con cui vai a porre i dati nei vari file PDF, quindi visto che cicli il recordset e vuoi produrre un file PDF per ciascun record (con nome del file e valori di ciascuna occorrenza) devi:
    - porre l'istruzione DoCmd.OpenReport all'interno del loop;
    - indicare il criterio di selezione (WhereCondition) quale quarto parametro della suddetta istruzione, come ad esempio "[ID] = " & rst1![ID].
    Ti indico anche delle discussioni che trattano medesimo argomento ed hanno esempi esplicativi:
    https://stackoverflow.com/questions/31530537/access-print-individual-page-to-pdf-individually-named-file
    https://social.msdn.microsoft.com/Forums/en-US/53f85f8b-6800-4c5a-a8c8-c974ca6b4d53/print-each-record-to-separate-pdf-file-using-certain-field-for-filename?forum=accessdev
    https://stackoverflow.com/questions/24416137/print-reports-to-pdf-in-access-2013-but-use-a-looping-filter
    https://stackoverflow.com/questions/41338235/create-loop-to-open-and-export-reports
    https://stackoverflow.com/questions/47304589/looping-through-a-recordset-to-output-ms-access-report-to-a-pdf-file
    Sono decisamente una pippa!
    Le ho provate tutte, più o meno le soluzioni su riportate si somigliano, ma non riesco a farle funzionare per mia - lo ammetto - incapacità.
    Posso inviare il file.
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    I 25 euro li puoi darli in mancia ai tuoi ragazzi da parte nostra se ne hai, altrimenti prenditi una pizza, offerta da chi ti ha aiutato.

    Questo è un forum tecnico non un posto che dispensa aiuti in cambio di mance.
    Per me il 3D può essere chiuso, sperando di non sentire più cavolate simili.
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    Scusate, non volevo offendere, era perché davvero con la mia incapacità non riesco a sistemare il codice nonostante i generosi aiuti.
    Scusate ancora
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    Ci siamo quasi...
    Ora crea tanti file quanti sono i record, solo che ogni file contiene tutti i report tanti quanti sono i record anzichè solo il reporto relativo al record che lo identifica:
    Cosa sbaglio ?
    
    Dim rs                    As DAO.Recordset
        Dim rpt                   As Access.Report
        Dim sFolder               As String
        Dim sFile                 As String
        Const sReportName = "Mandato"
    
        sFolder = "C:\Users\Famiglia\Desktop\Mandati\"
    
        Set rs = Me.RecordsetClone
        With rs
            If .RecordCount <> 0 Then
                'Open the Report
                DoCmd.OpenReport sReportName, acViewPreview, [id] = " & rs![ID]", acHidden
                'Define a report object so we can manipulate it below
                Set rpt = Reports(sReportName).Report
                
                .MoveFirst
                Do While Not .EOF
                    'Build the PDF filename we are going to use to save the PDF with
                    sFile = Nz(![id], "") & " " & Nz(![COGNOME], "") & ".pdf"
                    sFile = sFolder & sFile
                    DoCmd.OutputTo acOutputReport, sReportName, acFormatPDF, sFile, , , , acExportQualityPrint
                    DoEvents
                    Call Sleep(1000)
                    
                   .MoveNext
                Loop
                DoCmd.Close acReport, sReportName
            End If
        End With
    
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    Mi arrendo !
    Un anima pia che mi salvi

    https://drive.google.com/file/d/1xineKe1oELuryBDyrpRmEGoSFeypN93n/view?usp=sharing
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    Apri e chiudi il Report dentro il LOOP come ti aveva indicato Osvaldo da SUBITO traducendo le mie "inutili" indicazioni.
    Queste 2 righe non servono a NULLA
    
        Dim rpt                   As Access.Report
        Set rpt = Reports(sReportName).Report
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    @Alex ha scritto:


    Apri e chiudi il Report dentro il LOOP come ti aveva indicato Osvaldo da SUBITO traducendo le mie "inutili" indicazioni.
    Correggo il mio codice perché avevo dimenticato di "chiudere" il report nel loop...chissà se proprio questa dimenticanza determini il problema dei molti pdf con denominazioni diverse-coerenti, ma sempre con lo stesso contenuto.
    Dim rst1 As DAO.Recordset
     Dim strPath As String
     Set db = CurrentDb
     Set rst1 = db.OpenRecordset("DATABASE CERTIFICATI", dbOpenDynaset)
     rst1.MoveFirst
     Do Until rst1.EOF
     strPath = "C:\Users\Famiglia\Desktop\Mandati\" & rst1![ID] & "-" & rst1![COGNOME] & ".PDF"
     DoCmd.OpenReport "Mandato", acViewPreview, , "[ID] = " & rst1![ID], acHidden
     DoCmd.OutputTo acOutputReport, "Mandato", acFormatPDF, strPath, False
     DoCmd.Close acReport, "Mandato"
     rst1.MoveNext
     Loop
     rst1.Close
     db.Close
     End Sub
    
  • Re: CREAZIONE REPORT E FILE PDF MULTIPLI

    SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    FUNZIONA, GRAZIE A TUTTIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII - SIETE FAVOLOSI
    ECCO IL CODICE FUNZIONANTE, PULITO PULITO:
    
    
    Private Sub Creazione_Click()
    Dim db As DAO.Database
    Dim rst1 As DAO.Recordset
     Dim strPath As String
     Set db = CurrentDb
     Set rst1 = db.OpenRecordset("DATABASE", dbOpenDynaset)
     rst1.MoveFirst
     Do Until rst1.EOF
     strPath = "C:\Users\Famiglia\Desktop\Mandati\" & rst1![id] & "-" & rst1![COGNOME] & ".PDF"
     DoCmd.OpenReport "Mandato", acViewPreview, , "[ID] = " & rst1![id], acHidden
     DoCmd.OutputTo acOutputReport, "Mandato", acFormatPDF, strPath, False
     DoCmd.Close acReport, "Mandato"
     rst1.MoveNext
     Loop
     rst1.Close
     db.Close
     
    End Sub
    
    
Devi accedere o registrarti per scrivere nel forum
22 risposte