我有一个查询,根据前一个表单中选择的日期(开始日期和结束日期)过滤记录。我希望查询过滤特定的日期范围,或者如果字段留空则输出所有记录。
我不熟悉SQL。有没有办法添加if-then语句?
如果需要,我可以使用vba,但如果可能的话,我想使用Access GUI。
答案 0 :(得分:0)
如果表单上的一个(或两个)搜索字段为空,则可以分别使用 StartDate 和 EndDate 的这些条件将它们与自身进行比较(Null) ):
>=Nz([Forms]![YourForm]![FromDate], [StartDate])
<=Nz([Forms]![YourForm]![ToDate], [EndDate])
答案 1 :(得分:0)
如果您有一个参数,在WHERE子句(查询构建器中的条件)中使用,并且您希望在参数为空时显示所有记录,只需将此参数添加为新列,并将def prime(int x):
if x < 0: x *= -1
i = 2
while i*i <= x:
if x % i == 0: return False
i += 1
return True
条件添加到{{1}或者,更好地添加一个表达式OR
或Is Null
“”`的列。不幸的是在查询构建器中,如果你有很少的参数,这个结构可能会非常复杂,在SQL中看起来要简单得多,例如在你的情况下它会是这样的:
Nz([MyParam],"") and in Condition area in
有时更简单的编辑SQL然后切换到设计视图