Macro, Exportwithformatting, inserire data nel nome file

di il
20 risposte

Macro, Exportwithformatting, inserire data nel nome file

Buongiorno,
ho creato una mcaro in accss e con al funzione EXPORTWITHFORMATTING riesco ad esporare un file excel del tipo:
C:\Temp\Pippo.xls
Vorrei aggiungere la data di elaborazione al nome file, ma ho provato a copiare dalle varie istruzioni troavte su internet ma nn funzioan. Forse è un problema banale id sintassi corretta (apicini, & spazi etc.).
Comde devo scirverlo correttamente, perché diventi PIPPO_DATA.xls (ex. PIPPO_20160912.xls.

Grazie

20 Risposte

  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Affinchè un [CampoData] dove c'è scritto 12/9/2016, vuoi farlo diventare 20160912, devi applicare la funzione:
    Format([CampoData];"aaaammgg")
    se sei in una query (testato: funziona!)
    In VBA (non sono sicuro), dovresti usare la scrittura inglese e separare con virgola, prova così
    Format([CampoData],"yyyymmdd")
    Per il resto ti basta la semplice concatenazione &.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Non mi importa, per ora, il formato, ma solo inserire una data. Ho provato in vari modi ma non funziona.
    Ho access in inglese, l'ho inserita in tutti le varianti (virgola, punto e virgola, DataField, etc.) ma non funziona.
    Mi basterebbe anche solo il path per data.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Non uso più le macro da qualche tempo, ma leggendo qui
    https://msdn.microsoft.com/en-us/library/office/ff197066.aspx
    scopro che c'è l'argomento Output File.
    Se io lavorassi in VBA, costruirei una variabile per denominare il file con tutto il suo path, per poi darlo in pasto all'argomento OutputFile.
    Da Access 2007 in poi esistono le TempleVar (o TempVar) che potrebbero ottemperare a questo scopo. Oppure potresti scrivere l'intera sintassi composita dentro Output File.
    Leggo anche che ExportWithFormatting (macro) equivale a OutputTo in VBA...io sarei orientato più su quest'ultima soluzione...con il discorso della variabile che dicevo prima.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Ragionando con calma, forse si può trovare l'intera espressione concatenata da scrivere dentro Output File.
    "Pippo" è un nome che dai tu o proviene da "Object Name"?
    La Data è sempre quella "odierna" oppure proviene da qualche parte?
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    La data è quella odierna, pippo è un nome che do io, ma potrebbe nache venire da Object name.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Ma tu esporti una volta al giorno? Per questo ti basterebbe solo la Data odierna?
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Si, esporto una volat al gionro e mi serve per distinguere i files.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Diciamo che ho qualche difficoltà a includere anche FileName nella concatenazione. Limitandomi a creare solo la data, prova a scrivere questo dentro Output File:
    "C:\Temp\" & Format(Date();"yyyymmdd") & ".xls"
    se hai detto di avere la versione Access in inglese, altrimenti scrivi "aaaammgg"

    Se hai ancora problemi...io proverei a sfruttare TempVar. Leggi qui
    https://support.office.com/it-it/article/Azione-di-macro-ImpostaTempVar-fdcf68da-44c9-477f-9382-e487fa983435
    per capire come potrebbe entrare in gioco...e ottimizzare anche con il FileName.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Ho provato a copiare il path in diversi modi, con apici o senza, con spazi e senza, etc ma mi da sempre lo stesso errore:

    Microsoft Acces can’t save the outpt data to the file you’ve selected
    - The file may be open. If so close it…
    - If youa re using a tempalte, check to make sure the tempalte exist
    - If the file isn’t opne, check there enough free space
    - Make sure the file exist on the path specified
    - Check to make sure you the permision to write to the specified folder

    Error 2302

    Forse sbaglio qualcosa di banale...
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Cosa stai esportando? Una tabella? Una query? Un report?
    Ho la sensazione che siano gli apici " a dare rogne che nelle proprietà macro forse non si mettono. Oppure occorre mettere = all'inizio...non ricordo più molte cose.
    Potresti scrivere i valori che hai scritto in tutte le proprietà di ExportWithFormatting, nell'ipotesi di chiamarlo solo "Pippo" e con il path semplice C:\Temp\Pippo.xls ? Vorrei tentare una strada via VBA.
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Scrivendo
    C:\Temp\Pippo.xls
    in output file funziona perfettamente
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    OK. Ma voglio sapere cosa hai scritto in tutte le proprietà di ExportWithFormatting per tentare una sintassi similare in VBA. Senza i tuoi valori non posso compilare tutto correttamente.
    Poi, a cosa è associata la tua macro? Un clic di pulsante?
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Object Type : Query
    Object name : Speso per categoria
    Outoput format: Excel 97
    Output file : C:\Temp\Pippo.xls
    Autostart : Yes
    template file : ....(blank)
    Encoding : ....(blank)
    Output qulity: screen


    macro autoexec
  • Re: Macro, Exportwithformatting, inserire data nel nome file

    Ipotizzando il clic di un pulsante, in VBA potrebbe essere così
    Private Sub NomePulsante_Click()
    Dim X As String 'qui stai dichiarando una variabile X di tipo Stringa
    'dentro X ci vai a mettere il path costruito come se fosse una stringa
    X = "C:\Temp\Spese per categoria_" & Format(Date(),"yyyymmdd") & ".xls"
    'creo l'istruzione equivalente a ExportWithFormatting che in VBA si chiama OutputTo, sfruttando X che deve andare dentro la proprietà OutputFile
    DoCmd.OutputTo acOutputQuery, "Spese per categoria", acFormatXLS, X, True, , , acExportQualityScreen
    End Sub
Devi accedere o registrarti per scrivere nel forum
20 risposte