访问设计视图,导致表达式无法识别

时间:2019-02-14 15:06:25

标签: ms-access

Writing this in guided mode was kind of awkward without the titles for each segment, here goes..

总结问题:
如果dateAdd表达式是在设计视图中编写的,则返回:
The expression you entered contains invalid syntax. You may have entered an operand without and operator

提供背景并告诉我们您已经尝试过的内容:
这是一个新的访问文档,仅用于测试,结果相同。

我有一张桌子和一个查询。该表包含一行三列。 该查询使用dateadd表达式更新表列之一。

显示您的代码:
    DateAdd("m",4,Now()

描述预期和实际结果:
它应原样接受表达式,但如果是在设计视图中编写的,则返回错误。 如果它是在SQL视图中编写的,然后转换为设计视图,则该表达式有效。

图片:

这是查询中的设计视图,其中包含表达式和错误消息:

在这里,我已更改为SQL视图并添加了相同的表达式:

最后,我已从SQL视图改回为设计视图,现在直到尝试从该视图再次对其进行编辑之前,我无法从表达式中得到错误。

有人可以告诉我为什么会这样吗,还是MS Access中的错误?

编辑:
如此处所示,VBA库工作正常,在设计视图中出现问题。

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤刷新VBA参考Access built-in functions like Year() and Date() are not recognized

如果这不起作用,则可以使用其他替代函数Date(),该函数仅为您提供当前日期部分。 Now()会同时提供当前日期和时间。

您还可以通过在模块中创建一个函数来获取Now()的值并在查询中使用此自定义函数来解决该问题。

Public Function GetNow() As Date
    GetNow = Now()
End Function

还要检查数据库中是否有任何控件,字段或称为Now的其他对象。

如果您认为问题与DateAdd函数有关,则可以为此建立变通方法:


Public Function DoDateAdd(Interval As String, Number As Integer, InputDate As Date) As Date
    DoDateAdd = DateAdd(Interval, Number, InputDate)
End Function