Condividi tramite

Stampa report da maschera filtrata

Anonimo
2017-09-26T18:23:07+00:00

Buonasera, ho un problema con un db che sto creando. Ho una maschera che è una lista di ordini dove ho messo un bottone che mi esporta la lista in excel, questo è il codice:

DoCmd.OutputTo acOutputForm, "Ma_ListaOrdine", acFormatXLSX, "", False, "", , acExportQualityPrint

Questo codice mi permette di esportare la lista anche dopo averla filtrata in vari modi in modo da avere in excel solo i dati che di volta in volta  mi interessano.

Ora vorrei aggiungere un altro bottone che mi esporti come l'altro la lista filtrata in quel momento però in .pdf e usando un report che ho creato, ho scritto questo codice:

DoCmd.OutputTo acOutputReport, "Re_ListaOrdine", "PDFFormat(*.pdf)", "", False, "", 0, acExportQualityPrint

Questo codice funziona solo che mi esporta in .pdf sempre e solo la lista intera e non la lista filtrata come voglio io.

Qualcuno riesce a darmi una mano.

Grazie.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-09-26T19:11:57+00:00

ciao Roberto,

parliamo di filtro inteso come filter property, giusto?

mi vengono in mente due soluzioni facili.

La prima, su apertura dela report passi al report stesso il filtro che hai creato nella form, e crei il file pdf solo dei records che stai visualizzando nella form.

su evento click del command Button :

Const strFullPathPdfReport As String = "myPathReport.pdf"

DoCmd.OutputTo objecttype:=acOutputReport, _

               objectname:="ordini", _

               outputformat:=acFormatPDF, _

               outputfile:=strFullPathPdfReport

e su apertura del report :

Private Sub Report_Open(Cancel As Integer)

Const myFilterdForm As String = "Ma_ListaOrdine"

If CurrentProject.AllForms(myFilterdForm).IsLoaded Then

    With Me

        .FilterOn = True

        .Filter = Forms(myFilterdForm).Filter

    End With

End If

End Sub

oppure apri il report nascosto, lo filtri applicando la clausola where del metodo open report, lo esporti e lo chiudi.

Const strFullPathPdfReport As String = "myPathReport.pdf"

DoCmd.OpenReport reportName:="myReport", _

                  view:=acViewPreview, _

                  wherecondition:=Me.Filter, _

                  windowmode:=acHidden

DoCmd.OutputTo objecttype:=acOutputReport, _

               objectname:="myReport", _

               outputformat:=acFormatPDF, _

               outputfile:=strFullPathPdfReport

DoCmd.Close acReport, "myReport"

in questo secodo caso puoi elminare il codice su apertura del report.

ovviamente personalizza il nome del report e del percorso con quelli proprio del tuo scenario.

Ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2017-09-27T06:42:39+00:00

    Grazie Sandro, ora funziona perfettamente, era il codice su apertura del report che mi mancava.

    Grazie mille.

    La risposta è stata utile?

    0 commenti Nessun commento