我有一张清关表和它们的有效期。如果已过期,我希望它是红色的,如果它在6个月内到期,我希望它是琥珀,如果它在6个月以上的绿色到期,如果它还没有被批准(因此还没有一个到期日期),那么黑色。
我已经将文本默认为黑色,然后
红色
[C_ExpiryDate]<Now()
琥珀
DateDiff("m",[C_ExpiryDate],Now())<6 And [C_ExpiryDate]>Now()
绿色
DateDiff("m",[C_ExpiryDate],Now())>6 And [C_ExpiryDate]>Now()
这似乎有几个不同的问题,红色工作很好,我可以说。但其他两个似乎处理得很差,例如2015年9月6日的清关是琥珀(今天是2014年7月3日,所以这应该是绿色的)。类似的2017年3月5日,我认为它只是看一个月,不管今年,但我不太确定如何更好地处理这件事。
不确定是否可以更容易地默认为绿色,并可能编写如下
[C_ExpiryDate] = ""
但这似乎没有起到任何作用,一切都是绿色的,即使有一个空白的约会。类似的单一报价。
任何建议都很感激..。
发布于 2014-07-03 22:17:20
您使用的是哪个版本的MS访问?这对我来说很管用:
发布于 2014-07-03 22:17:29
你写它的方式正在发生(我用#06/Sept/2015#
来代替[C_ExpiryDate]
来保持你的例子)
红色?
#06/Sept/2015#<Now() --> False
安珀?
DateDiff("m",#06/Sept/2015#,Now())<6 And #06/Sept/2015#>Now() --> True
绿色不被评估
问题是,您有更大的日期第一和较小的日期最后。把他们换过来。
或者,由于您正在检查[C_ExpiryDate]>Now()
,所以您可以获取它们的绝对值,而不必担心订单。
#06/Sept/2015# < Now() --> False (Red)
DateDiff("m",Now(),#06/Sept/2015#) < 6 And #06/Sept/2015# > Now() --> False (Amber)
DateDiff("m",Now(),#06/Sept/2015#) > 6 And #06/Sept/2015# > Now() --> True (Green)
不过,您没有equal to 6 months
条件。让你好好想想。
https://stackoverflow.com/questions/24562599
复制相似问题