Esportazione da excel a access: piccolo problema!

giovedì 20 settembre 2007 - 16.11

basicdany Profilo | Expert

salve eseguo l'esportazione di alcuni dati in excell 2003, grazie a un forum aperto e chiuso qui stesso, anzi vi ringrazio tanto per l'aiuto che date sempre.!!!

Ho un problema se non chiudo l'applicazione non posso aprire il file excel, perche ho notato che rimane in memoria sul pc, si nota infatti nel task manager ecco la procedura, dovrei quindi trovare il modo di chiudere oggetto excell aperto:

Dim n As Integer
Dim i As Integer

'creo una nuova istanza dell'oggetto Excel Application
Dim appExcel As Excel.Application
'dichiaro una cartella di lavoro
Dim wbookExcel As Excel.Workbook
'dichiaro un foglio di lavoro
Dim foglioExc As Excel.Worksheet

appExcel = New Excel.Application
foglioExc = New Excel.Worksheet

'rendo visibile il foglio excel (apro l'applicazione)
appExcel.Visible = False
appExcel.Workbooks.Add()

'Apro il file excel usato come modello
wbookExcel = appExcel.Workbooks.Open(CurDir() + "\Cartel1.xls")

'Vado a lavorare sul foglio desiderato della cartella
'indicandone il nome
foglioExc = appExcel.Worksheets("foglio1")

'Inserisco i dati nelle celle desiderate con un un ciclo annidato:

foglioExc.Cells(1, 1).Value = "prova scrittura1 1"

foglioExc.Cells(1, 2).Value = "prova scrittura1 2 "

foglioExc.Cells(1, 3).Value = "prova scrittura1 3"

foglioExc.Cells(2, 1).Value = "prova scrittura2 1"

foglioExc.Cells(2, 2).Value = "prova scrittura2 2"

foglioExc.Cells(2, 3).Value = "prova scrittura2 3"

'Salvo con un altro nome cosi non altero il modello
foglioExc.SaveAs(CurDir() + "\prova.xls")

'chiudo
appExcel.Quit()

grazie a tutti.

Cteniza Profilo | Guru

Prova ad utilizzare il comando
System.Runtime.InteropServices.Marshal.ReleaseComO bject (appExcel)
su tutti gli oggetti excel con il criterio LIFO
Prova inoltre ad isolare tutto il tuo codice in un blocco using esempio:
Using appExcel As Excel.Application
...
End Using

basicdany Profilo | Expert

Ciao, ho provato a usare il comando da te dato, ma excel rimane sempre aperto in memoria, tengo a precisare che riesco a chiudere excel solo quando si chiude il form.

grazie se puoi aiutami,

caio

basicdany Profilo | Expert

Ciao, nessuno puoi aiutarmi a risolvere il problema.

grazie a tutti.

Cteniza Profilo | Guru

Prova a:
1) isolare il codice in una classe autonoma fuori dalla form
2) inserire il codice in un blocco using
Using exapp As New Excel.Application
definisci un oggetto per ogni tipologia di oggetti
esempio no exapp.Range(...) ma
Dim myrange As ...
...
...
releasemarshall con il criterio lifo, exel per ultimo
End Using

basicdany Profilo | Expert

ciao, la prima prova da te scritta lo fatta e continua a darmi lo stesso problema, la seconda di usare using, puoi indicarmi come utilizzare l'using, non ho mai avuto modo di usarla.
grazie, altrimenti cerchero prima come imparare a usare l'using.

grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5