Hallo zusammen,
bei meinem folgendem Code wird der Excel Prozess in der "Private Sub Excel_Passwort_oeffnen()" nicht nach der Ausführung geschlossen.
Nach mehrmaligen ausführen der Funktion fragt Excel das Passwort ab
Erst nach beenden des Programmes verschwindet der Prozess aus dem Taskmanager.
Er soll aber nach beenden der Funktion sofort geschlossen werden.
Danke für eure Hilfe
bei meinem folgendem Code wird der Excel Prozess in der "Private Sub Excel_Passwort_oeffnen()" nicht nach der Ausführung geschlossen.
Nach mehrmaligen ausführen der Funktion fragt Excel das Passwort ab
Erst nach beenden des Programmes verschwindet der Prozess aus dem Taskmanager.
Er soll aber nach beenden der Funktion sofort geschlossen werden.
Danke für eure Hilfe
Visual Basic-Quellcode
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Excel_Passwort_oeffnen()
- End Sub
- Private Sub Excel_Passwort_oeffnen()
- Try
- Dim xlApp As New Excel.Application
- Dim xlMappe = xlApp.Workbooks.Open(Application.StartupPath & "\Prodkon.xlsx", Password:="Passwort")
- xlApp.Visible = False
- xlApp.DisplayAlerts = False
- LoadExcelFile("Prodkon.xlsx", "Prod-Kon-Liste")
- xlMappe.Saved = False
- xlMappe.Close()
- xlApp.Quit()
- xlApp = Nothing
- GC.Collect()
- GC.WaitForFullGCComplete()
- Catch ex As Exception
- MessageBox.Show(ex.Message.ToString)
- End Try
- End Sub
- Private Function LoadExcelFile(ByVal path As String, ByVal table As String) As DataSet
- Try
- Dim connString As String
- If path.ToLower.EndsWith(".xlsx") Then
- connString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & path & "; Extended Properties=Excel 12.0;"
- Else
- connString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & path & "; Extended Properties=Excel 8.0;"
- End If
- Using myConnection = New OleDb.OleDbConnection(connString)
- Dim myCommand As OleDb.OleDbDataAdapter
- myCommand = New OleDb.OleDbDataAdapter("select * from [" & table & "$] WHERE Logik LIKE 'ja'", myConnection)
- myCommand.TableMappings.Add("Table", "TestTable")
- dtSet = New DataSet
- myCommand.Fill(dtSet)
- Me.DataGridView1.DataSource = dtSet.Tables(0)
- myConnection.Close()
- End Using
- Catch ex As Exception
- MessageBox.Show(ex.Message.ToString)
- End Try
- Return dtSet
- End Function