老师,我加上如图上圈起来的代码后提示“未知编译错误”,不加这个代码没有问题,全部代码如附件
此主题相关图片如下:1.png
首先,注意项目文件所在的路径,以及项目名称不要有括号,空格等特殊字符,否则无法显示详细的错误提示,只能显示未知编译错误。
其次,代码里定义的变量都有使用范围。在case 1里定义的变量,到case 2是无法使用的,case 2没有定义barcode这个变量。
然后,2个【cmd1.CommandText =】代码挨着放到一起,第2句赋值后会替代第1句赋值的内容,所以第1句没有任何作用
老师,才接触这个JS语句的写法,cmd1.CommandText 这个做的是全局变量。可教下怎么改吗?如图1,圈起来的地方没有起作用,也不报错。
此主题相关图片如下:1.png
不是的,求和的数量是 2,这个情况他应该提示有不良记录的,但是实际却没提示
学会调试
If e.GetValues.ContainsKey("type") Then
msgbox(e.GetValues("type"))
Select Case CInt(e.GetValues("type"))
Case 1
Dim barcode As String = e.GetValues("code")
Dim smlx As String = e.GetValues("smlx")
Dim jggx As String = e.GetValues("jggx")
msgbox(barcode )
cmd1.CommandText = "Select sum(待转数量) From 过程异常明细 Where 毛坯编码 = '" & barcode & "'"
dim k as integer = cmd1.ExecuteScalar
msgbox("第一次=" & k)
If k > 0 Then
code = 1
msg = "请解封不良记录"
cmd1.CommandText = "Select Count(*) From 工序跟踪表 Where 毛坯编码 = '" & barcode & "' And 加工工序 = '" & jggx & "' And 扫码类型 = '" & smlx & "'"
k = cmd1.ExecuteScalar
msgbox("第2次=" & k)
If k > 0 Then
code = 1
msg = "请勿重复扫码"
……
老师,红色代码不能按条件统计结果,调试之后显示的结果为0,但是我的过程异常明细表中是有数据的。
Dim cmd1 As New S QLCommand
Dim cmd2 As New S QLCommand
Dim barcode As String = e.GetValues("code")
cmd2.CommandText = "S elect Count(*) From 过程异常明细 Where 毛坯编码 = '" & barcode & "' And (返修结果 Like '%废%' or 返修结果 Like '%转自用%' Or 返修结果 Is Null)"
cmd1.CommandText = "S elect Count(*) From 工序跟踪表 Where 毛坯编码 = '" & barcode & "' And 加工工序 = '" & jggx & "' And 扫码类型 = '" & smlx & "'"
If cmd1.ExecuteScalar > 0 Or cmd2.ExecuteScalar > 0 Then
code = 1
msg = "检查重码和不良"
End If
说明没有符合条件的数据。有数据和有符合条件的数据是两码事