Newsgroup: it.comp.appl.access
Titolo: Istruzione OutputTo per foglio excel

Salve,
utilizzando la seguente istruzione, esporto il risultato di una query
mediante un foglio excel:
DoCmd.OutputTo acOutputQuery, "Query3", acFormatXLS, [Nome file],
False
fin qui tutto normale.
I problemi che vorrei sottoporre alla Newsgroup sono i seguenti:
1. Siccome il foglio di lavoro presente nel citato file,assume in
autonomia il nome [Query 3], come posso variarlo?
2. E' possibile attraverso un'altra routine inserire nel medesimo file
excel un'altro foglio di lavoro?
 
Un rigraziamento in anticipo
 
Michele


Apri il Documento di EXCEL con l'Automazione e modifica il Nome del
Foglio....
 
Io per esportare uso questa Rotutine, che con un quantitativo di dati
notevoli è più veloce, sotto trovi nei commenti la riga per cambiare
il Nome del Foglio.:
 
Function EXP2XLS(SQL    as string, _
                 Optional ByRef NomeFile As String = vbNullString, _
                 Optional OpenDialog As Boolean = False, _
                 Optional CloseExcel As Boolean = True) As Boolean
    On Error GoTo Handle_err
    Dim xlApp   As Object   ' Oggetto EXCEL
    Dim oWkb    As Object   ' Oggetto WORKBOOK
 
    Dim x       As Integer
    Dim rs      As DAO.Recordset
 
    EXP2XLS= False
 
    ' APRE SE ESISTE GIA' UN'OGGETTO EXCEL
    Set xlApp = CreateObject("Excel.Application")
 
    Set oWkb = xlApp.Workbooks.Add()
 
    If OpenDialog = True Then
 
        Do Until NomeFile <> ""
            NomeFile = xlApp.GetSaveAsFilename(InitialFilename:="C:
\TestExport.xls", _
                                               fileFilter:="Excel
Files (*.xls), *.xls", _
                                               Title:="SELEZIONA NOME
FILE")
 
            DoEvents
        Loop
 
    End If
 
    If Len(NomeFile) = 0 Then NomeFile = "C:\TestExport.xls"
 
    If EsisteFile(NomeFile) Then Kill NomeFile
 
    oWkb.SaveAs NomeFile, 43
 
    ' Elimino i Fogli che Excel crea di DEFAULT
    For x = oWkb.Sheets.Count To 2 Step -1
        oWkb.Sheets(x).Delete
    Next
 
    '
===============================================================================
    ' <<<<<<<<<  QUI' CAMBI IL NOME DEL FOGLIO >>>>>>>>>>>>>
    '
===============================================================================
    ' Assegno un nome al Foglio(Sheet) rimasto.
    oWkb.Sheets(1).Name = "MANUTENZIONI"
    '
===============================================================================
 
    Set rs = CurrentDb.OpenRecordset(SQL,dbOpenDynaset,dbReadOnly)
 
    ' Scrivo nella Cella A1
    oWkb.Sheets(1).Range("A1").CopyFromRecordset rs
 
    rs.Close
    Set rs = Nothing
 
    EXP2XLS= True
 
Exit_Here:
    oWkb.Save
    If CloseExcel Then
        oWkb.Close True
        xlApp.Quit
    Else
        xlApp.Visible = True
    End If
    Set oWkb = Nothing
    Set xlApp = Nothing
    Exit Function
 
Handle_err:
    MsgBox Err.Number & " " & Err.Description
    Resume Exit_Here
End Function
 
Public Function EsisteFile(ByVal str As String) As Boolean
    On Error Resume Next
    EsisteFile = (GetAttr(str) And vbDirectory) = 0
End Function
 
Quì invece trovi un DEMO per definire anche i Campi:
 
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=303
 
 
@Alex