Excel-Prozess endet nicht

bastiglasl

Erfahrenes Mitglied
Wunderschönen Guten Morgen!

Ich erstelle eine Excel-Mappe, lese dann Daten ausm SQL-Server und übergebe schließlich die Daten in die Excel-Mappe. Tritt nun beim Sammeln der Daten ein Fehler auf, möchte ich gern die Excel-Mappe ohne Meldung einfach schließen und beenden. Jedoch bleibt mir immer der Excel-Prozess noch im Speicher laufen.... Wie kann ich den bei einem Fehler beenden?

Hier kommt noch a bisserl Code zur Veranschaulichung:

Code:
Private Function move2Xls(ByVal sXltFile As String, ByVal sArrSQLStatemnets As ArrayList) As Boolean
        Dim oXLSAppl As Global.Excel.Application
        Dim oXLSMappe As Global.Excel.Workbook
        Dim oXLSBlatt As Global.Excel.Worksheet
        Dim oXLSZelle As Global.Excel.Range
        Dim iZeilen As Integer


        oXLSAppl = New Global.Excel.Application
        Try
            'Öffnen der Datenbank
            '[...]
            'Öffnen der XLS-Datei
            oXLSAppl.Visible = False
            oXLSMappe = oXLSAppl.Workbooks.Open(sXltFile)

            For Each sArrSQL As String() In sArrSQLStatemnets
                oXLSBlatt = oXLSMappe.Worksheets(sArrSQL(1))
                oXLSZelle = oXLSBlatt.Range(sArrSQL(2))
                iZeilen = oXLSZelle.CurrentRegion.Rows.Count

                'an dieser Stelle werden die Daten aus derDatenbank geholt und
                'Zeile für Zeile in die Excel-Tabelle geschrieben

                While Not rsKWP.EOF
                    For i As Integer = 0 To rsKWP.FieldsCount - 1
                        oXLSZelle.Offset(iZeilen, i).Value = rsKWP.Field(i)
                    Next
                    rsKWP.MoveNext()
                    iZeilen += 1
                End While
            Next
            'Wenn alles geklappt hat XLS-Mappe anzeigen
            oXLSAppl.Visible = True
        Catch ex As Exception
        'Bei einem Fehler soll die XLS-Mappe einfach geschlossen werden.
            oXLSAppl.Quit()
            oXLSAppl = Nothing
         'Prozess hängt immer noch im Speicher :(
            Return False
        End Try
        Return True
    End Function
 

Neue Beiträge

Zurück