Imports System.Data Imports System.Data.SqlClient Imports System.Data.SqlTypes Imports System.IO Imports System.Data.OleDb Imports System.Threading Imports System.Windows.Forms Public Class clsImport Dim m_dsdaten As DataSet Property dsdaten As DataSet Get Return m_dsdaten End Get Set(value As DataSet) m_dsdaten = value End Set End Property Sub New() Me.m_dsdaten = New DataSet End Sub Public Function Import_file() As Boolean Dim openfdialog As New OpenFileDialog openfdialog.Filter() = "Excel-Dateien (*.xlsx)|*.xlsx|Excel-Dateien (*.xls)|*.xls|CSV-Dateien (*.csv)|*.csv|Text-Dateien (*.txt)|*.txt|Alle Dateien (*.*)|*.*" openfdialog.FilterIndex = Globals.defaultextension If openfdialog.ShowDialog() <> DialogResult.OK Then Return False End If FillDataTableFromText(openfdialog.FileName) Return True End Function Private Function FillDataTableFromText(ByVal file As String) As DataTable Select Case UCase(Microsoft.VisualBasic.Right(file, 3)) Case "CSV" Dim csv As New MyNameSpace.CSVDataAdapter(file, True, ";") csv.Fill(Me.dsdaten) 'Rel 4.03 3: Wenn die erste Spalte <> "Parternr" dann Meldung ausgeben und alle Rows löchen Me.dsdaten.Tables(0).TableName = "empfdatatable" Case "TXT" Dim csv As New MyNameSpace.CSVDataAdapter(file, True, ";") csv.Fill(Me.dsdaten) Me.dsdaten.Tables(0).TableName = "empfdatatable" Case "XLS" If oledbimport(file, "XLS") Then Me.dsdaten.Tables(0).TableName = "empfdatatable" End If Case "XLSX" If oledbimport(file, "XLSX") Then Me.dsdaten.Tables(0).TableName = "empfdatatable" End If End Select 'Rel. Office Migration If UCase(Microsoft.VisualBasic.Right(file, 5)) = ".XLSX" Then If oledbimport(file, "XLSX") Then Me.dsdaten.Tables(0).TableName = "empfdatatable" End If End If Dim dv As DataRow End Function Private Function oledbimport(ByVal file As String, ByVal filetype As String) As Boolean Dim dt As New DataTable() Dim conn As OleDbConnection Dim sql As String Dim FileConnection As String Dim oda As New OleDbDataAdapter() Dim msg As String Select Case filetype Case "XLS" Try Dim xls As New XLSLib.clsXLSLib dt = xls.Get_Excel(file) Me.dsdaten.Tables.Add(dt) Return True Catch ex As Exception MsgBox(ex.Message) End Try Case "XLSX" Try Dim xls As New XLSLib.clsXLSLib dt = xls.Get_Excel(file) Me.dsdaten.Tables.Add(dt) Return True Catch ex As Exception MsgBox(ex.Message) End Try End Select Try Try conn = New OleDbConnection() conn.ConnectionString = FileConnection conn.Open() Catch ex As Exception msg = ex.Message End Try oda = New OleDbDataAdapter(sql, conn) oda.Fill(dt) 'Rel 4.03 4: Sofern die erste Spalte der importierten Daten keine Partnernummer ist, Meldung ausgeben If dt.Columns(0).Caption <> "Partnernr" Then ' MyMsg.show_standardmessage(50001, MsgBoxStyle.Exclamation) dt.Rows.Clear() End If Me.dsdaten.Tables.Add(dt) Return True Catch ex As Exception Finally oda.Dispose() conn.Dispose() End Try End Function Private Function Get_Sheetname(ByVal excelfile As String) As String Dim f As New frmExcelSheets f.ExcelFile = excelfile f.ShowDialog() If f.DialogResult = Windows.Forms.DialogResult.OK Then Return f.ExcelSheet Else Return "" End If End Function End Class