Public Class frmMass_Change Private Sub frmMass_Change_Load(sender As Object, e As EventArgs) Handles Me.Load Try SUCCESSFULL = False Dim msg = "Anzahl zu ändernde Datensätze: " If USER_LANGUAGE <> "de-DE" Then msg = "Count of records to be changed:" End If lblCount.Text = msg & MASS_RECORD_IDs2CHANGE.Count cmbColumn.Items.Clear() For Each Str As String In MASS_COLUMN_LIST If Str.ToLower = "addedwho" Or Str.ToLower = "changedwho" Or Str.ToLower = "addedwhen" Or Str.ToLower = "changedwhen" Then Continue For Else cmbColumn.Items.Add(Str) End If Next Catch ex As Exception MsgBox("Unexpected Error in load form:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click Me.Close() End Sub Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click Try If txtNewValue.Text <> "" And Me.cmbColumn.SelectedIndex <> -1 And cmbColumn.Text <> "" Then Dim msg = "Sind Sie sicher, dass Sie diese Massenänderung durchführen wollen?" & vbNewLine & MASS_RECORD_IDs2CHANGE.Count.ToString & " Datensätze werden geändert!" If USER_LANGUAGE <> "de-DE" Then msg = "Are You sure You want to execute this mass change?" & vbNewLine & MASS_RECORD_IDs2CHANGE.Count.ToString & " records will be changed!" End If Cursor = Cursors.WaitCursor Dim result As MsgBoxResult result = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If result = MsgBoxResult.Yes Then Dim val = txtNewValue.Text Dim SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL WHERE COL_NAME = '{0}' AND FORM_ID = {1}", cmbColumn.Text, CURRENT_FORM_ID) Dim control_Id = ClassDatabase.Execute_Scalar(SQL) If Not IsNothing(control_Id) Then If control_Id > 0 Then SQL = String.Format("SELECT CONTROL_TYPE_ID FROM TBPMO_CONTROL WHERE GUID = {0}", control_Id) Dim control_type_ID = ClassDatabase.Execute_Scalar(SQL) If control_type_ID = 4 Then Try val = CDate(val) Catch ex As Exception MsgBox("Error in Converting value '" & val & "' to date", MsgBoxStyle.Critical) Cursor = Cursors.Default Exit Sub End Try End If If control_type_ID = 7 Or control_type_ID = 12 Or control_type_ID = 14 Then msg = "Achtung: für diese Spalte existieren mehrere Werte. Diese Werte werden gelöscht." & vbNewLine & "Wollen Sie dennoch fortfahren?" If USER_LANGUAGE <> "de-DE" Then msg = "Attention: there are multiple values for this column. These values will be deleted." & vbNewLine & "Would You like to continue?" End If Dim result1 As MsgBoxResult result1 = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If result1 = MsgBoxResult.No Then Exit Sub Else For Each Record As String In MASS_RECORD_IDs2CHANGE Dim del = String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", control_Id, CInt(Record)) ClassDatabase.Execute_non_Query(del) Next End If End If Try Dim err As Boolean = False For Each Record As String In MASS_RECORD_IDs2CHANGE SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", control_Id, CInt(Record)) Dim ex_GUID = ClassDatabase.Execute_Scalar(SQL) If Not IsNothing(ex_GUID) Then SQL = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}',CHANGED_WHO = '{1}' WHERE GUID = {2}", val, Environment.UserName, ex_GUID) If ClassDatabase.Execute_non_Query(SQL) = False Then MsgBox("Error in updating the value for Record: " & Record & vbNewLine & "Please check the logfile.", MsgBoxStyle.Exclamation) End If Else SQL = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE, ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", control_Id, CInt(Record), val, Environment.UserName) If ClassDatabase.Execute_non_Query(SQL) = False Then MsgBox("Error in inserting the value for Record: " & Record & vbNewLine & "Please check the logfile.", MsgBoxStyle.Exclamation) End If End If Next SUCCESSFULL = True msg = "Alle Änderungen wurden ausgeführt!" If USER_LANGUAGE <> "de-DE" Then msg = "All changes were executed!" End If MsgBox(msg, MsgBoxStyle.Information) Catch ex As Exception MsgBox("Unexpected Error in Getting record to be changed:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try Else MsgBox("No defined column found! (1)", MsgBoxStyle.Information) End If Else MsgBox("No defined column found! (2)", MsgBoxStyle.Information) End If End If End If Catch ex As Exception MsgBox("Unexpected Error in Execute mass change:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try Cursor = Cursors.Default End Sub End Class