Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports System.ComponentModel Imports System.Drawing Imports System.Drawing.Color Imports System.IO Imports System.Threading Imports System.Windows.Forms Imports System.Data.OleDb Public Class Form1 Dim dsdaten As New DataSet Dim HasErrors As Boolean = False Dim HasError As Boolean = False Dim db As New DB Dim Resulttext As String = "" Dim dbconn As New DB_Connection Private Sub SchliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SchliessenToolStripMenuItem.Click Me.Close() End Sub Private Sub ExcelImportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExcelImportToolStripMenuItem.Click dsdaten.Tables.Clear() Me.OpenFileDialog1.Filter = "Excel-Dateien (*.xlsx)|*.xlsx|Excel-Dateien (*.xls)|*.xls|CSV-Dateien (*.csv)|*.csv|Text-Dateien (*.txt)|*.txt|Alle Dateien (*.*)|*.*" Me.OpenFileDialog1.FileName = "" Me.OpenFileDialog1.ShowDialog() If Me.OpenFileDialog1.FileName = "" Then Exit Sub FillDataTableFromText(Me.OpenFileDialog1.FileName) Try Me.C1Daten.DataSource = Nothing Me.C1Daten.DataSource = dsdaten.Tables(0) Me.C1Daten.DataMember = dsdaten.Tables(0).TableName If Me.C1Daten.Splits(0).Rows.Count > 0 Then Me.VerarbeitenToolStripMenuItem.Enabled = True Me.HasErrors = False Me.HasError = False Me.txtResultat.Text = "" Me.Resulttext = "" Catch End Try End Sub Private Function FillDataTableFromText(ByVal file As String) As DataTable Select Case UCase(Microsoft.VisualBasic.Right(file, 3)) 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 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 = DialogResult.OK Then Return f.ExcelSheet Else Return "" End If End Function Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub VerarbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VerarbeitenToolStripMenuItem.Click For Each r As DataRow In Me.dsdaten.Tables(0).Rows check_doktyp(r.Item(0)) check_ma(r.Item(1)) ' Check_Ma(r.Item(2)) If HasError Then HasErrors = True HasError = False End If Next If HasErrors Then Me.Resulttext = Me.Resulttext + vbCrLf + vbCrLf + "Verarbeitung aufgrund von Fehlern nicht durchgeführt." Me.txtResultat.Text = Me.Resulttext Exit Sub End If 'For Each r As DataRow In Me.dsdaten.Tables(0).Rows ' check_doktyp_ma(r.Item(0), r.Item(1)) ' If HasError Then ' HasErrors = True ' HasError = False ' End If 'Next If HasErrors Then Me.Resulttext = Me.Resulttext + vbCrLf + vbCrLf + "Verarbeitung aufgrund von Fehlern nicht durchgeführt." Me.txtResultat.Text = Me.Resulttext Exit Sub End If For Each r As DataRow In Me.dsdaten.Tables(0).Rows update_doktyp_ma(r.Item(0), r.Item(1)) If HasError Then HasErrors = True HasError = False End If Next If HasErrors Then Me.Resulttext = Me.Resulttext + vbCrLf + vbCrLf + "Verarbeitung aufgrund von Fehlern nicht durchgeführt." Me.txtResultat.Text = Me.Resulttext Exit Sub End If Me.Resulttext = Me.Resulttext + vbCrLf + vbCrLf + "Verarbeitung durchgeführt." Me.txtResultat.Text = Me.Resulttext End Sub Sub check_doktyp(ByVal doktypnr As Integer) If db.Get_DokumentTYP(doktypnr) = False Then Resulttext = Resulttext + vbCrLf + "Dokumenttyp Nr: " + doktypnr.ToString + " nicht vorhanden" HasError = True End If End Sub Sub Check_Ma(ByVal Manr As Integer) If db.Get_Mitarbeiter(Manr) = False Then Resulttext = Resulttext + vbCrLf + "Mitarbeiter Nr: " + Manr.ToString + " nicht vorhanden order inaktiv" HasError = True End If End Sub Sub check_doktyp_ma(ByVal doktypnr As Integer, ByVal manr As Integer) If db.Get_Doktyp_Ma(doktypnr, manr) = False Then Resulttext = Resulttext + vbCrLf + "Mitarbeiter Nr: " + manr.ToString + " ist nicht Fachverantowortlich vom Doktyp Nr: " + doktypnr.ToString HasError = True End If End Sub Sub update_doktyp_ma(ByVal doktypnr As Integer, ByVal manr As Integer) If db.Update_Doktype(doktypnr, manr) = False Then Resulttext = Resulttext + vbCrLf + "Update Dokumenttyp Nr: " + doktypnr.ToString + " fehlerhaft" HasError = True Else Resulttext = Resulttext + vbCrLf + "Update Dokumenttyp Nr: " + doktypnr.ToString + " durchgeführt" End If End Sub End Class