Ich bekomme jetzt zwar AOK ohne Krankenkasse davor, aber
hinter AOK sind noch immer die anderen Daten.
Weiss einer wie ich das realisieren kann?
Ich denke, mit einer zweifachen Anwendung der Split-Funktion solltest Du den String aufsplitten können…
Sub Kom_Afterupdate()
dim a1,a2, i as long
a1= Split (Me!kom,vbcrlf) ’ falls die Zeilenschaltung aus Cr und Lf besteht
for i=Lbound(a1) to Ubound(a1)
a2=Split(a1(i),"=")
Me(a2(0))=a2(1)
next
End Sub
wobei es Textfelder im Formular mit den entspr. Namen geben muß
Jetzt bekomme ich, dank dem Code von Dir, die Daten in einzelne Textfelder und kann sie in einer Tabelle speichern.
Jetzt ergibt sich folgendes Problem:
Nach Aktualiesierung erscheint die Fehlermeldung Laufzeitfehler 9: Index außerhalb des gültigen Bereichs und im VBA-Editor ist die Zeile Me(a2(0)) = a2(1) gelb markiert.
der Code besitzt ja keine Plausibilitäts-Prüfungen…
Die Fehlermeldung kommt u. a. dann, wenn das Feld „kom“ nicht genau entspr. Deiner Beschreibung gefüllt ist, z. B.
– es gibt eine Leerzeile
– es gibt kein „=“ -Zeichen in einer Zeile
Hier ein entspr. modifizierter Code:
Private Sub kom_DblClick(Cancel As Integer)
Dim a1, a2, i As Long
On Error Goto MyErr
a1 = Split(Nz(Me!Kom, „“), vbCrLf) ’ falls die Zeilenschaltung aus Cr und Lf besteht
For i = LBound(a1) To UBound(a1)
a2 = Split(a1(i), „=“)
If UBound(a2) = 1 Then
Me(a2(0)) = a2(1)
Else
'MsgBox „Formatfehler im Quellfeld“
End If
Next
On Error Goto 0
Exit Sub
MyErr:
MsgBox „Error " & Err.Number & " (“ & Err.Description & „)“
End Sub