Office中国论坛/Access中国论坛
标题: 关于查询中如何输入判断语句 [打印本页]
作者: wonderfeng 时间: 2006-9-1 07:13
标题: 关于查询中如何输入判断语句
新建一张表,根据此表建立查询
想新增一个字段 实现
if a is null then c-b
elseif b is null then c-a
elseif a is null and b is null then c
elseif c-a-b
a b c 是查询中的三个字段,我在后面的空白字段点击右键 选择"生成器" 输入以上代码会 报错"输入的表达式包含无效语法,你可能没有输入运算符的运算对象",此时 a 显示高亮
请大家指点!
作者: 一点通 时间: 2006-9-1 07:37
查询中一般采用IIF的方法
作者: wonderfeng 时间: 2006-9-1 07:44
那这样的语句怎么写呢
作者: 一点通 时间: 2006-9-1 07:48
iif(isnull(a),c-b,iif(isnull(b),c-a,iif..........................))))
作者: wonderfeng 时间: 2006-9-1 07:59
可行
可是当你打开的时候会弹出一个 "参数输入值"的一个对话框 它要你输入a字段 b字段 c字段的值
这个要紧么?
作者: skill0516 时间: 2006-9-1 08:11
又学会了一招!
作者: wonderfeng 时间: 2006-9-1 09:17
接着上面问一个问题:
物料1
月份 本月应收 本公司部门 外协部门 本月结余
6 c a b IIf(IsNull(a),IIf(IsNull(b),c,c-a),IIf(IsNull(b),c-a,c-a-b)))
7 =上期的期末值
物料2
……
物料3
……
如何来按照这个本期结余来搞出期末多少?每个月的期末又是下个月期初!当然先给定一个期初值
请大家指点!
作者: wd0001 时间: 2006-9-1 16:05
支持
作者: 一点通 时间: 2006-9-1 16:43
iif拼写错误
IIf(expr, truepart, falsepart)
IIf 函数的语法含有下面这些命名参数:
部分
描述
expr
必要参数。用来判断真伪的表达式。
truepart
必要参数。如果 expr 为 True,则返回这部分的值或表达式。
falsepart
必要参数。如果 expr 为 False,则返回这部分的值或表达式。
作者: wonderfeng 时间: 2006-9-1 16:57
拼错了?
不管了,能不能帮我看看期初和期末的值怎么弄出来啊?
这个好像不能用dsum 吧
作者: 一点通 时间: 2006-9-1 17:09
请到这里看下
http://www.office-cn.net/vvb/dispbbs.asp?BoardID=2&replyID=31575&id=46032&skin=0
作者: wonderfeng 时间: 2006-9-1 17:28
一点通大哥:有没有什么Access帮助类的小册子,手头什么资料都没有,摸的太累了
作者: fan0217 时间: 2006-9-1 17:50
在查询中不能使用语句,只能使用函数。
作者: wonderfeng 时间: 2006-9-1 17:58
那关于函数的小册子也行
作者: 一点通 时间: 2006-9-1 18:02
以下是引用wonderfeng在2006-9-1 9:28:00的发言:
一点通大哥:有没有什么Access帮助类的小册子,手头什么资料都没有,摸的太累了
http://www.office-cn.net/forum.php?mod=viewthread&tid=35116
http://www.office-cn.net/forum.php?mod=viewthread&tid=36496
[此贴子已经被作者于2006-9-1 10:03:51编辑过]
作者: wonderfeng 时间: 2006-9-1 19:11
我是这么写的
期末:dsum(IIf(IsNull(a),IIf(IsNull(b),c,c-a),IIf(IsNull(b),c-a,c-a-b))),"此查询名","月份='"&[月份]&"'")
但是它报错“该特定字段 "[月份]"可以参考SQL语句中From子句列表中的多个表”,我猜想可能是它不知道用哪个[月份]了,因为在这张查询中可能有多个[月份]字段了
然后第一种方法:让它明确是哪个字段:条件改为:"月份='"&[指定一张查询表].月份&"'") 然后报错
"该表达式输入错误,或太复杂以致不能估值……"
方法二:重新拿这张查询做了另外一张查询,输入"期末":dsum(IIf(IsNull(a),IIf(IsNull(b),c,c-a),IIf(IsNull(b),c-a,c-a-b))),"此查询名","月份='"&[月份]&"'")---语法检查通过可是,出来的值是"#错误"的符号
遗憾的是这两种方法都不好……
[此贴子已经被作者于2006-9-1 11:12:24编辑过]
作者: cowcow110 时间: 2006-9-1 19:41
我的问题也是这个,版主为什么不帮我?非常希望,能不能举个例子?一下理解不了。
作者: wonderfeng 时间: 2006-9-1 22:50
晕,沉掉了……
作者: tmtony 时间: 2006-9-2 18:27
因为"[月份]" 可以在多个表中都有这个字段,所以要在"[月份]"前加上表的限定,以确定具体是哪个月份
作者: wonderfeng 时间: 2006-9-2 22:17
终于等到版主回了,可是我已经加了
然后第一种方法:让它明确是哪个字段:条件改为:"月份='"&[指定一张查询表].月份&"'") 然后报错
"该表达式输入错误,或太复杂以致不能估值……"
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |