以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 头痛的动态合成表达式 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37134) |
-- 作者:hbaijia -- 发布时间:2013/7/1 10:57:00 -- 头痛的动态合成表达式 用狐表也有一段时间了,但是每到要有合成动态表达式时就发怵,因为与以往的编程用法十分的不同,所以感到到现在为此还没有理解透,只是单纯的模仿,一旦出现没有现成的例子就搞来搞去的总问题,看帮助也看了,但好象讲这方面的就那么点点,怎么办? 如今又遇到了一个问题,我想做些查询工作,条件是: 1、先找到了所有满足条件的行 2、在这些行里再将不满足条件的行去掉 我的做法是: For Each dr In DataTables("点表").DataRows DataTables("登记表").Find("编号=\'" & dr("编号") & "\'") ids=ids & ",\'" & dr("编号") & "\'" 以上没有问题 下面是要将以上找到的行里,将其中一些行的列的内容为 状态1、状态2、状态2 的行从中去掉 ids=ids & ",\'" & dr("状态") & <> "状态1"\'" ids=ids & ",\'" & dr("状态") & <> "状态2"\'" ids=ids & ",\'" & dr("状态") & <> "状态3"\'" 这个就有问题了,改了几种方法,不是报错,就是不符合要求 |
-- 作者:Bin -- 发布时间:2013/7/1 11:03:00 -- 你这个是不能使用一个IDS来完成的. 声明多一个变量 zt zt=zt & ",\'" & dr("状态") & "\'" 然后 拼接为 "编号 in (" & ids.trim(",") & ") and 状态 in (" & zt.trim(",") & ")"
|
-- 作者:hbaijia -- 发布时间:2013/7/1 11:58:00 -- zt=zt & ",\'" & dr("状态") & "\'"
关键加上不等 于怎么加? zt=zt& ",\'" & dr("状态") & <> "状态1"\'" 这个不对 |
-- 作者:Bin -- 发布时间:2013/7/1 12:00:00 -- 那么再加一句 编号 in (" & ids.trim(",") & ") and 状态 in (" & zt.trim(",") & ") and 状态 not in (\'状态1\',\'状态2\',\'状态3\')"
|
-- 作者:cxabc123 -- 发布时间:2013/7/1 14:39:00 -- 我总结的规律是: DataTables("登记表").Find("编号=12") ,如果要将"12"换成变量,则为12=" & 变量 & "。也就是用" & 变量 & "替换,这样一般不会出错。 |