Ich Lese Textboxen mit folgendem Code unten aus und habe dann das Problem, wenn die Textboxen mit den Datum leer bleiben ich eine Fehlermeldung "Typen unverträglich" bekomme. Das heisst es muss ein Datum drinstehen. Wie kann ich den Befehl If txt2BefristungW, txt1BefristungW und txtEintrittW.TextLength 0 Then oder auch anderen unterbringen?
Vielen Dank im Vorraus
Gruss Michael
Sub cmdÄnderungenSpeicherW_Click()
Dim lZeile As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet (Übernommen)
If ListW.ListIndex = -1 Then Exit Sub
'Wir müssen prüfen, ob die Namen Spalte auch gefüllt ist!!
If Trim(CStr(txtNameW.Text)) = "" Then
'Meldung ausgeben
MsgBox "Du musst mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
'Abbrechen der Speicherroutine
Exit Sub
End If
If MsgBox("Möchtest du die Änderungen wirklich übernehmen?", vbYesNo) = vbNo Then
Unload Me
FormularLeihWerks.Show
End If
'Ausbauoption: Prüfen, ob der Name in Tabelle7 Spalte 1 schon vorhanden ist!
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 3 'Start in Zeile 3, Zeile 1 und 2 sind ja die Überschriften
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle7.Cells(lZeile, 1).Value)) ""
'Datensatz Name Spalte mit selektiertem Eintrag der ListBox vergleichen
If ListW.Text = Trim(CStr(Tabelle7.Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Tabelle7.Cells(lZeile, 1).Value = Trim(CStr(txtNameW.Text))
Tabelle7.Cells(lZeile, 2).Value = txtVornameW.Text
Tabelle7.Cells(lZeile, 15).Value = txtVertragsartW.Text
Tabelle7.Cells(lZeile, 3).Value = txtAbteilungW.Text
Tabelle7.Cells(lZeile, 5).Value = CDate(txtEintrittW.Value)
Tabelle7.Cells(lZeile, 16).Value = txtEntlohnungW.Value
Tabelle7.Cells(lZeile, 7).Value = CDate(txt1BefristungW.Value)
Tabelle7.Cells(lZeile, 8).Value = CDate(txt2BefristungW.Value)
Tabelle7.Cells(lZeile, 18).Value = txtKstW.Value
'Die ListBox muss nun neu geladen werden
'allerdings nur, wenn sich der Name geändert hat
If ListW.Text Trim(CStr(txtNameW.Text)) Then
Call UserForm_Initialize
If ListW.ListCount > 0 Then ListW.ListIndex = 0
End If
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
Unload Me
FormularLeihWerks.Show
End Sub