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库工作正常,在设计视图中仅出现问题。
答案 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