【问题标题】:SQL in VBA query data where date is older than todayVBA 中的 SQL 查询日期早于今天的数据
【发布时间】:2015-08-06 07:14:09
【问题描述】:

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

我正在尝试使用以下代码,但出现错误

表达式中的未定义函数获取日期

我也尝试过使用 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

【问题讨论】:

    标签: sql vba date


    【解决方案1】:

    如果您使用的是 MS Access(这很可能与 VBA 一起使用),则 getdate() 称为 now()。所以试试这个:

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

    【讨论】:

      【解决方案2】:

      感谢您的尝试。我发现这里的当前日期函数只是 CURRENT DATE。工作正常

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-05
        • 1970-01-01
        • 2018-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多