Modulo VBA per esportare query access in Excel

lunedì 02 giugno 2014 - 23.12

ocre Profilo | Newbie

Ciao,
ho creato questo modulo in Access per esportare 2 query nello stesso foglio di un file Excel, in 2 intervalli diversi

DoCmd.TransferSpreadsheet acExport, 10, "QdaE1", "C:\pippo.xlsx", True
DoCmd.TransferSpreadsheet acExport, 10, "QdaE2", "C:\pippo.xlsx", True

ma li salva in 2 fogli diversi, inoltre non so come specificargli gli intervalli

Qualcuno può aiutarmi?
Grazie in anticipo
Stefania

alx_81 Profilo | Guru

>Ciao,
ciao

>DoCmd.TransferSpreadsheet acExport, 10, "QdaE1", "C:\pippo.xlsx", True
>DoCmd.TransferSpreadsheet acExport, 10, "QdaE2", "C:\pippo.xlsx", True
hai specificato due tabelle (QdaE1 e QdaE2) quindi vengono creati due fogli.
Prova a specificarne uno solo per vedere se ti fà l'append. Gli intervalli non credo che tu possa specificarli con la funzione che usi.

>Grazie in anticipo
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Grz della risposta Alx_81
Purtroppo no, non fa l'append.
Come ne vengo a capo?
AIUTO

alx_81 Profilo | Guru

>Grz della risposta Alx_81
>Purtroppo no, non fa l'append.
>Come ne vengo a capo?
prova a vedere se trovi risposta qui..
http://support.microsoft.com/kb/153812
http://social.msdn.microsoft.com/Forums/office/en-US/609ba84c-f14b-4e63-a7ea-135b8d961c96/transferspreadsheet-command-doesnt-append-to-tables-in-access-data-project?forum=accessdev
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Niente da fare, tra l'altro anche cambiando True con False, che da quanto ho capito si occupa dell'intestazione, il risultato è identico: 2 fogli diversi, mentre ho necessità che siano sullo stesso foglio, a 'sto punto mi va bene anche se si accodano uno sotto l'altro. :-)

alx_81 Profilo | Guru

>Niente da fare, tra l'altro anche cambiando True con False, che
>da quanto ho capito si occupa dell'intestazione, il risultato
>è identico: 2 fogli diversi, mentre ho necessità che siano sullo
>stesso foglio, a 'sto punto mi va bene anche se si accodano uno
>sotto l'altro. :-)
ma hai provato a seguire la risoluzione del problema direttamente dalla KB che ti ho passato?

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

La seconda non fa per me; la prima l'ho provata, ma o non sono in grado io o non fa quello che mi serve.

alx_81 Profilo | Guru

>La seconda non fa per me; la prima l'ho provata, ma o non sono
>in grado io o non fa quello che mi serve.
sembrava proprio che seguendo quelle cose ti facesse l'append.
Mi spiace, le istruzioni sono quelle, quindi non saprei come altro aiutarti.
E purtroppo non uso molto access.
Se vuoi puoi mandarmi un database di esempio col VBA module e un foglio excel..
un pacchetto che io possa provare.
che dici?
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Magari! Grazie!
Lo allego qui.
Se riesci ad "appenderlo" senza far visualizzare nessuna delle intestazioni, nè della prima query, nè della seconda, sarebbe perfetto.
Cmq grazie a prescindere!

alx_81 Profilo | Guru

>Magari! Grazie!
intanto ti faccio notare una cosa rispetto al parametro relativo al mostrare le intestazioni:
"When you export Access table or select query data to a spreadsheet, the field names are inserted into the first row of the spreadsheet no matter what you enter for this argument."
Quindi puoi anche ometterlo che te le trovi

>Se riesci ad "appenderlo" senza far visualizzare nessuna delle
>intestazioni, nè della prima query, nè della seconda, sarebbe perfetto.
secondo me la cosa più veloce è fare una query unione e poi scrivere quella.. Pensi sia una soluzione valida?
te l'ho riallegato, cambia pure il path.. ne ho usato uno mio..

>Cmq grazie a prescindere!
è un piacere!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Intanto grazie!
Sì ci avevo pensato, dopo aver fatto anche una query di accodamento ed esportando la tabella, ma in realtà mi servirebbe una cosa automatizzata, clicco un pulsante e Access fa tutto

alx_81 Profilo | Guru

>Sì ci avevo pensato, dopo aver fatto anche una query di accodamento
>ed esportando la tabella, ma in realtà mi servirebbe una cosa
>automatizzata, clicco un pulsante e Access fa tutto
se la struttura delle query è la stessa, fai la union prima di lanciare l'export no?
In questo modo il modulo VBA prende le query, le unisce e poi spara l'export.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

alx_81 Profilo | Guru

ci sei riuscita?
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Penso di riuscirci
Spero...
Grazie

alx_81 Profilo | Guru

>Penso di riuscirci
>Spero...
vedi questo esempio.. Spero faccia al caso tuo
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Sei molto gentile e disponibile, ma, come ti dicevo, dovrebbe anche automatizzare l'esportazione, ovvero, clicco il pulsante e fa tutto lui ;-)
Cmq grazie 1000!!!!

alx_81 Profilo | Guru

>Sei molto gentile e disponibile, ma, come ti dicevo, dovrebbe
>anche automatizzare l'esportazione, ovvero, clicco il pulsante
>e fa tutto lui ;-)
aspetta un momento.. il programma crea l'unione programmaticamente, e crea l'excel aprendolo direttamente.. in maniera dinamica.
Più di così che doveva fare? Non ti seguo..

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Cassiopea, hai ragione, non lo trovavo in C, gli ho cambiato percorso ed ora l'ho trovato.
Dato che mi crea 3 fogli e a me interessa solo l'ultimo, quello unito,
posso aggiungere dei comandi nel codice che mi cancellano i primi due fogli?

alx_81 Profilo | Guru

>posso aggiungere dei comandi nel codice che mi cancellano i primi due fogli?
il database che ti ho passato crea un excel con un solo foglio.. non è che sono i tuoi vecchi?

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Come al solito hai ragione, sono proprio una scema!
Posso cancellare la riga 1 d'intestazione e la riga bianca?

alx_81 Profilo | Guru

>Come al solito hai ragione, sono proprio una scema!
su su.. non distruggerti così

>Posso cancellare la riga 1 d'intestazione e la riga bianca?
la riga bianca c'è perchè c'è proprio una riga vuota nella query, secondo me è un dato sporco.. Se puoi, cancella la riga nella tabella TAutosalone (id 11).
Per le intestazioni invece ti ho modificato lo script,
fammi sapere se è ok.

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

ocre Profilo | Newbie

Cassiopea, ho appena notato che dmwListAllQueries() prende tutte le query, ma se io ne ho 10 e voglio accorparne solo 2 per l'esportazione?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5