Condividi:        

Access - esportazione massiva query

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Access - esportazione massiva query

Postdi gaetano73 » 14/08/12 21:07

Ciao a tutti.

Ho creato un DB in Access (2007) che contiene una tabella, 250 query e una macro (che mi esegue le 250 query una dopo l'altra). Ora ho la necessità di esportare le 250 query in formato Excel ma in automatico ovvero, non mi si deve aprire la finestra che mi chiede di confermare il nome del file da esportare.
È possibile? Se SI, come?

Grazie

Gaetano
gaetano73
Utente Senior
 
Post: 250
Iscritto il: 03/09/02 18:36

Sponsor
 

Postdi archimede » 15/08/12 06:49

Hai 250 queries sulla stessa tabella? Se è così, non sarebbe più comodo per l'utente esportare direttamente la tabella?

Comunque, da una rapida ricerca su Google (non testato):
Codice: Seleziona tutto
Public Sub btnCreaExport()
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, _
        Query1, "C:\Export\TUTTE_LE_QUERY.xls", True, _
        "Foglio1"

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11, _
        Query2, "C:\Export\TUTTE_LE_QUERY.xls", True, _
        "Foglio2"

    ' Eccetera

    Application.FollowHyperlink "C:\Export\TUTTE_LE_QUERY.xls"
End Sub
Questo presupponendo che le singole queries non ritornino più di 65000 records ciascuna e che il PC dove gira il codice regga un file Excel con 250 fogli.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Access - esportazione massiva query

Postdi gaetano73 » 15/08/12 14:39

Per me sarebbe ancora meglio fornirgli il DB; purtroppo chi mi ha commissionato questa cosa è un utente moooooolto eigente e anche saccente.

:(
Ho provato: vuole il nome di una tabella; gliel'ho messo ma mi restituisce l'errore "Impossibile trovare ISAM installabile".
Ad ogni modo non andrebbe bene perché il suddetto utente vuole un singolo file per ogni query; non vuole un solo file contenente 250 (risultati di) query.
gaetano73
Utente Senior
 
Post: 250
Iscritto il: 03/09/02 18:36

Re: Access - esportazione massiva query

Postdi gaetano73 » 15/08/12 16:41

Ho quasi risolto con questo codice:
Codice: Seleziona tutto
Public Sub exportExcel()
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Query1", "C:\Users\Utente\Desktop\NomeFile.xls", True
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Query2", "C:\Users\Utente\Desktop\NomeFile2.xls", True
End Sub

L'unica cosa che non va è che, usando queste istruzioni, i file devono esistere. C'è la possibilità di farli creare se non esistono?
gaetano73
Utente Senior
 
Post: 250
Iscritto il: 03/09/02 18:36

Postdi archimede » 15/08/12 17:23

gaetano73 ha scritto:usando queste istruzioni, i file devono esistere.
Francamente mi pare strano: dà qualche errore specifico?

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Access - esportazione massiva query

Postdi Flash30005 » 15/08/12 17:27

Leggi quanto scritto da Archimende (che ha scritto mentre postavo)

Per creare i file di excel in automatico:
Apri un file excel
inserisci in un modulo questa macro
Codice: Seleziona tutto
Sub Creafile()
Perc = "C:\Temp\"
For FL = 1 To 250
    Fname = "NomeFile" & Format(FL, "000")
    ThisWorkbook.SaveAs Filename:=Perc & Fname
Next FL
End Sub


E' sconsigliato usare il Desktop come archivio di documenti quindi utilizza un'altra directory del disco.
Ho formattato il numero assenato al nome del file con 3 cifre (001, 002 etc) in maniera che avrai il corretto ordinamento nella directory destinazione.

Per quanto riguarda la macro di esportazione query potresti usare il ciclo for next senza dover ripetere 250 righe di codice
Codice: Seleziona tutto
Public Sub exportExcel()
For QN = 1 To 250
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Query" & QN, "C:\Temp\NomeFile" & Format(QN, "000") & ".xls", True
Next QN
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

[Risolto] Re: Access - esportazione massiva query

Postdi gaetano73 » 15/08/12 18:40

archimede ha scritto:Francamente mi pare strano: dà qualche errore specifico?

Ora non più... pardon!

Flash30005 ha scritto:E' sconsigliato usare il Desktop come archivio di documenti quindi utilizza un'altra directory del disco.

OK. Grazie.
Flash30005 ha scritto:Per quanto riguarda la macro di esportazione query potresti usare il ciclo for next senza dover ripetere 250 righe di codice

Purtroppo non posso farlo in quanto i nomi dei file, nella versione finale del DB, avranno questa "formattazione": Gaetano - 329-0123456.xls, Marco - 331-0123456.xls etc...

Risolto!
Grazie 1000!
gaetano73
Utente Senior
 
Post: 250
Iscritto il: 03/09/02 18:36


Torna a Applicazioni Office Windows


Topic correlati a "Access - esportazione massiva query":


Chi c’è in linea

Visitano il forum: Nessuno e 117 ospiti