设置InputComm.RThreshold = 9,并不能保证每次接收到9个字符就触发事件,它只是触发该事件的一个下险,你可以用窗体级变量或静态变量保存此次处理多余数据,下次接收的数据再添加到后面去处理.================================================================
共同学习,共同进步
================================================================

解决方案 »

  1.   

    不用mscomm控件的时间,用定时器去接收比较好,把定时器的时间设为合适的值就可以了。我也正在做modem通讯的程序,正是事件触发不好用,改用定时器接收,效果很好。
    ================================================================
    共同学习,共同进步
    ================================================================
      

  2.   

    在strBureau = Left(inputBuf, 2)之前,判断一下len(inputbuf),然后在做处理!
      

  3.   

    Private Sub Timer1_Timer()
      Static strData as string
      Dim strResult as string 
      Dim intCount  Timer1.Enabled=False
      If MSComm1.InBufferCount<> 0 Then
        strData=strData & MSComm1.Input
        intCount=Len(strTempData)\9
        If intCount>0 Then
          For i=1 to intCount
            strResult=Mid(strData,9*(i-1),9)
            '你要做的处理  
          Next i
          strData=Right(strData,9*intCount)
        End If
      End If
      
      Timer1.Enabled=True
    End Sub
    ================================================================
    共同学习,共同进步
    ================================================================