在Access 2007中下面的代码给出了错误2434:您输入的表达式包含无效语法。
If (Eval("DLookUp(""[BaseRate]"",""RATELOOKUP"",""|DatePart(""yyyy"",[TxDate])| & |DatePart(""m"",[TxDate])| = [RATELOOKUP].[PERIOD]"") Is Null")) Then
' Checks for Current Base Rate
Beep
MsgBox "Interest Rate required for this month", vbExclamation, ""
End If
错误似乎在第一行。
答案 0 :(得分:2)
在您提供给Eval()
的字符串表达式中正确引用可能非常具有挑战性。以下是Eval()
在您的代码中实际看到的内容:
DLookUp("[BaseRate]","RATELOOKUP","|DatePart("yyyy",[TxDate])| & |DatePart("m",[TxDate])| = [RATELOOKUP].[PERIOD]") Is Null
在使用Eval()
时考虑一种不同的方法,可以让您准确了解要求Eval()
评估的内容。
Dim strEval As String
strEval = "your expression here"
Debug.Print strEval ' <- examine the string Eval() receives
' finally ...
If Eval(strEval) ...
然而,这件事对我来说太复杂了,所以我怀疑应该有一个更简单的解决方案甚至不需要Eval()
。很遗憾,您的DLookup
条件参数令人困惑,我迷路了。但我怀疑IsNull()
函数可能会给你你想要的东西,而不需要Eval()
:
If IsNull(DLookup("BaseRate","RATELOOKUP", "your Criteria here")) = True Then