以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 两段代码等效吗?请高手指点? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43524) |
-- 作者:wyz20130512 -- 发布时间:2013/12/9 15:33:00 -- 两段代码等效吗?请高手指点? If e.DataRow("gysh") = "汪春阶" Or e.DataRow("gysh") = "管炳芳" Or e.DataRow("gysh") = "王逢礼" Or e.DataRow("gysh") = "陈柏安" Or e.DataRow("gysh") = "陈春桥" Or e.DataRow("gysh") = "叶景辉" Or e.DataRow("gysh") = "赵友玲" Then
If e.DataRow("gysh") In ("汪春阶","管炳芳","王逢礼","陈柏安","陈春桥","赵友玲","叶景辉","李三","赖红平") Then
第一段代码执行没错,而后段却报错? |
-- 作者:Bin -- 发布时间:2013/12/9 15:37:00 -- 第二段是错误的,代码并没有这样的语法,你把SQL 和表达式中的语法放进来使用肯定是不可以的. |
-- 作者:Bin -- 发布时间:2013/12/9 15:38:00 -- 这种情况你可以考虑使用 select case http://www.foxtable.com/help/topics/0224.htm |
-- 作者:wyz20130512 -- 发布时间:2013/12/9 15:38:00 -- 上述代码是表中的hc_DataColChanged(某列内容发生变化后,触发该事件,),"hc”是后厨的意思。"gysh"是供应商,"grshl"是购入数量,"rkshl"是入库数量。 |
-- 作者:wyz20130512 -- 发布时间:2013/12/9 15:48:00 -- 还是不理解,可帮助文档“条件表达式”中可以这样使用的呀?是的,我用Select Case 实现了第一段代码的简化。 |
-- 作者:wyz20130512 -- 发布时间:2013/12/9 15:50:00 -- 示例十一 筛选产品为PD01、PD02、PD03的行: 产品 In (\'PD01\',\'PD02\',\'PD03\') 或者 产品 = \'PD01\' or 产品 = \'PD02\' or 产品 = \'PD03\' 显然这个时候,用In运算符要简洁很多。 记得数值型的列,值不要用单引号括起来,例如: [订单号] In (1, 3, 4, 6, 7,12) 而日期型的列,值需要用符号#括起来,例如: [日期] In (#7/2/2012#, #7/12/2012#, #8/30/2012#) |
-- 作者:Bin -- 发布时间:2013/12/9 15:53:00 -- 有什么不理解的,2楼不是很清楚明确 的告诉你了吗? 代码是代码 表达式是表达式, 是两个不同的东西. 你把表达式中的语法放进来使用肯定是不可以的.
|
-- 作者:wyz20130512 -- 发布时间:2013/12/9 16:17:00 -- 谢谢!慢慢地消化吧。 |