
Originariamente inviato da
Massimo_914
DoCmd.OutputTo acOutputQuery, "6020_Output_WIP_Business", acFormatXLS, "C:\Users\(NomeUser)\Desktop\DBReport\Logistic s XXXXXX\File di Gestione\Output\Gara 2020", & "_" & Format(Date, "yyyymmdd") & ".xls", False , , , acExportQualityScreen
Problema:
Non c'è verso di farlo funzionare e non ho capito se sbaglio qualcosa nel comando o nel modo di indirizzare il Path di salvataggio
Dal sito Microsoft
expression.OutputTo (ObjectType, ObjectName, OutputFormat, OutputFile, AutoStart, TemplateFile, Encoding, OutputQuality)
Per quei comandi con così tanto parametri a volte è molto più chiaro usare la "chiamata nominativa" e non per posizione, quindi magari con degli "a capo" strategici, che qui metto anche per facilità di lettura, per non dover scorrere in orizzontale la finestrella
DoCmd.OutputTo ObjectType:=acOutputQuery, _
ObjectName:="6020_Output_WIP_Business", _
OutputFormat:=acFormatXLS, _
OutputFile:="...", _
AutoStart:=False, _
OutputQuality:=acExportQualityScreen
Il problema sta nel parametro che hai passato ad OutputFile, ovviamente.
Lo prendo singolarmente
"C:\Users\(NomeUser)\Desktop\DBReport\Logistics XXXXXX\File di Gestione\Output\Gara 2020", & "_" & Format(Date, "yyyymmdd") & ".xls"
Prima cosa da fare per il debug, cioè per capire perché non funziona questa cosa, è usare una directory semplice, sicura, tipo C:\Test\ o simili. Fatto questo, se funziona, significa che il problema è lì
Si passa allora a costruire la stringa al di fuori del comando, con un eventuale Debug.Print della stessa
strPath = "C:\Users\(NomeUser)\Desktop\DBReport\Logistics XXXXXX\File di Gestione\Output\Gara 2020", & "_" & Format(Date, "yyyymmdd") & ".xls"
DoCmd.OutputTo ...., OutputFile:=strPath, ...
Ecco dov'è il problema, comunque: c'è una virgola di troppo tra Gara2020" e "_". Quella virgola ha fatto in modo che da quel momento si passasse ad un altro parametro di OutputTo. Almeno direi che è lì il problema. Vale comunque il discorso di prima, quello della costruzione della stringa ad hoc, l'unica che permette ad esempio di verificare se ci sono caratteri vietati o simili, grazie al Debug.Print. Con la stringa ad hoc probabilmente ti sarebbe stata evidenziata subito quella virgola fuori posto.
Da ultimo, OutputTo è lazzarone e il sito Microsoft da parecchio tempo è stranamente privo di link alle costanti acFormat, questo potrebbe averti creato qualche grattacapo nel riconoscimento del formato xls e xlsx dell'ipotesi con uso della macro. Da non usare comunque: macro è male, vba è bene.