Newsgroup: it.comp.lang.visual-basic
Titolo: Chiusura Excel.Application

Provo anche qui, visto che siamo "cugini".
Ho un'applicazione scritta in Access97 che legge delle anagrafiche da un
foglio Excel e esporta i dati letti in un database SQLserver.
L'applicazione funziona e non da nessun problema, se il foglio contiene
poche righe (meno di un centinaio), ma oltre, nonostante l'esecuzione
elabori correttamente, lascia attivo Excel nel Task Manager.
Il codice che chiude l'applicazione Excel è il seguente:
    Set wkSh = Nothing
    wkBk.Close
    Set wkBk = Nothing
    oApp.Application.Quit
    Set oApp = Nothing
    Exit Sub
Ho già postato nei NG Access, ma nonostante i molti aiuti ricevuti, non c'è
stato modo di eliminare excel.
Ho verificato in internet in vari forum e ho notato che molti hanno avuto
l'identico problema, e scorrendo ho visto che hanno adottato numerose
soluzioni, ma anche loro pare non abbiano risolto il problema.
Qualcuno in questo NG ha avuto un problema analogo e l'ha risolto?
Grazie
Ciao
Eugenio

 [SNIP]
Anche se mi pare strano e' possibile che qualche operazione che compi
nell'esportazione sia asincrona e molto lunga e che quando invochi la
chiusura gli oggetti "in uso" rimangano ancora in uso nonostante la chiusura
di Excel, impedendone lo scaricamento corretto dalla memoria. Se trasferisci
singole celle, potresti copiarle in stringhe prima di passarli alle routine
di inserimento nel DB, piuttosto che usare direttamente gli oggetti del
documento Excel.
In alternativa potrebbe esserci (e questo e' il caso piu' comune) un'altra
variabile che hai scordato ma che tiene "appeso" Excel.
Cell, Row, Range, Worksheet, Workbook, Application, qualunque variabile va
Chiusa con il metodo corrispondente (se c'e') e messa a Nothing,
possibilmente con ordine "matrioska" (dal piu' "piccolo" al piu' "grande")
hth,
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org

 un'altra variabile che hai scordato ma che tiene "appeso" Excel.
non ho visto il codice di eugenio, ma se dice che con poche righe tutto
funziona correttamente, e con molte la cosa si "ingrippa", dubiyo che il
problema possa essere questo.
ho personalmente sperimentato la stessa situazione di eugenio, e nonostante
tutti gli accorgimenti adottati, comprese pause tra una chiusura e l'altra,
non sono riuscito a risolvere.
ho il sospetto, non suffraggato da alcuna informazione concreta, che il
problema sia dato da un baco di excel (comodo poter dare la colpa agli altri
:-) )
eugenio, che versione di excel usi?
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 ha scritto nel messaggio
news:2hlhjcF...@uni-berlin.de...

Ciao Sergio
In azienda utilizziamo Office 97 Sp2
In effetti credo anch'io sia un baco di excel, perchè facendo ricerche in
internet ho trovato in questi forum problemi identici al mio.
Credo che il problema si verifichi, quando si legge il contenuto delle
celle.
http://forums.devshed.com/archive/t-86272
http://www.experts-exchange.com/Programming/Q_20960219.html
ed in particolare il seguente relativo alla dimensione del foglio di excel,
infatti il mio è 3 Mb
http://www.vbip.com/forum/topic.asp?id=6496
Mah! Speriamo di trovare qualcuno che abbia risolto in qualche modo il
problema.
Grazie
Ciao
Eugenio

Set DBfo = OpenDatabase(strFile, False, False, "Excel 5.0;HDR=YES;")
prova e vediamo cosa succede



E' possibile vedere il post completo?
Grazie
Ciao
Eugenio

 E' possibile vedere il post completo?
sě, su google :-)


In merito a quel post ho trovato solo quelle due righe.
Comunque sto provando ad utilizzare il foglio di excel come tabella
collegata ad access, ma si verifica un altro problema.
Quella che segue č la sub che collega il foglio di Excel. Sembra tutto
giusto, confrontandolo con esempi disponibili di Microsoft e con altri
presenti nel web, ma mi viene evidenziato questo errore
"3011 - Il modulo di gestione di Microsoft Jet non č riuscito a trovare
l'oggetto 'Foglio1'.
Assicurarsi che l'oggetto esista e che il nome e il percorso siano digitati
correttamente."
quando faccio l'append
Di seguito mostro la mia sub
***********************************************+
Private Sub Foglio_AfterUpdate()
Dim db As DAO.DATABASE
Dim td As DAO.TableDef
On Error GoTo Err_Foglio_AfterUpdate
    'Allega il foglio selezionato
    Set db = CurrentDb
    Set td = db.CreateTableDef("ClientiExcel")
    td.Connect = "Excel 8.0; DATABASE=" & Me!Percorso & ";HDR=Sě"
    td.SourceTableName = Me!Foglio
    db.TableDefs.Append td
    Set td = Nothing
Exit_Foglio_AfterUpdate:
    Exit Sub
Err_Foglio_AfterUpdate:
    MsgBox ERR.number & ", " & ERR.description
    Resume Exit_Foglio_AfterUpdate
End Sub
***********************************************************
Cosa mi sfugge?
Grazie
Ciao
Eugenio

     td.SourceTableName = Me!Foglio
perchč ho dimenticato il carattere $ dopo il nome del foglio.
td.SourceTableName = Me!Foglio & "$"


 td.SourceTableName = Me!Foglio & "$"
da questo possiamo arguire che sei riuscito nel tuo intento?
se sě, complimenti, la prossima volta che mi succede una cosa del genere, so
come comportarmi :-)
