Sorry, LuK-As, das ich jetzt erst mich wieder melde. War etwas beschäftigt in der letzten Zeit.

Zu deinem Programm:

Mach mal ein debug.print von tmpdata1. Dann kannst du im direktfenster erstmal sehen, ob der String komplett ankommt. Ich glaube nämlich das die ;-Zeichen da Probleme machen.

Also ungefähr so:
Code:
 Private Sub MSComm1_OnComm()
dim TmpData1 as string        <----- Sonst hast du ein Variant und das kann vieles darstellen
TmpData1 = MSComm1.Input
Debug.Print  TmpData1   <----- im Einzelschritt wird dir dann im Direktfenster der String komplett ausgegeben.

Select Case MSComm1.CommEvent
  Case comRxOver:   MsgBox "Datenverlust"
  Case comEvReceive: Me.ComInput = Me.ComInput + TmpData1
End Select
      ComInput.SelStart = Len(ComInput.Text)
     
On Error Resume Next
If Left(TmpData1, 2) = "xx" Then
 Text1.Text = Mid(TmpData1, 4, 3)
 Text2.Text = Mid(TmpData1, 8, 3)  <---fängst schon in der 8. SPalte an ;)
End If
End Sub
Sonst müsste der Code die beiden Werte richtig liefern. [/code]