以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 找出生产piao号和制造产品号完全相同的行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=135626) |
||||
-- 作者:edisontsui -- 发布时间:2019/5/30 14:23:00 -- 找出生产piao号和制造产品号完全相同的行 If e.DataCol.Name = "长度" Then If dr("制造产品号").startsWith("C") If e.DataRow.IsNull("生产票号") = False AndAlso e.DataRow.IsNull("制造产品号") = False Dim dr3 As DataRow = e.DataRow If e.DataTable.Find("生产票号 = \'" & dr3("生产票号") & "\' And 制造产品号 = \'" & dr3("制造产品号") & "\'") IsNot Nothing Then \'如果找到生产票号和制造产品号完全相同的行,则不执行判断杆数的代码 Else \'判断杆数 If dr("制造产品号").startsWith("CFU") If dr("制造产品号").contains("16G") dr("每套杆数") = 1 ElseIf dr("制造产品号").contains("32G") dr("每套杆数") = 2 ElseIf dr("制造产品号").contains("50G") dr("每套杆数") = 3 End If End If \'结束判断杆数 End If End If Else dr("每套杆数") = Nothing dr("每杆铜片") = Nothing dr("铜片总数") = Nothing End If End If 上面的代码,如果不要第4层的 if... else... end if 嵌套,那么执行起来是没有问题的。但是加上第4层嵌套,执行起来就没有作用了。请假是哪里的问题?谢谢。
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/30 14:54:00 -- 加入msgbox,弹出值看一下
msgbox(dr("制造产品号")) msgbox(dr("制造产品号").startsWith("CFU")) msgbox(dr("制造产品号").contains("16G")) |
||||
-- 作者:edisontsui -- 发布时间:2019/5/30 15:22:00 -- 弹出: 制造产品号那个单元的值 CFD2640GG36LFOS19B17M65 和 False |
||||
-- 作者:有点甜 -- 发布时间:2019/5/30 15:46:00 --
开始是CFD,不是CFU,自然不会执行if判断的代码啊。
|
||||
-- 作者:edisontsui -- 发布时间:2019/5/30 16:10:00 -- 我把制造产品号换成 CFU2532G30LFS15B15M41,则弹出:CFU2532G30LFS15B15M41 和 True,但还是没有“每套杆数”出来。 |
||||
-- 作者:有点甜 -- 发布时间:2019/5/30 16:22:00 -- 弹出什么
If e.DataCol.Name = "长度" Then
|
||||
-- 作者:edisontsui -- 发布时间:2019/5/30 16:25:00 --
上面档案里面是完整的代码,我在网页上发给你的是简化了的。不知道完整的代码是否有问题?
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/30 16:31:00 -- 弹出什么
If e.DataCol.Name = "长度" Then
|
||||
-- 作者:edisontsui -- 发布时间:2019/5/30 17:08:00 -- 没有任何东西弹出来。“每套杆数”也不会出现任何值。 |
||||
-- 作者:有点甜 -- 发布时间:2019/5/30 19:23:00 -- 以下是引用edisontsui在2019/5/30 17:08:00的发言:
没有任何东西弹出来。“每套杆数”也不会出现任何值。
加入msgbox,看哪个if判断没有满足
msgbox(1) If e.DataCol.Name = "长度" Then msgbox(2) msgbox(3) msgbox(4) msgbox(5) |