以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119125)

--  作者:tovot
--  发布时间:2018/5/18 10:31:00
--  [求助]
订单里筛选产品的时候如何过滤掉已经在当前订单里的产品,避免一张订单里出现多次同一款产品
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180518102947.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/5/18 10:37:00
--  

合成一个条件,赋值到全局变量,如

 

Dim s As String = ""

For Each r As Row in Tables("表A").Rows

    s &= "\'" & r("第一列") & "\',"

Next

vars("s") = s.trim(",")

msgbox(vars("s"))

 

----------------------

 

然后,选择数据的窗口根据vars("s")的值,合成筛选条件,筛选数据,如

 

"第一列 not in (" & vars("s") & ")"


--  作者:tovot
--  发布时间:2018/5/18 11:45:00
--  
如果本来列表为空的话,遍历出来的结果为空,会报错
--  作者:有点甜
--  发布时间:2018/5/18 11:58:00
--  

方法一:你可以判断

 

If vars("s") = "" Then

    不做处理

else

    "第一列 not in (" & vars("s") & ")"

End If

 

方法二:

 

Dim s As String = "\'\',"

For Each r As Row in Tables("表A").Rows

    s &= "\'" & r("第一列") & "\',"

Next

vars("s") = s.trim(",")

msgbox(vars("s"))


--  作者:tovot
--  发布时间:2018/5/18 12:35:00
--  
用方法二解决,多谢。
--  作者:tovot
--  发布时间:2018/6/11 17:02:00
--  
如何同时判断两个字段,比如想要避免一张送货单里同时出现两个订单号和料品编码都一样的产品

图片点击可在新窗口打开查看此主题相关图片如下:截图20180611165916.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/6/11 17:33:00
--  

Dim s As String = "\'\',"

For Each r As Row In Tables("表A").Rows

    s &= "\'" & r("第一列") & "|" & r("第二列") & "\',"

Next

vars("s") = s.trim(",")

msgbox(vars("s"))

 

------------

 

"第一列+\'|\'+第二列 not in (" & vars("s") & ")"