以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- where条件的字段可否引用变量? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49606)
|
-- 作者:scott518
-- 发布时间:2014/4/21 11:27:00
-- where条件的字段可否引用变量?
此主题相关图片如下:360截图20140421110121777.jpg
如上图,品质状态列可以下拉选择三种数量:合格数量,不良数量,报废数量
在下面的明细表点击产品编码时弹出一个查询窗口,select语句如下:
select 产品编码,品名,规格,计量单位,仓库,备注 from 库存表 where “ & tables(“库存调拨单_主表").current("品质状态") & " > 0
目的就是当主表中选择合格数量时,where条件就自动变为 where 合格数量 > 0
当主表中选择不良数量时,where条件就自动变为 where 不良数量 > 0 ,以此类推。
但会提示“在应使用条件的上下文(在 \'库存调拨单_主表\' 附近)中指定了非布尔类型的表达式。”的错误;
上面的写法是不是不正确?还有没有其他写法(只用一条语句,分成三条语句来实现的我会)
谢谢!
|
-- 作者:Bin
-- 发布时间:2014/4/21 11:29:00
--
上面写法正确啊.
你可以使用messagebox.show 把你拼接的语句弹出来看一下,这样可以直观分析结果. 如果有问题也容易看出问题所在,然后进行调整
|
-- 作者:scott518
-- 发布时间:2014/4/21 11:38:00
--
有检测,就是红色的变量部份不会变动如下:确定后就出现错误提示了。
此主题相关图片如下:360截图20140421113531105.jpg
|
-- 作者:Bin
-- 发布时间:2014/4/21 11:43:00
--
说明你双引号没写对. 完整拼接代码发出来.
|
-- 作者:逛逛
-- 发布时间:2014/4/21 11:44:00
--
你的引号反了吧
"select 产品编码,品名,规格,计量单位,仓库,备注 from 库存表 where “ & tables(“库存调拨单_主表").current("品质状态") & " > 0"
|
-- 作者:scott518
-- 发布时间:2014/4/21 11:50:00
--
select a.产品编码,类别,a.品名,a.规格,a.计量单位,仓库,a.备注 From 库存表 a inner join 产品编码 b on a.产品编码 = b.产品编码 where 仓库 = \'外协品仓\' and " & tables("库存调拨单_主表").Current("品质状态") & " > 0
引号还有正反吗,都是小写的英文状态输入的,如果上面的红色部份直接换成 合格数量 显示就没问题。但就想动态变动它。
|
-- 作者:Bin
-- 发布时间:2014/4/21 11:52:00
--
"select a.产品编码,类别,a.品名,a.规格,a.计量单位,仓库,a.备注 From 库存表 a inner join 产品编码 b on a.产品编码 = b.产品编码 where 仓库 = \'外协品仓\' and " & tables("库存调拨单_主表").Current("品质状态") & " > 0"
|
-- 作者:scott518
-- 发布时间:2014/4/21 12:03:00
--
没有看出有什么不同啊,前后两个引号因为我的这个select 语句 是在command中调用的,这里不用
|
-- 作者:有点甜
-- 发布时间:2014/4/21 12:04:00
--
以下是引用scott518在2014-4-21 12:03:00的发言:
没有看出有什么不同啊,前后两个引号因为我的这个select 语句 是在command中调用的,这里不用
能用就好,慢慢理解。
|
-- 作者:jspta
-- 发布时间:2014/4/21 12:22:00
--
SQL语法没有这种写法,你用错地方了
|