为了账号安全,请及时绑定邮箱和手机立即绑定

Access中的大小写表达式

/ 猿问

Access中的大小写表达式

当年话下 2019-10-21 14:33:11

您可以case在Access中使用表达式吗?我正在尝试确定最大日期表单2列,但在以下代码中不断出现语法错误:


CASE 

  WHEN dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date]

    THEN dbo_tbl_property.LASTSERVICEDATE 

  ELSE Contour_dates.[Last CP12 Date] 

END AS MaxDate


查看完整描述

3 回答

?
慕雪6173905

您可以改用该IIF()函数。


IIF(condition, valueiftrue, valueiffalse)

condition 是您要测试的值。


valueiftrue 是在条件评估为TRUE时返回的值。


valueiffalse 是在条件评估为FALSE时返回的值。


Switch当您有多个条件要测试时,还有一个易于使用和理解的功能:


Switch( expr-1, value-1 [, expr-2, value-2 ] … [, expr-n, value-n ] )

开关函数参数列表由成对的表达式和值组成。从左到右对表达式进行求值,并返回与第一个要求值为True的表达式相关联的值。如果零件未正确配对,则会发生运行时错误。例如,如果expr-1为True,则Switch返回value-1。如果expr-1为False,但expr-2为True,则Switch返回value-2,依此类推。


在以下情况下,Switch返回Null值:


这些表达式都不是真的。


第一个True表达式的对应值为Null。


注意:Switch计算所有表达式,即使它仅返回其中之一。因此,您应该注意不良副作用。例如,如果对任何表达式求值导致除以零误差,则会发生错误。


查看完整回答
反对 回复 2019-10-21
?
回首忆惘然

Access中没有案例陈述。相反,您可以使用switch语句。看起来类似于以下内容:


switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date],dbo_tbl_property.LASTSERVICEDATE,dbo_tbl_property.LASTSERVICEDATE <= Contour_dates.[Last CP12 Date],Contour_dates.[Last CP12 Date])


要进一步阅读,请访问:http : //www.techonthenet.com/access/functions/advanced/switch.php


或针对VBA中的案例函数实现示例:


http://ewbi.blogs.com/develops/2006/02/adding_case_to_.html


此致J.


查看完整回答
反对 回复 2019-10-21
?
慕容4345310

switch如果要评估的条件更多,则该函数是要使用的更好的函数。与使用嵌套IIF函数相比,它更易于阅读/理解/维护。另外,实现默认值而不是创建基本上计算为“所有先前表达式均为假”的逻辑表达式的另一种方法是仅用true作要评估的最终表达式。例如switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date], dbo_tbl_property.LASTSERVICEDATE, true ,Contour_dates.[Last CP12 Date])

查看完整回答
反对 回复 2019-10-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信