Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ACCESS Output Query su foglio Excel

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 Output Query su foglio Excel

Postdi Francesco53 » 09/02/11 16:41

Buona sera a tutti,
vorrei tramite un pulsante in una maschera, che i risultati di una query,
anzichè vederli a video o in un Report, possano essere inviati, o caricati
su un foglio Excel.
Dovendo realizzare dei Report mensili da inviare, successivamente in formato
Excel ad altre persone per futuro utilizzo.
Utilizzo Access 2002.
Altra domanda relativa a quanto su richiesto, è possibile nominare il file?
Grazie a chi cortesemente può aiutarmi.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: ACCESS Output Query su foglio Excel

Postdi Flash30005 » 10/02/11 00:36

Quello che chiedi non è impossibile
ma è leggermente complesso
Considera che una tabella di access può essere collegata ad un foglio di excel
normalmente si usa per attingere i dati dal foglio ed importarli in access.
La tua rivhiesta è invece di utilizzare il file/foglio di excel come output quindi il foglio deve essere sempre "vuoto" fino al momento che non inserisci i dati nella tabella collegata al foglio stesso.

Personalmente uso questo metodo:
ho un foglio Master con testata nella riga1 (gli stessi campi che ho in tabella di access)
nella riga2 del master "formatto"
con degli 0 (zero) se le celle successive (dalla riga 3 in poi di quel campo) saranno numeri interi;
0,0 se decimali;
uno spazio se conterranno testo,
la data 01/01/1900 se conterrano date.

Ora crei una copia del file master e gli darai un nome es. "Pippo" (che non potrà più essere cambiato), collegherai il file Pippo alla tabella di access, tabella che "svuoterai" prima di ogni elaborazione (query realizzata da VBA).
I passi da seguire con la macro VBA sono questi:
1) Copia del file master con ridenominazione Pippo (la tabella collegata si svuota)
2) Query in VBA che compila la tabella collegata a Pippo
3) Apertura del foglio Pippo

Spero averti dato un input per proseguire altrimenti posta ancora
Ciao

N.B. tutti i tentativi di utilizzare lo stesso file Pippo senza la sostituzione da un master vergine sono naufragati perché i nuovi dati si accodano a dati "fantasma" rimasti da precedenti elaborazioni.
Inoltre il file master non deve avere alcuna scrittura (e/o cancellazione) dopo la seconda riga
altrimenti i dati si accoderanno dopo queste celle anche se vuote: incredibile ma vero!
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ACCESS Output Query su foglio Excel

Postdi Francesco53 » 10/02/11 08:53

Buon giorno a tutti,
grazie Flash per la spiegazione, proverò come da te indicato.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Postdi archimede » 10/02/11 09:27

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

Re: ACCESS Output Query su foglio Excel

Postdi gudmund » 11/02/11 10:19

Io faccio così: innanzitutto creo la tabella che aggiornerò di volta in volta con i dati derivanti dalla query; poi, con il VBA la svuoto e la riempio così:
Codice: Seleziona tutto
DoCmd.SetWarnings False 'per evitare che ogni volta mi chieda conferma
DoCmd.RunSQL "DELETE NomeTabella.* FROM NomeTabella"
DoCmd.RunSQL "INSERT INTO NomeTabella (ElencoCampi) SELECT... FROM..."

Poi esporto la tabella in Excel con
Codice: Seleziona tutto
DoCmd.OutputTo acOutputTable, "NomeTabella", acFormatXLS, _
        CurrentProject.Path & "\NomeFileExcel.xls", True

Spero di essere stato abbastanza chiaro
gudmund
Utente Junior
 
Post: 50
Iscritto il: 21/06/07 14:09

Re: ACCESS Output Query su foglio Excel

Postdi Francesco53 » 11/02/11 14:29

Un saluto a tutti e ringrazio per le indicazioni date.
Per gudmund, penso che il tuo codice sia ok, io nel frattempo ho trovato
in altri forum il seguente codice che funziona ugualmente:
Codice: Seleziona tutto
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
"nometabella", CurrentProject.Path & "\nomefilexls", True, ""

Una domanda vista la mia scarsa conoscenza di VBA, è possibile al posto di
"\nomefilexls" inserire il valore di un campo della tabella?
Esempio: Periodo=[nometabella]![mese]
io non sò se si può inserire in una variabile (non sò se è l'espressione giusta)
per poi utilizzare nel codice VBA "\ & Periodo&xls"
Grazie a tutti voi per la disponibilità e spero che si riesca ad ottenere quanto
vi ho richiesto.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Postdi archimede » 11/02/11 15:00

Codice: Seleziona tutto
Set db = CurrentDb
Set ds = db.OpenRecordset("SELECT mese AS x FROM nometabella WHERE <quelchetipare>")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
"nometabella", CurrentProject.Path & ds!x, True, ""
HTH.

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

Re: ACCESS Output Query su foglio Excel

Postdi Francesco53 » 11/02/11 20:09

Grazie Alessandro, ma purtroppo la mia ignoranza del VBA, non mi ha
consentito di riuscire a far funzionare il tuo codice.
Penso di sbagliare qualcosa, ma non riesco.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Postdi archimede » 13/02/11 15:12

Nemmeno una riga del codice usato, nessuna menzione di messaggi di errore, non un accenno alla struttura delle tabelle conivolte, ai dati in esse contenuti nè tantomeno un piccolo esempio di dati REALI e di risultato desiderato... Decisamente non aiuti chi ti vorrebbe aiutare.

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

Re: ACCESS Output Query su foglio Excel

Postdi Francesco53 » 13/02/11 19:44

Buona sera Alessandro,
ho risolto il mio problema con il codice postato da gudmund, rispetto a quello
utilizzato da me, trovato su altro forum, consente con l'apertura del foglio excel
di poterlo salvare con, salva con nome e dare il nome che serve al file.
Per quanto riguarda il tuo codice, ti ho scritto che capisco poco del vba, pertanto
cambiato il nome della tabella ed il nome del campo, tutti gli altri comandi, il x il
scrivi quello che vuoi, per me sono di poco aiuto e comprensione.
Mi dispiace, infatti ho parlato di mia ignoranza, pertanto penso che per mia incapacità,
non sono riuscito ad utilizzare il tuo codice.
Penso di poter dire che, per una persona che utilizza le macro per divertirsi con access,
diventa difficile interpretare il codice vba.
Grazie comunque per le risposte da te inviate.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45


Torna a Applicazioni Office Windows


Topic correlati a "ACCESS Output Query su foglio Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite