Hallo Zusammen,
ich bin neu hier, Anfänger und mehr als ratlos...
Folgendes Problem:
In einer Tabelle lese ich ein Feld aus was folgende Daten enthalten kann
1. 1234a 12345
2. 1234 12345
3. 12345
oder
4. keine Daten (Feld ist leer).
die Zahlen sind nur ein Beispiel, kann also auch 23456 34567 sein, fakt ist, dass immer wenn zwei Werte vorhanden sind, sie durch ein Blank getrennt sind.
mit dem Code hier versuche ich zu "erahnen" was ich gefunden habe
Mit den Code hier
'Prüfen ob brauchbare Daten vorhanden sind
intLeerPos = InStr(rs1![Daten_1], " ")
str1 = Left(rs1![Daten1], intLeerPos)
str2 = Right(rs1![Daten1], intLeerPos)
funktioniert es nur ab und zu. Mal vergist str1 mit das 2 von Beispiel 1 zu liefern, oder manchmal bekomme ich gar keine Infos, obwohl Beispiel 3 einen Wert hat.
Kann mir bitte jemand helfen und sagen wo ich den Fehler habe.
DANKE!
hallo
versuch mal
intLeerPos = InStr(nz(rs1![Daten_1], ""), " ")
if intLeerPos then 'vom typ 1 u. 2
str1 = Left(rs1![Daten1], intLeerPos)
str2 = Right(rs1![Daten1], intLeerPos)
else 'vom type 3 und andere
str1 = nz(rs1![Daten1], "")
end if
InStr liefert Null als Ergebnis, falls String1 Null ist, 0 falls String2 nicht in String1 gefunden wurde und einen Wert größer Null als Position des ersten Vorkommens von String2 in String1.
Demnach kann man so vorgehen: Dim data As Variant, pos As Variant
data = rs1![Daten_1]
pos = InStr(data, " ")
Select Case pos
Case Is > 0
str1 = Left$(data, pos - 1)
str2 = Mid$(data, pos + 1)
Case 0
str1 = data
'Case Else
'Fall 4
End Select
DANKE...da wäre ich alleine niemals drauf gekommen!