Interazione tra access ed Excel

di fabionik2004 il
4 risposte

Ciao a tutti,

ho un codice all'apertura di un report, che scrive dei valori in alcune celle di un file excel, poi legge il risultato di alcuni campi calcolati.

Non mi serve salvare il file.

Il problema é che quando spengo il computer mi viene l'arressto é bloccato dal processo excel che rimane aperto.

Questo é il codice che ho utilizzato

cosa dimentico?

Dim programma As Excel.Application
Dim cartella As Excel.workbook
Dim foglio As Excel.Worksheet
Set programma = CreateObject("excel.application")
Set cartella = programma.Workbooks.Open("C:\test\calculator.xlsx")
Set foglio = cartella.Sheets(1)
foglio.Cells(6, 4) = Me.txtmed
Report1!txtMCC = Format((foglio.Cells(15, 11) * 100), "0.000")
cartella.Close SaveChanges:=False

4 Risposte

  • Alla fine

    programma.Quit

    Set programma = Nothing

  • Prima cosa... che calcolo spaziale fa Excel che non puoi fare con Access...?

    Di fatto non chiudi Excel.

    Io userei questo per chiudere l'istanza aperta:

    cartella.Close False
    Set cartella = Nothing
    programma.Quit
    Set programma = Nothing
  • Ciao,

    partendo dall'ultimo per arrivare al primo è sempre buona norma chiudere e rilasciare tutti gli oggetti che hai utilizzato.

    Questo va sempre fatto in ogni scenario per qualsiasi tipo di oggetto.

    in questo caso:

    ' Releasing objects
    Set foglio = Nothing
    Set cartella = Nothing
    
    ' Closing Excel
    programma.Quit
    Set programma = Nothing

    https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/nothing-keyword?utm_source=chatgpt.com
    https://learn.microsoft.com/en-us/office/vba/api/excel.application.quit?utm_source=chatgpt.com

  • 03/04/2025 - @Alex ha scritto:

    Prima cosa... che calcolo spaziale fa Excel che non puoi fare con Access...?

    Di fatto non chiudi Excel.

    Io userei questo per chiudere l'istanza aperta:

    cartella.Close False
    Set cartella = Nothing
    programma.Quit
    Set programma = Nothing

    eheh si tratta proprio di un calcolo spaziale, é un lavoro di qualche ora per rifare lo stesso calcolo su excell, sono prese in considerazioni centinaia di variabili. Quindi faccio prima a sfruttare il foglio excel gia pronto

Devi accedere o registrarti per scrivere nel forum
4 risposte