MS Access语法无效

时间:2012-12-07 04:24:48

标签: vba ms-access

在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

错误似乎在第一行。

1 个答案:

答案 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