Newsgroup: it.comp.appl.access
Titolo: Automatiscmo da Access a Excel

Salve a tutti .
Ho scitto il seguente codice per riempire le celle di un foglio
Excel ,con i campi vuoti che uso come modello , con i dati di un
record di access, in risposta all'evento clik di un pulsante di una
maschera :
Private Sub Comando0_Click()
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Open("C:\Prova.xls")
 With foglioExcel
    Set foglioExcel = Excel.Worksheets.Item(1)
    foglioExcel.Cells(6, 23).Value = Me.nome
    foglioExcel.Cells(13, 7).Value = Me.cognome
  End With
End Sub
L'automatismo funziona .... poi da Excel ormai aperto salvo il nuovo
file e tutto OK.
Chiudo Excel manualmente e mi ritrovo nuovamente in access nella
stessa maschera con il pulsante che genera l'automatismo ma è ora che
succede il problema :
se clicco nuovamente sul pulsante per copiare i dati di un nuovo
record sullo stesso foglio Excel ( "Prova.xls") pare che si riapra
l'applicazione Excel , ma istantaneamente diventa invisibile come se
esistese già un'istanza dell'applicazione già aperta ( condizione che
in effetti credo sia vera) .
Cosa devo aggiungere nel mio codice perchè possa chiudere tutte le
istanze Excel o fogli Excel o schede Excel e ricominciare come se
fosse la prima volta ?
Grazie a tutti per l'aiuto


DIMENTICAVO COSA IMPORTANTISSIMA : se chiudo access e lo riapro tutto
si resetta come se fosse la prima volta ( proprio quello che vorrei
fare io via codice !!! )

 Grazie a tutti per l'aiuto
Prova ad aggiungere:
cartExcel.Close True
Bruno

 Bruno
Grazie Bruno , ho proato ma niente da fare si comporta nello stesso
modo
Attendo altri gentili suggerimenti.
Grazie a tutti

 Grazie a tutti
=====================================
Private Sub Command0_Click()
Dim appExcel As New Excel.Application
Dim cartExcel As Excel.Workbook
Dim foglioExcel As Excel.Worksheet
'appExcel.Visible = True
Set cartExcel = Excel.Workbooks.Open("C:\Prova.xls")
With foglioExcel
    Set foglioExcel = Excel.Worksheets.Item(1)
    foglioExcel.Cells(6, 1).Value = Me.Nome
    foglioExcel.Cells(6, 2).Value = Me.Cognome
End With
cartExcel.Close True
End Sub
===================================
Da me questo funziona senza alcun problema.
Devi comunque togliere quel:
appExcel.Visible = True
Bruno


Grazie Bruno , ma c'è comunque qualcosa che non mi torna :
Innanzi tutto la sessione Excel non la visualizzo , e qs. invece mi
occorre , perchè devo poter vedere il foglio di lavoro una volta
compilato in automatico con i campi del record di Access.
Quindi ho rimesso la riga
appExcel.Visible = True
 e ho tolto la riga
cartExcel.Close True
Se poi dopo l'esecuzione dell'automatismo chiudo solo il foglio di
lavoro e lascio aperto Excel , tutto OK , ma prova a chiudere anche
Excel ??
Non si riesce a vedere più il foglio di lavoro e se lo vai ad aprire
manualmente ( avviando ad esempio Excel e poi cercando il file ) il
messaggio di notifica dice che è già in esecuzione eppure è invisibile
sullo schermo!!
Sinceramente sono il alto mare.
Riesci a spiegarmi cosa succede ?
Grazie

 Set foglioExcel = Excel.Worksheets.Item(1)
in quel modo apri due oggetti excel, per questo riscontri i problemi che hai 
descritto.
Fai le opportune correzioni e vedrai che tutto funziona.
-- 
Ciao
Geppo