Output su pdf con id numerico

di il
11 risposte

Output su pdf con id numerico

Buongiorno a tutti
avrei la necessità di salvare su pdf le stampe che genero anche in cartaceo e per quanto riguarda i doc. già numerati perchè generati in una appropriata tabella non ho problemi usando il seg. codice

Dim Nomefile As String
Dim percorso As String
percorso = [Forms]![PANNELLO_comandi]![STAMPE] & "\fatture\"

Nomefile = [Forms]![elenco_fatture_clienti]![n°_fattura]
Nomefile = Nomefile & "_" & [Forms]![elenco_fatture_clienti]![INTESTAZIONE]
DoCmd.OutputTo acOutputReport, "FATTURE_INSTALLAZIONE", acFormatPDF, percorso & Nomefile & ".pdf", acPreview, False
End Sub

in questo caso il pdf viene nominato con il n° della fattura ed il nominativo del cliente.

ora mi si pone il caso in cui dovrei fare la stessa operazione ma per un report generato da più documenti ( quindi più num identificativi)

pensavo di risolvere ponendo al posto del numero documento una data generata nella maschera in cui visualizzo il documento prima di lanciare la stampa per cui ho inserito una casella di testo denominata DATA e con origine =Now(), formattata come data estesa ed inserendola nel codice come Nomefile.
Ma non funziona
come posso aggirare il problema?
mi andrebbe anche bene che il file pdf generato venisse nominato con [INTESTAZIONE]& [NUMERO SEQUENZIALE].

Ma non riesco a scrivere un codice corretto.
qualcuno può darmi un idea?

grazie

11 Risposte

  • Re: Output su pdf con id numerico

    giacomocd ha scritto:


    ...
    Ma non funziona
    ...
    Nel senso che sbaglia a fare quello che vorresti che facesse, non fa proprio niente? Ci sono messaggi d'errore?
    Con tutta probabilità cerchi di nominare un file con caratteri vietati, come la barra di separazione della data e i duepunti dell'orario presenti nel risultato della funzione now()
    Decidi tu come vuoi nominare i file e vediamo di trovare una soluzione.
  • Re: Output su pdf con id numerico

    Non genera il file pdf e mi da un errore di run_time 2501.
    a video la data è: venerdi 26 gennaio 2018

    se fosse possibile con [intestazione] +[data e ora]
    altrimenti potrebbe andare anche [intestazione]+ id sequenziale
  • Re: Output su pdf con id numerico

    giacomocd ha scritto:


    Non genera il file pdf e mi da un errore di run_time 2501.
    Classico errore da "path e nome file" non validi. Torno a sostenere che contiene caratteri non validi.

    giacomocd ha scritto:


    a video la data è: venerdi 26 gennaio 2018
    A video? dove? quella presumibilmente è solo una "visualizzazione".
    Now() di suo restituisce una cosa del tipo
    
    ? Debug.Print Now()
    26/01/2018 12:28:53
    quindi il nome che cerchi di attribuire al file, come detto prima, conterrebbe caratteri non validi ed ecco l'errore.
    se fosse possibile con [intestazione] +[data e ora]
    Modifica il risultato di Now() con la funzione Format() in modo che non abbia alcun carattere vietato.
  • Re: Output su pdf con id numerico

    Ok
    ma la funzione format come la uso?
    in origine controllo della casella di testo? Format((Now())"ddmmyyyyhhmmss")
  • Re: Output su pdf con id numerico

    giacomocd ha scritto:


    ma la funzione format come la uso?
    in origine controllo della casella di testo?
    La domanda è "come" o "dove"?
    Sul "come" basta fare alcune prove (quello che hai scritto dovrebbe essere giusto)
    Sul "dove" puoi saperlo solo tu, se ti basta che venga usata per l'assegnazione del nome del file (e quindi nel codice) o se ti serve vederla anche da qualche altra parte, come può essere una casella di testo. Fai attenzione a prendere il valore giusto però perchè ogni secondo cambia e se la usi in due punti diversi in momenti diversi poi non hai più coerenza tra il nome del file e quello che c'è nella casella di testo.
  • Re: Output su pdf con id numerico

    Per me è più che sufficiente che il nome del file abbia quella formattazzione solo per poter rendere ogni file univoco, mi basterebbe aaaammgghhmm
    ho provato a mettere la funzione format nel codice del comando di stampa pdf
    
    
    oCmd.OpenReport "stampa_consuntivo", acViewPreview, , , acNormal
    DoCmd.Close acReport, "stampa_consuntivo"
    DoCmd.OpenReport "stampa_consuntivo", acViewPreview, , , acNormal
    Dim Nomefile As String
    Dim percorso As String
    percorso = [Forms]![PANNELLO_comandi]![STAMPE] & "\consuntivi\"
    Nomefile = [Forms]![raggruppamento_schede]![DATA] = Format(aaaammgghhmm)
    Nomefile = Nomefile & "_" & [Forms]![raggruppamento schede]![INTESTAZIONE]
    DoCmd.OutputTo acOutputReport, "STAMPA_DOC_CONSUNTIVO", acFormatPDF, percorso & Nomefile & ".pdf", False
    
    ma il risultato è un pdf nominato
    FALSO_intestazione.pdf
  • Re: Output su pdf con id numerico

    giacomocd ha scritto:


    ...
    Nomefile = [Forms]![raggruppamento_schede]![DATA] = Format(aaaammgghhmm)
    Cos'è questa riga?
    Prova ad aggiungere immediatamente dopo
    Debug.Print Nomefile
    e guarda cosa c'è nella finestra immediata. Finché non sistemi quella riga non risolvi.
    Non è lo stesso uso di format del tuo intervento precedente, vba parla solo inglese, non sa cos'è aaaammgghhmm e comunque format prevede che il primo argomento sia l'espressione da formattare, il secondo il "formato di formattazione".
  • Re: Output su pdf con id numerico

    .... no non ne esco ho provato ad impostare il formato (yyyymmdd) ma non cambia e nella finestra immediata compare sempre FALSO

    sia con
    
    Nomefile = Format(Now(), yyyymmdd)
    Debug.Print Nomefile
    

    che
    
    Nomefile = [Forms]![raggruppamento_schede]![DATA] = Format(yyyymmdd)
  • Re: Output su pdf con id numerico

    giacomocd ha scritto:


    .... no non ne esco ho provato ad impostare il formato (yyyymmdd)
    perché l'hai impostato male.
    Questo è uno dei tuoi post precedenti

    giacomocd ha scritto:


    Ok
    ma la funzione format come la uso?
    in origine controllo della casella di testo? Format((Now())"ddmmyyyyhhmmss")
    cosa c'è di diverso? non tanto i numero dei caratteri o la loro sequenza, quanto il fatto che sono racchiusi da doppi apici, perché il secondo parametro di Format è una stringa.
  • Re: Output su pdf con id numerico

    Leggi qui
    https://support.office.com/it-it/article/funzione-format-6f29d87b-8761-408d-81d3-63b9cd842530
    per capire come si scrive la funzione Format.
    Il secondo argomento va scritto dentro virgolette...direi:
    Format(Now(), "yyyymmdd")
  • Re: Output su pdf con id numerico

    Grazie risolto....a volte per un autodidatta come me certi problemi sembrano insuperabili , ma poi grazie a voi ....la cosa diventa molto più semplice.
    buon fine settimana
Devi accedere o registrarti per scrivere nel forum
11 risposte