2017-11-30 9 views
0

Ich versuche, Daten aus meiner Access-Datenbank in eine Excel-Arbeitsmappe zu exportieren. Alles funktioniert gut, außer dass ich Excel nicht richtig herunterfahren kann, nachdem der Export abgeschlossen ist. Wenn ich den Task-Manager öffne, nachdem der Code ausgeführt wurde, wird eine Instanz von Microsoft Excel immer unter Hintergrundprozesse aufgeführt. Ich habe verschiedene Kommentare gelesen, die darauf hinweisen, dass das Problem möglicherweise darin besteht, dass zwischen dem Erstellen des ursprünglichen Excel.Application-Objekts und dem Versuch, es zu schließen, eine andere Excel.Application erstellt wird. Daher habe ich den Code so weit reduziert, dass er lediglich ein Excel.Application-Objekt erstellt und schließt. Immer noch das gleiche Ergebnis.Microsoft Access 2016: Beenden von Excel.Application

Dies ist mein Code:

Sub testexcel() 

    Dim xl As Excel.Application 

    Set xl = Excel.Application 

    xl.Quit 

    Set xl = Nothing 

End Sub 

ich irgendwelche Vorschläge zu schätzen wissen würde, was muss ich Excel richtig zu schließen erhalten ändern. Vielen Dank!

+3

Mögliche Duplikat [Excel.Application Objekt .Quit verlässt EXCEL.EXE Lauf] (https://stackoverflow.com/questions/42113082/excel-application-object-quit-leaves-excel-exe-running) –

+0

Ähnlich wie https://stackoverflow.com/questions/17777545/closing-excel-application-process-in-c-sharp-after-data-access –

+0

[Diese Antwort] (https://stackoverflow.com/a/46082446/7296893) könnte ebenfalls nützlich sein –

Antwort

0

Sie geben an, dass Sie versuchen, Daten aus meiner Access-Datenbank zu exportieren - aber Sie sagen nicht, wie - und es gibt mehr als 1 Möglichkeit, dies zu tun.

In Access hat die Registerkarte External des Ribbons die Exportfunktion. Wenn Sie den Datensatz (Tabelle oder Abfrage) auf dem Bildschirm öffnen und dann manuell einen Export mit dieser Funktion ausführen, sollte die Excel-Anwendung überhaupt nicht geöffnet werden. Haben Sie Vernunft über diesen Ansatz überprüft?

0

Verwenden Sie stattdessen CreateObject("Excel.Application").

Sub testexcel() 

    Dim xl As Excel.Application 

    Set xl = CreateObject("Excel.Application") 

    Stop ' so you can see in Task Manager/Process Explorer that EXCEL.EXE is there 

    xl.Quit 
    Set xl = Nothing 
    ' and it's gone 

End Sub