Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Mi sono fidato del post sopra riportato.
GRAZIE COME SEMPRE!!!
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Ho trovato questo esempio:
_______________________________________________________________________
DoCmd.OutputTo acOutputQuery, strSQL, "Microsoft Excel (*.xls)", NomeFoglioDati, -1
strSQL è la stringa sql o il nome della query.
Nome foglio dati sosttuiscilo con "C:\nomecartelle\prova.xls"
_______________________________________________________________________
Io non riesco a farlo funzionare (Errore di runtime 3011 - il motore di database non e' in grado di trovare l'oggetto 'Select......) .
Ho una maschera che filtro tramite 5 combo, alla fine della mia ricerca, vorrei esportare i dati contenuti nella maschera in Excel.
Private Sub Esporta_Excel_Click()
Dim Miosql As String, DesktopPath As String, xlfile As String
DesktopPath = Environ("userprofile") & "\Desktop"
Select Case Me.TABScadenze.Value
Case 0
Miosql = Me.Scadenze_TB_contratto_pratiche.Form.RecordSource
Case 1
Miosql = Me.Scadenze_TB_contratto_formazione.Form.RecordSource
Case 2
Miosql = Me.Scadenze_TB_contratto_fatture.Form.RecordSource
End Select
DoCmd.OutputTo acOutputQuery, Miosql, "Microsoft Excel (*.xls)", "C:\prova.xls", -1
Shell "Excel.exe " & "C:\prova.xls", vbNormalFocus
End Sub
GRAZIE PER L'AIUTO!!!
Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Risposta accettata dall'autore della domanda
Mi sono fidato del post sopra riportato.
GRAZIE COME SEMPRE!!!
Risposta accettata dall'autore della domanda
Non puoi utilizzare il metodo OutpuTo passadogli il codice SQL.
Devi "girarci intorno". Ad esempio così
Private Sub Esporta_Excel_Click()
Dim Miosql As String
Dim qdf As DAO.QueryDef
Dim db As DAO.Database
Dim DesktopPath As String
Set db = CurrentDb
DesktopPath = Environ("userprofile") & "\Desktop"
Select Case Me.TABScadenze.Value
Case 0
Miosql = Me.Scadenze_TB_contratto_pratiche.Form.RecordSource
Case 1
Miosql = Me.Scadenze_TB_contratto_formazione.Form.RecordSource
Case 2
Miosql = Me.Scadenze_TB_contratto_fatture.Form.RecordSource
End Select
' Crea una query temporanea
Set qdf = db.CreateQueryDef("TempQuery", Miosql)
DoCmd.OutputTo acOutputQuery, "TempQuery", "Microsoft Excel (*.xls)", DesktopPath & "NomeFoglioExcel.xls", True
'Elimino la query temporanea
db.QueryDefs.Delete ("TempQuery")
db.QueryDefs.Refresh
Set qdf = Nothing
db.Close
Set db = Nothing
End Sub
la riga Shell "Excel.exe " & "C:\prova.xls", vbNormalFocus è inutile in quanto hai già specificato l'autostart di excel come ultima opzione del metodo OutputTo
David
Hai ragione.
Non avevo letto la precisazione di KARL, e non avrei dovuto dubitare in un suo errore.
Non lo conosco ma da quanto ho letto in questi mesi dovrebbe essere un vero esperto.
GRAZIE COME SEMPRE!
Mi sono fidato del post sopra riportato.
Nel post in verità c'era la soluzione corretta: leggi attentamente la parte in cui Karl dice:
....
OutputTo solo accetta il nome di un oggetto salvato.
Vuol dire che devi usare il nome di una query salvata:
...
Tuttavia la soluzione che ti ho prospettato della query "al volo" a mio avviso è più aderente al tuo problema in quanto con una query fissa salvata avresti comunque avuto l'esigenza di modificare il suo SQL per adeguarlo al recordsource della maschera scelta in base al valore di TABScadenze.
Ciao
David