2009-11-16 13 views
5

Come posso aggiungere un pulsante a un report di Microsoft Access per esportarlo in Excel/PDF?Come posso aggiungere un pulsante a un rapporto di accesso per esportarlo in Excel/PDF?

+5

Come non è questo di programmazione? – JeffO

+0

GuinnessFam. Sono d'accordo con te e ho sollevato questo come una domanda in meta.stackoverflow.com. Le persone di Eneough erano d'accordo con la mia domanda, così hanno riaperto questa domanda. –

+0

Penso che questa sia una buona domanda, ma sembra che uno o i commenti che suggeriscono che potrebbe essere una domanda problematica potrebbe essere stata eliminata. È vero? Per quanto riguarda il contesto, quattro persone hanno aumentato il prezzo di JeffO "Come è questa non programmazione?" commento, e @ tony-toews ha risposto a un commento inesistente da GuinnessFam. Qualcuno può spiegare per favore? –

risposta

2

Christian ha suggerito un pulsante di comando su un modulo, ma potresti anche creare una barra degli strumenti per il rapporto con un pulsante su di esso che esporrebbe il rapporto a Eccellere. Ma come dice Tony, i risultati saranno brutti.

Direi che più utile sarebbe un pulsante che esporta i dati visualizzati nel report in un foglio di calcolo di Excel. La formattazione non sarebbe così carina, ma sarebbe molto più utile e manipolabile. Per fare ciò, devi utilizzare DoCmd.TransferSpreadsheet e una Query salvata come origine di esportazione (equivalente alla Documentazione del report).

+0

È possibile ottenere una buona formattazione in Excel con HTML e non è così difficile utilizzare un modello in VBA e riempire gli spazi vuoti. – Fionnuala

+0

Excel accetta l'HTML senza fare qualcosa di speciale? Word non lo gestisce bene tramite l'automazione (o, almeno, non ho scoperto come) - questo mi porta al motivo principale per cui ho commentato, e questo è http://www.codinghorror.com/blog/archives /001311.html, dove siamo tenuti a analizzare l'HTML. Esiste una soluzione utilizzabile per l'accesso per l'analisi dell'HTML? Ho bisogno di male! –

3

Modules: Sample Excel Automation - cella per cella, che è lento

Modules: Transferring Records to Excel with Automation

Nota se l'automazione di Excel suggerito è in realtà contro una query come l'esportazione dei report in Excel li rende estremamente brutto. Se ricordo correttamente questa funzionalità è stata rimossa in Access 2007.

A2000ReportToPDF è un database di Access 2000 che contiene una funzione per convertire i file di report e snapshot in documenti PDF. Non è richiesto alcun driver di stampa PDF. Gratuito.

+0

Tony, secondo Allen Browne in http://allenbrowne.com/Access2007.html il problema dell'esportazione in Excel è stato risolto in A2007 SP2. –

1

AFAIK non è possibile "aggiungerlo" al rapporto. Ma sul modulo che si apre il report, è possibile aggiungere un pulsante con il seguente codice:

DoCmd.OutputTo acOutputReport, "ReportName", acFormatXLS, 
"c:\YourFolderName\ReportName - " & Format(Date, "yyyymmdd") & ".xls" 

Only Access 2007 has support for PDF's. Quindi dovrai installare una stampante PDF o usare il suggerimento Tony Toews

+0

Christian, hai mai provato ad esportare un report in Excel? È davvero brutto. In realtà A2007 ha integrato il supporto per i PDF, quindi avrei dovuto accennarlo. –

+0

@Tony Toews - solo perché puoi non significa che dovresti ... –

+0

L'esportazione in PDF è davvero facile da aggiungere nelle versioni precedenti di Access, sia con il convertitore di snapshot di Stephen Lebans, sia usando qualcosa come PDFCreator, che è automatizzabile da VBA. –

5

Ho appena combinato alcune delle risposte precedenti e questo è il mio blocco di codice finale che esporta un report in Excel e quindi apre il file excel.

Private Sub Command79_Click() 
'initialize variables 
Dim strReportName As String 
Dim strPathUser As String 
Dim strFilePath As String 

'set variables 
strReportName = "AlarmLetterForSF" 
strPathUser = Environ$("USERPROFILE") & "\my documents\" 
strFilePath = strPathUser & strReportName & Format(Date, "yyyymmdd") & ".xls" 

'export to excel 
DoCmd.OutputTo acOutputReport, strReportName, acFormatXLS, strFilePath 

'launch excel file 
Dim Shex As Object 
Set Shex = CreateObject("Shell.Application") 
Shex.Open (strFilePath) 

End Sub

Problemi correlati