AW: Laufzeitfehler 16 - LEN (String)
04.01.2004 18:53:04
Gabor
Hi Ramses,
hier der Code der funktioniert :
Public
Sub SplitDebitorString(SourceString$, DestArray() As Kundendaten)
Dim Fall%, i#, GefPos#
If Not Mid(SourceString, 4, 1) = 2
ReDim DestArray(0)
DestArray(0).KdNr = Trim(Str(Val(Left(SourceString, 10))))
Fall = 2
For i = 12 To Len(SourceString)
GefPos = InStr(i, SourceString, "@", vbTextCompare)
If GefPos > 0 Then
If Mid(SourceString, GefPos - 1, 1) <> "@" Then
Select Case Fall
Case 2
DestArray(0).KdName = Replace(Mid(SourceString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 3
DestArray(0).KdName2 = Replace(Mid(SourceString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 4
DestArray(0).AdresseStr = Replace(Mid(SourceString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 5
DestArray(0).AdressePlz = Replace(Mid(SourceString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 6
DestArray(0).AdresseOrt = Replace(Mid(SourceString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 7
DestArray(0).AdresseTel = Replace(Mid(SourceString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
End Select
Else
Fall = Fall + 1
i = GefPos
End If
End If
Next i
End If
End Sub
Und hier der, der den Fehler bringt läuft :
Public
Sub SplitCardString(ByVal GesString$, DestArray() As Kundenkarten)
Dim Fall%, i#, GefPos#
On Error Resume Next
ReDim DestArray(0)
Fall = 1
For i = 1 To Len(GesString)
GefPos = InStr(i, GesString, "@", vbTextCompare)
If GefPos > 0 Then
If Mid(GesString, GefPos - 1, 1) <> "@" Then
Select Case Fall
Case 1
DestArray(0).Kartennummer = Replace(Mid(GesString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 2
DestArray(0).Unbekannt = Replace(Mid(GesString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 3
DestArray(0).Kundennummer = Replace(Mid(GesString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
Case 4
DestArray(0).Kartenstatus = Replace(Mid(GesString, i, GefPos - i), Find:=Chr(34), Replace:="", Compare:=vbTextCompare)
Fall = Fall + 1
i = GefPos
End Select
Else
Fall = Fall + 1
i = GefPos
End If
ElseIf i < Len(GesString) Then
DestArray(0).Kurzzeichen = Mid(GesString, i, Len(GesString) - (i - 1))
i = Len(GesString)
End If
Next i
End Sub
Bisherige Lösung : On Error Resume next ...
Gruß
Gabor