以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 三个条件只要满足一个的表达问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=157300) |
-- 作者:foxyuan -- 发布时间:2020/10/11 19:19:00 -- 三个条件只要满足一个的表达问题 以下两段代码,我感觉应当是一样的,为什么实际是不同的结果呢?感觉是三个条件只要满足一个就删除这行,为什么要先看一下第一个条件的结果呢? For Each dr As DataRow In DataTables("供应商付款收票").Select("") Dim r As DataRow r = DataTables("采购合同").Find("客户编号 = \'" & dr("客户编号") & "\'" ) If r IsNot Nothing Then If Round2(dr("发票应付款金额(元)"),2) = 0.00 AndAlso Round2(dr("合同应付款金额(元)"),2) = 0.00 Then dr.Delete() End If Else If Round2(dr("发票应付款金额(元)"),2) = 0.00 Then dr.Delete() End If Next 与 For Each dr As DataRow In DataTables("供应商付款收票").Select("") Dim r As DataRow r = DataTables("采购合同").Find("客户编号 = \'" & dr("客户编号") & "\'" ) If r IsNot Nothing AndAlso Round2(dr("发票应付款金额(元)"),2) = 0.00 AndAlso Round2(dr("合同应付款金额(元)"),2) = 0.00 Then dr.Delete() Else If Round2(dr("发票应付款金额(元)"),2) = 0.00 Then dr.Delete() End If Next |
-- 作者:有点蓝 -- 发布时间:2020/10/11 21:14:00 -- 不一样的,第一段代码只要【If r IsNot Nothing Then】不成立就执行Else If;第二段代码要3个条件同时不成立才能执行Else If |
-- 作者:foxyuan -- 发布时间:2020/10/11 21:27:00 -- 想明白了。不过好象不是蓝老师说的,第二段应当是3个条件有一个不成立就执行else if 了 |
-- 作者:有点蓝 -- 发布时间:2020/10/11 21:48:00 -- 嗯,是的,其中一个不成立就执行 |