以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教串口编程问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119933)

--  作者:jinhetian
--  发布时间:2018/6/4 13:57:00
--  请教串口编程问题
您好老师。现在窗口的串口通讯没有问题。几个窗口同时录入数据没有问题。但在一个窗口中需要有两个文本控件需要用扫码枪录入数据。如图所示:机器编码文本框("TextBox1")中扫码录入机器编号后自动填写型号,光标自动移动到检验结果文本框("TextBox3")中。在此文本框中扫码扫“f”表格讲自动录入数据。
但结果是检验结果文本框中扫入“f”,“f”出现在机器编码文本框中,也取代了原来的机器编号。我知道这是因为编码中指定了"COM6"接收到的数据送到("TextBox1")中导致。。。。。。。
请问想这种窗口中多个控件扫码时如何编程?

图片点击可在新窗口打开查看此主题相关图片如下:s.jpg
图片点击可在新窗口打开查看
谢谢!
Select Case e.Port.PortName
    
    Case "COM6"
        Forms("焊接调试检验").Controls("TextBox1").Text= Ports("COM6").ReadExisting()
        
    Case "COM7"
        Forms("组装检验").Controls("TextBox1").Text= Ports("COM7").ReadExisting()
End Select


--  作者:有点甜
--  发布时间:2018/6/4 14:24:00
--  

编号和型号的格式不同吧?根据格式不同(比如,字符数不同等条件)

 

Dim txt As String = Ports("COM6").ReadExisting()

If txt.length = 10 Then
    Forms("焊接调试检验").Controls("TextBox1").Text = txt
ElseIf txt.length = 5 Then
    Forms("焊接调试检验").Controls("TextBox3").Text = txt
End If


--  作者:jinhetian
--  发布时间:2018/6/4 15:59:00
--  

谢谢老师!

红色部分改成如下后问题解决了。

Dim txt As String = Ports("COM6").ReadExisting()

If txt.length >5 Then
    Forms("焊接调试检验").Controls("TextBox1").Text = txt
ElseIf txt.length < 5 Then
    Forms("焊接调试检验").Controls("TextBox3").Text = txt
End If