AW: Problem in einem Formular
27.01.2017 17:05:27
Matthias
Hallo
Private Sub CommandButton3_Click()
'Speichern Schaltfläche Ereignisroutine
Dim lZeile As Long, MyListIndex As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
If Trim(CStr(TextBox1.Text)) = "" Then
'Meldung ausgeben
MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!" _
'Abbrechen der Speicherroutine
Exit Sub
End If
'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 6 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Tabelle1.Cells(lZeile, 3).Value = Trim(CStr(TextBox1.Text)) 'Name'
Tabelle1.Cells(lZeile, 4).Value = TextBox2.Text 'Vorname'
Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text 'Strasse'
Tabelle1.Cells(lZeile, 6).Value = TextBox6.Text 'PLZ'
Tabelle1.Cells(lZeile, 7).Value = TextBox7.Text 'Ort'
Tabelle1.Cells(lZeile, 8).Value = TextBox8.Text 'Telefon'
Tabelle1.Cells(lZeile, 9).Value = TextBox3.Text 'Geburtstag'
Tabelle1.Cells(lZeile, 11).Value = TextBox4.Text 'Einritt in Verein'
Tabelle1.Cells(lZeile, 13).Value = ComboBox1.Text 'Dienstgrad'
Tabelle1.Cells(lZeile, 14).Value = TextBox9.Text 'Email'
Tabelle1.Cells(lZeile, 15).Value = TextBox10.Text 'Verdienste'
Tabelle1.Cells(lZeile, 16).Value = TextBox11.Text '25er'
Tabelle1.Cells(lZeile, 17).Value = TextBox12.Text '50er'
Tabelle1.Cells(lZeile, 18).Value = TextBox13.Text 'Gau'
Tabelle1.Cells(lZeile, 2).Value = ComboBox2.Text 'AktivPassiv Ehrenmitglied'
Tabelle1.Cells(lZeile, 19).Value = TextBox14.Text 'Gau'
'Die ListBox muss nun neu geladen werden
'allerdings nur, wenn sich der Name (ID) geändert hat
If ListBox1.Text Trim(CStr(TextBox1.Text)) Then
MyListIndex = ListBox1.ListIndex
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = MyListIndex
End If
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub
Gruß Matthias