在ACCESS查询里面,字段名称像你的"公司名"是不用中括号的,还有你的那个计算字段也不对,不用引号,因为引号表示引用文本值,而文本是不可以用来计算的!
所以正确的写法应该是:iif(公司名="1","",金额15) as 新金额
已经测试通过!IIF(),它按照逻辑表达式的值有一到两个值。IIF是IF-THEN-ELSE语句的紧凑表达。语法如下:
IIF(expression, if_true, if_false)
通过该函数,可以建立非常复杂的过滤字符串。例如,假定你从SQL Server的Northwind数据库中取得Employees表,下列表达式可以选出那些employeeID小于6且lastname为偶数个字符和employeeID大于6且lastname为奇数个字符的员工。
IIF(employeeID<6, len(lastname) %2 ="0," len(lastname) %2 >0)
InStr函数
返回
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
语法
InStr([start, ]string1, string2[,
compare])
InStr 函数的语法具有下面的参数:
部分
说明
start
可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含
Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1
必要参数。接受搜索的字符串表达式。
string2
必要参数。被搜索的字符串表达式。
Compare
可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option
Compare 的设置将决定比较的类型。
设置
compare 参数设置为:
常数
值
描述
vbUseCompareOption
-1
使用Option Compare 语句设置执行一个比较。
vbBinaryCompare
0
执行一个二进制比较。
vbTextCompare
1
执行一个按照原文的比较。
vbDatabaseCompare
2
仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
返回值
如果
InStr返回
string1 为零长度
0
string1 为 Null
Null
string2 为零长度
Start
string2 为 Null
Null
string2 找不到
0
在 string1 中找到string2
找到的位置
start > string2
0
说明
InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
--------------------------------------
以上是instr函数的用法分成二步来完成,即先取出select top 1 cardkind from mem_members的值,然后再执行update
1、在ACCESS中用宏来完成。
2、在其它的编程调用环境中,可以先赋值给变量,然后再传入update语句
另外你外部的iif根本就不起作用,IIF(XXX<>'次卡',-1,0)>0恒不成立,因为IIF(XXX<>'次卡',-1,0)的取值范围为-1, 0 恒不大于0,所以无论如何,你的最终表达式的结果都是-1第一段是个自定义函数m(参数1,参数2),取两数中的最大值。其中,
IIf(参数1,参数2,参数3),参数1是个条件判断,如果真返回参数2,否则返回参数3。
第二段是点某个按钮,出现一个消息框,显示 2。IIf 函数,
根据表达式的值,来返回两部分中的其中一个。
本示例使用IIf 函数来判断 CheckIt 过程之 TestMe 参数的值,如果参数值大于 1000 则传回“Large”;否则传回“小图标”。
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)