Datum umwandeln

Möchte mich erst mal ganz herzlich bedanken. Habe mal alle Spaltennamen ergänzt, wobei ich hoffe nichts übersehen zu haben.
Jetzt motzt er bei "Private sub clearform" in Spalte "Eintritt". Hab die Aktualisierung der Tabelle mal angehängt, und bitte dich, nochmal einen Blick darein zu werfen. Nochmal Danke bis dahin und Gruß Josef
 

Anhänge

Es reicht nicht aus, die Namen nur im Code zu ändern. Dann weiss VBA ja gar nicht was für ein Feld das ist. Du must den Feldnamen entsprechen auch im Formular ändern

(Vergiss den Punkt 3 im Bild. Der ist mir reingerutscht)
2017-11-08_083428.png
 
Bitte erkläre den "Hacken". Ich habe keine Lust alles durchzutesten für dich.
Fehlerverhalten, Fehlermeldung etc.
 
OK, hab da was gefunden. Ich weiss nicht, ob der Fehler mir oder dir passeirt ist.
Visual Basic:
Private Sub lstData_Click()
    Dim lZeile As Long
    Dim rngRow As Range
    Dim id As String
   
    id = Trim(CStr(rngRow.Cells(lZeile, colAtNummer).Value))
    clearForm
    If lstData.ListIndex >= 0 Then
        If seekArb(id, rngRow) Then
rngRow word erst in bei seekArb() initialisiert. Somit kann vorgängig die ID nicht aus diesem Array ausgelesen werden. Auch ist lZeile an dieser Stelle noch 0.
Du willst dort auch die ID aus der Liste nehmen und nicht die aus irgend einer beliebigen Zeile
Visual Basic:
'ersetze
 id = Trim(CStr(rngRow.Cells(lZeile, colAtNummer).Value))
'durch
id = lstData.Value
 
Hier das Problem: "Laufzeitfehler 91 Objektvariable o. With- Blockvariable nicht fest gelegt". Ich hoffe es vereinfacht dir die Suche. Gruß Josef

Code:
Private Sub lstData_Click()
    Dim lZeile As Long
    Dim rngRow As Range
    Dim id As String
   
    id = Trim(CStr(rngRow.Cells(lZeile, colAtNummer).Value))
    clearForm
    If lstData.ListIndex >= 0 Then
        If seekArb(id, rngRow) Then
            txtNummer = id
            txtAnrede = rngRow.Cells(lZeile, colAtAnrede).Value
            txtNachname = rngRow.Cells(lZeile, colAtNachname).Value
            txtVorname = rngRow.Cells(lZeile, colAtVorname).Value
            txtStrasse = rngRow.Cells(lZeile, colAtStrasse).Value
            txtWohnort = rngRow.Cells(lZeile, colAtWohnort).Value
            txtTelefon = rngRow.Cells(lZeile, colAtTelefon).Value
            txtGeburtstag = Format(rngRow.Cells(lZeile, colAtGeburtstag), "dd.mm.yyyy")
              txtEintritt = Format(rngRow.Cells(lZeile, colAtEintritt), "dd.mm.yyyy")
            txtAustritt = Format(rngRow.Cells(lZeile, colAtAustritt), "dd.mm.yyyy")
             txtgenBis = Format(rngRow.Cells(lZeile, colAtgenBis), "dd.mm.yyyy")
            txtgruppe = rngRow.Cells(lZeile, colAtGruppe).Value
            txtkrankenkasse = rngRow.Cells(lZeile, colAtKrankenkasse).Value
             txtbemerkung = rngRow.Cells(lZeile, colAtBemerkung).Value
        Else
            MsgBox "Nummer " & id & " nicht gefunden", vbExclamation + vbOKOnly
        End If
    End If
End Sub
 
OK, hab da was gefunden. Ich weiss nicht, ob der Fehler mir oder dir passeirt ist.
Visual Basic:
Private Sub lstData_Click()
    Dim lZeile As Long
    Dim rngRow As Range
    Dim id As String
  
    id = Trim(CStr(rngRow.Cells(lZeile, colAtNummer).Value))
    clearForm
    If lstData.ListIndex >= 0 Then
        If seekArb(id, rngRow) Then
rngRow word erst in bei seekArb() initialisiert. Somit kann vorgängig die ID nicht aus diesem Array ausgelesen werden. Auch ist lZeile an dieser Stelle noch 0.
Du willst dort auch die ID aus der Liste nehmen und nicht die aus irgend einer beliebigen Zeile
Visual Basic:
'ersetze
 id = Trim(CStr(rngRow.Cells(lZeile, colAtNummer).Value))
'durch
id = lstData.Value
 
Danke, hab das mal geändert, aber es will einfach nicht gelingen einen neuen Datensatz einzubringen. Vielleicht kannst du es ja mal versuchen, denn hier kann ich nichts mehr erklären, weil kein "Fehler" angezeigt wird. ?? Gruß Josef
 
Zurück