VBA查询数据中的SQL,其中日期早于今天

时间:2015-05-24 19:43:10

标签: sql vba date

将数据过滤到比今天更早的日期的方法是什么?

我正在尝试使用以下代码,但收到错误

  

表达中未定义的功能

我也尝试使用CURDATE(),但这也不起作用。

Sub CreateQueryTableWithParameters()
    Dim qryTable As QueryTable
    Dim rngDestination As Range
    Dim strConnection As String
    Dim strSQL As String

    With Sheets("Sheet1")
        .Range("A:Z").Clear
        .Activate
    End With

' Define the connection string and destination range.
strConnection = "ODBC;DSN=RDBWC;UID=;PWD=;DBALIAS=RDBWC;"
Set rngDestination = Sheet1.Range("A1")
' Create a parameter query.
strSQL = "SELECT *"
strSQL = strSQL & " FROM PDB2I.DI_NOS_OST_MVT_01 "
strSQL = strSQL & " WHERE VAL_DT < GETDATE() "
' Create the QueryTable.
Set qryTable = Sheet1.QueryTables.Add(strConnection, rngDestination)

' Populate the QueryTable.
qryTable.CommandText = strSQL
qryTable.CommandType = xlCmdSql
qryTable.Refresh False
    With Columns("D:D")
        .NumberFormat = "_(* #,##0.00_);_(* (#,##0.00);_(* ""-""??_);_(@_)"
        .AutoFit
    End With        
    Selection.AutoFilter
End Sub

2 个答案:

答案 0 :(得分:2)

如果您正在使用MS Access(似乎可能使用VBA),则getdate()被称为now()。所以试试这个:

SELECT *
FROM PDB2I.DI_NOS_OST_MVT_01 "
WHERE VAL_DT < NOW();

答案 1 :(得分:0)

感谢您的努力。我发现当前日期函数只是CURRENT DATE。工作正常