Foxtable(狐表)用户栏目专家坐堂 → 扫描枪录入文本框报错


  共有4916人关注过本帖树形打印复制链接

主题:扫描枪录入文本框报错

帅哥哟,离线,有人找我吗?
shqpldczj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1285 威望:0 精华:0 注册:2016/4/6 14:05:00
扫描枪录入文本框报错  发帖心情 Post By:2023/1/28 20:52:00 [只看该作者]

我的窗口有个文本框通过扫描枪录入文本,原来都好的今天不知道怎么在录入时报错索引超出数组界限,我直接把文本粘贴进文本框又是正常的,不知道错在哪里谢谢老师请教一下

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/29 8:36:00 [只看该作者]

文本框有什么事件代码?

 回到顶部
帅哥哟,离线,有人找我吗?
shqpldczj
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1285 威望:0 精华:0 注册:2016/4/6 14:05:00
textchanged事件  发帖心情 Post By:2023/1/29 8:57:00 [只看该作者]

Dim bx As WinForm.ComboBox = e.Form.Controls("报销人员")
'Dim fj As WinForm.FileManager = e.Form.Controls("附件")
Dim v As WinForm.TextBox = e.Form.Controls("二维码")
If v.text = Nothing
    Return
    msgbox("二维码不能为空!")
End If
Dim Tel As String = v.Text
Dim Parts() As String = Tel.Split(",")
Dim ht As String = parts(3)
Dim dr2 As DataRow
dr2 = DataTables("fa piao").sqlFind("[fa piao号码] = '" & ht & "'")
If dr2 IsNot Nothing
    msgbox("fa piao相同号码已登记,请检查fa piao是否正确!")
    v.text = Nothing
    Return
Else
    Tables("fa piao").Current("fa piao号码") = Parts(3)
    Dim rq As String = Parts(5)
    Tables("fa piao").Current("开piao日期") = rq.SubString(0,4) & "-" & rq.SubString(4,2) & "-" & rq.SubString(6,2)
    Tables("fa piao").Current("金额") = Parts(4)
    Tables("fa piao").Current("报销人员") = bx.Value
    Tables("fa piao").Current("录入人员") = _username
    Tables("fa piao").Current("录入时间") = Date.Today()
    DataTables("fa piao").Save
End If

这个是文本框的textchanged事件,我感觉就是扫描枪只输入了一个字符就报错了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/29 9:07:00 [只看该作者]

应该是扫描的结果没有这么多项,判断一下再用

Dim Tel As String = v.Text
msgbox(tel)
Dim Parts() As String = Tel.Split(",")
msgbox(Parts.length)
if Parts.length >3 then
Dim ht As String = parts(3)
……
if Parts.length >5 then
Dim rq As String = Parts(5)
……
end if
endif

 回到顶部
帅哥哟,离线,有人找我吗?
shqpldczj
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1285 威望:0 精华:0 注册:2016/4/6 14:05:00
扫描输入文本框  发帖心情 Post By:2023/1/29 14:01:00 [只看该作者]

01,32, ,23312000000001052437,1200.00,20230111, ,FC1F
这个是我扫描的字符串我加了判断后现在扫描的结果是0,,

我直接粘贴字符串就不报错,扫描就报错了

[此贴子已经被作者于2023/1/29 14:04:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/29 14:03:00 [只看该作者]

扫描的结果和上面的判断没有什么关系。如果msgbox(tel)显示为0,,要么条码有问题,要么扫描枪有问题

 回到顶部
帅哥哟,离线,有人找我吗?
shqpldczj
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1285 威望:0 精华:0 注册:2016/4/6 14:05:00
扫描  发帖心情 Post By:2023/1/29 14:25:00 [只看该作者]

我现在只能改在validating事件一样的代码可以扫描输入完整字符串,就是整个操作要多一步

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/29 14:27:00 [只看该作者]

不要使用textchanged事件,改为valuechanged事件,或者keydown事件,记得给扫描枪加一个结束的回车符

 回到顶部