以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于查询过于复杂的困惑 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41980) |
-- 作者:东坡一剑 -- 发布时间:2013/10/31 21:20:00 -- 关于查询过于复杂的困惑 If Forms("主界面").opened Then |
-- 作者:有点甜 -- 发布时间:2013/10/31 21:27:00 -- 这个简单,你msgbox(s)看看就知道了。 Or 的前面最好记得加空格 |
-- 作者:东坡一剑 -- 发布时间:2013/10/31 21:44:00 -- msgbox(s)已经做了,应该不是你说的问题。因为前后两段的msgbox(s)出现的字符结构都是一样的。唯一不同的是:黑字部分代码msgbox(s)出现的字符串超级长,因为符合条件的记录很多,足有几百条。而红字部分只有短短的几行。我怀疑是当loadfilter的字符串长度有一定的限制。不知是不是这样? |
-- 作者:有点甜 -- 发布时间:2013/10/31 21:52:00 -- 试试改成这种 For Each dr2 As DataRow In dt2.DataRows Dim dr1 As DataRow = dt1.Find("货号 = \'" & dr2("货号") & "\' And 颜色 =\'" & dr2("颜色") & "\'") If dr1 Is Nothing Then s = s & dr2("_Identify") & "," End If Next 。。。。。。 DataTables("库存表").LoadFilter = "[_Identify] in (" & s.trim(",") & ")" |
-- 作者:东坡一剑 -- 发布时间:2013/10/31 22:04:00 -- 谢谢!我试试。 |
-- 作者:东坡一剑 -- 发布时间:2013/10/31 22:36:00 -- 果然就成功了。 但是之前为什么就不行呢? 难道数据多少确实有影响? |
-- 作者:有点甜 -- 发布时间:2013/10/31 23:02:00 -- 不知道,应该是sql语句的问题,得看你生成了什么的sql语句才能说。 |