Buongiorno a tutti,
ho il seguente codice in un eseguibile che si avvia con le utilità di pianificazioni windows:
Dim PrcProcesso As System.Diagnostics.Process()
        Me.Hide()
        Do
            PrcProcesso = Process.GetProcessesByName("MSACCESS")
            If (PrcProcesso.Length > 0) Then
                PrcProcesso(0).Kill()
                System.Threading.Thread.Sleep(300)
            End If
        Loop While (PrcProcesso.Length > 0)
        Shell("rundll32.exe url.dll,FileProtocolHandler C:\dati\aggiorna.accdb", AppWinStyle.MaximizedFocus)
        Close()
che a inizio esecuzione controlla che non ci siano processi MSACCESS in esecuzione, in caso ci siano li termina ed avvia un db che effettua delle operazioni e a termine operazioni effettua la compattazione del database visto che movimenta un numero elevato di dati.
Ha sempre fatto il lavoro in modo corretto ma sta capitando da un mesetto a questa parte che alla chiusura il db non viene rilasciato in tempo e quindi non riesce a chiudersi e di conseguenza a compattarsi restando appeso con un messaggio di errore che indica lo stato di compattazione non possibile...
come posso far si che l'eseguibile venga scaricato dalla memoria e rilasci il db prima della compattazione?
grazie!