Newsgroup: it.comp.appl.access
Titolo: uso di FileDialog ed esportazione in .xls

Sto usando l'oggetto FileDialog per effettuare l'esportazione dei dati
di una query in formato .xls tramite il seguente codice:
Private Sub cmdEsporta_Click()
   Dim fd As FileDialog
   Set fd = Application.FileDialog(msoFileDialogSaveAs)
   With fd
    .AllowMultiSelect = False
    .Show
   End With
   If fd.Show <> -1 Then Exit Sub
   End If
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "qry1",
fd.SelectedItems(1)
End Sub
Il tutto funziona bene, ma l'utente deve specificare assieme al nome
del file anche l'estensione ".xls".
Vorrei applicare il FileDialogFilter per limitare il tipo di file da
esportare in formato excel ma non saprei come fare.
Qualche suggerimento?
# vbaRstat #

Mi correggo, il codice corretto è il seguente:
 Private Sub cmdEsporta_Click()
 Dim fd As FileDialog
             Set fd = Application.FileDialog(msoFileDialogSaveAs)
             With fd
                 .AllowMultiSelect = False
                 If .Show <> -1 Then Exit Sub
             End With
             DoCmd.TransferSpreadsheet acExport,
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "qry1",
fd.SelectedItems(1)
 End Sub
Facendo in questo modo il file sarà salvato sempre il xls anche se
nella finestra di diaologo in corrispondenza di "tipo file" compare :
"Tutti i file (*.*)".
Vorrei applicare il FileDialogFilter facendo comparire solo "*.xls" in
corrispondenza di "tipo file".
Suggerimenti?
# vbaRstat #


Nel blocco With aggiungi:
        .Filters.Add "Tutti i file", "*.*"
        .Filters.Add "Excel", "*.xls"
Ciao
NatPP

Nat.P.P ha scritto:

Ciao NatPP,
ho provato con il tuo suggerimento ma mi dà il seguente errore:
errore number: 438
description error: Proprietà o metodo non supportato dall'oggetto
che succede? 
# vbaRstat #

Ho trovato questa kb:
http://support.microsoft.com/kb/282335/en-us
inizialmente credevo facesse proprio al caso mio, ma il problema non si
risolve.
msoFileDialogSaveAs  credo che sia  supportato dall'oggetto FileDialog,
ma credo che non sia supportata l'aggiunta di Filters. La cosa mi
sembra strana....bo!?
# vbaRstat #

 ha scritto nel messaggio 
news:1163063467.2...@i42g2000cwa.googlegroups.com...

Hai inserito i riferimenti alla libreria di Microsoft Office?
Ciao.
-- 
Sergio MAZZA 

 # vbaRstat #
Controlla quanto ti ha suggerito Sergio.
Il mio suggerimento deriva dal file di esempio di Access Nortwind.
La procedura applicata da questo db per la memorizzazione delle foto dei 
dipendenti, io l'ho applicata, ovviamente con gli opportuni adattamenti, ad 
un paio di miei db e il tutto mi funziona perfettamente.
Dagli un'occhiata e vedrai che riuscirai a risolvere anche tu.
Ciao
NatPP 

Per "riferimenti alla libreria" state parlando di Microsoft Office 11.0
Object Library  vero?
In tal caso i riferimenti ci sono :-( ma il problema non lo risolvo.
NatPP sei sicuro che l'esempio da cui ha preso il codice si riferisce a
msoFileDialogSaveAs e non a msoFileDialogFolderPicker ?
grazie a tutti per i suggerimenti
# vbaRstat #

 # vbaRstat #
Ciao.
-- 
Sergio MAZZA 


Ciao sergio,
ho usato esattamente il pezzo di codice che mi hai scritto associandolo
ad un pulsante di comando (evento click) ma ottengo sempre lo stesso
errore di oggetto non supportato. Quindi anche in questo caso il
problema sta nel:
dlgSaveAs.Filters.Add "pantegana", "*.pan" :-)
Comunque mi hai fatto notare che si può modificare il titolo e quindi
ci ho aggiunto:
dlgSaveAs.Title = "Salva in Excel"
e per lo meno l'utente si rende conto che sta salvando in Excel.
Visto che il problema non riesco a risolverlo, a questo punto il tutto
sarebbe risolto se riuscissi ad evitare nella maschera che viene
visualizzata (appunto l'oggetto FileDialog) il "pezzo" relativo a :
"Tipo file", lasciando quindi solo lo spazio in cui scrivere il nome
del file.
mille grazie per i suggerimenti, ho appreso molte cose da questa
discussione :-)
# vbaRstat #

 ha scritto nel messaggio 
news:1163148905.3...@i42g2000cwa.googlegroups.com...


 ha scritto nel messaggio 
news:1163148905.3...@i42g2000cwa.googlegroups.com...
Ciao sergio,
ho usato esattamente il pezzo di codice che mi hai scritto associandolo
ad un pulsante di comando (evento click) ma ottengo sempre lo stesso
errore di oggetto non supportato. Quindi anche in questo caso il
problema sta nel:
dlgSaveAs.Filters.Add "pantegana", "*.pan" :-)
Comunque mi hai fatto notare che si può modificare il titolo e quindi
ci ho aggiunto:
dlgSaveAs.Title = "Salva in Excel"
e per lo meno l'utente si rende conto che sta salvando in Excel.
Visto che il problema non riesco a risolverlo, a questo punto il tutto
sarebbe risolto se riuscissi ad evitare nella maschera che viene
visualizzata (appunto l'oggetto FileDialog) il "pezzo" relativo a :
"Tipo file", lasciando quindi solo lo spazio in cui scrivere il nome
del file.
mille grazie per i suggerimenti, ho appreso molte cose da questa
discussione :-)
# vbaRstat #
[risposta]
(M'é partito il dito)
Ma non fai prima a impostare tu il percorso\nome del file?
Altrimenti puoi utilizzare l'altro esempio di Alessandro con le API:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=27
Oppure: 
www.sitocomune.com
 Sezione Modules:
- 5.42
- 5.5
Ciao.
-- 
Sergio MAZZA 


mi chiedi troppo ora :-) non so nemmeno cosa si intende con API
cmq provo a darci un'occhiata
grazie ancora

 ha scritto nel messaggio 
news:1163152493.4...@i42g2000cwa.googlegroups.com...
non capisco come, dammi un suggerimento, non ti chiedo tutto il codice
:-)
considera che sarà l'utente a scegliere nome e indirizzo del file.
Questo indirizzo, a sua volta, è utilizzato per
.....DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9....
e salvare una query in excel dove ha deciso lui :-)
[risposta]
Mhmm..
mi chiedi troppo ora :-) non so nemmeno cosa si intende con API
cmq provo a darci un'occhiata
grazie ancora
[risposta]
Con le API basta che segui le istruzioni.
Comunque siamo qui...
Ciao.
-- 
Sergio MAZZA