Condividi tramite

Salvare un Report in una directory specifica non sovrascrivendo lo tesso file con lo stesso nome.

Anonimo
2017-09-08T06:34:51+00:00

Buongiorno a tutti, ho bisogno del vostro supporto e aiuto per poter salvare (in PDF) in un percorso preciso un Report che ha il nome di una casella di testo e la data attuale.

Con il codice sottoriportato riesco a crearlo una sola volta poiché appena lanciata nuovamente la routine lo va a sovrascrivere.

Io desidererei invece crearlo, salvarlo e non sovrascrivere quello precedente e con lo stesso nome.

questo è il codice che attualmente utilizzo.

Private Sub cmdPDF_Click()

On Error Resume Next

If IsNull(Me.txtPozzoTipo) And IsNull(Me.txtDal) And IsNull(Me.txtAl) And IsNull(Me.txtDataPagamento) And IsNull(Me.cboCognomeNome) _

And IsNull(Me.cboAnno) Then

MsgBox "Non posso Salvare in PDF, controlla tutti i campi di ricerca e Filtro sulla Maschera, non possono essere vuoti o non selezionati.", vbCritical, "CREA FATTURA/QUIETANZA IN PDF"

Exit Sub

End If

'Verifico la presenza della cartella: Quietanze_Soci_mesi_vari nella directorY C e se c'è salvo il Report in PDF

If Len(Dir("C:\Quietanze_Soci_mesi_vari", vbDirectory)) > 0 Then

   Else

      MkDir ("C:\Quietanze_Soci_mesi_vari")

End If

' salva il report in PDF nella directory scelta

Dim rptName As String

Dim strData As String

Dim strNomeFile As String

rptName = "ReportQuietanzaSocio"

Const strOutputPath As String = "C:\Quietanze_Soci_mesi_vari"

 DoCmd.OpenReport reportName:=rptName, _

                  view:=acViewPreview, _

                  filtername:=Null, _

                  whereCondition:=Me.Filter, _

                  windowMode:=acHidden

strData = Format$(Reports(rptName)!txtDataAttuale, "yyyy-mm-dd")

strNomeFile = Reports(rptName)!CognomeNome

DoCmd.OutputTo objecttype:=acOutputReport, _

                 objectName:=rptName, _

                 outputformat:=acFormatPDF, _

                 outputfile:=strOutputPath & strNomeFile & " " & "Quietanza del " & strData & ".pdf", _

                 autostart:=False

DoCmd.Close objecttype:=acReport, objectName:=rptName

VBA.MsgBox prompt:="Esportazione effettuata in : " & strOutputPath, _

                     Buttons:=vbInformation, _

                    Title:="Informazione"

DoCmd.OpenForm "frmQuietanze", acNormal

End Sub

Spero di essere stato chiaro e comprensibile.

Ciao Nicola.

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-08T06:50:26+00:00

ciao Nicola,

prova modificare questa istruzione :

strData = Format$(Reports(rptName)!txtDataAttuale, "yyyy-mm-dd")

cosi :

strData =format(vba.Now(),"yyyymmddhhnnss")

Ciao, Sandro.

La risposta è stata utile?

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

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-09-08T07:34:43+00:00

    Grazie Sandro per quest'altra informazione che non conoscevo:

    i due punti, lo slash o backslash non sono contemplati nel nome di un file.

    Allora seguo i tuoi validissimi consigli, lascio la data e l'orario invariati (cioè tutti uniti senza alcun separatore o spazio) perché a breve dovrò creare una Form ed una procedura di ricerca dei files di ciascun soggetto e visualizzarli cliccandoci sopra e al riguardo ricordo che tu hai pubblicato qualche demo per altri amici del forum che fa questo lavoro.

    Ciao Sandro, alla prossima richiesta di aiuto.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-09-08T07:28:06+00:00

    ciao Nicola,

    i due punti, lo slash o backslash non sono contemplati nel nome di un file...vedi se così potrebbe andare meglio :

    format$(vba.Now,"yyyymmdd_hhnn")

    mi permetto ulteriormente di consigliarti di posizionare il concatenamento di data e ora all'inizio del nome del file, in tal modo nella cartella i nomi appaiono in ordine, ed è più facile individuarli.

    Altresì impostare prima l'anno e poi mese e giorno o giorno e mese...

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-09-08T07:06:51+00:00

    Ciao Sandro, buongiorno e grazie come sempre per la tua puntualità e gentilezza nel rispondermi.

    Va bene la tua soluzione, ti chiedo solo una cosa (per mio desiderio, volendo un altro aspetto grafico e visivo del dato), come poter visualizzare la data e l'orario del file salvato come da immagine evidenziata di giallo cioè cosi 08/09/2017 09:06:21

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento