1

在 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

错误似乎在第一行。

4

1 回答 1

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 Criteria论点令人困惑,我迷路了。但我怀疑这个IsNull()功能可能会给你你想要的东西而不需要Eval()

If IsNull(DLookup("BaseRate","RATELOOKUP", "your Criteria here")) = True Then
于 2012-12-07T05:12:31.783 回答