【发布时间】:2021-07-14 09:17:39
【问题描述】:
我正在尝试在 VBA 中编写一个查询语句来从 DB2 中提取数据。 DAILY_REPORT 表中的一列是 DATE,其格式为“5/20/2020 7:55:01 AM”。我有兴趣在没有时间的情况下提取与今天日期相对应的数据。下面给了我我需要的结果,但日期必须是硬输入的。如何使查询动态化?考虑使用GETDATE()函数。
Sub Report()
Dim NSQL As String
Dim conn As Object
Dim rstRecordset As Object
Const connPath As String = "DSN=;UID=;PWD=;DBALIAS="
Set conn = CreateObject("ADODB.Connection")
conn.Open connPath
NSQL = ""
NSQL = NSQL & "SELECT TECH,ID,MY_DATE FROM DAILY_REPORT WHERE cast(MY_DATE as date)= '2021-07-14'"
Set rstRecordset = CreateObject("ADODB.Recordset")
rstRecordset.Open _
Source:=NSQL, _
ActiveConnection:=conn, _
CursorType:=adOpenStatic, _
LockType:=adLockReadOnly, _
Options:=adCmdText
With ActiveSheet.QueryTables.Add( _
Connection:=rstRecordset, _
Destination:=Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
rstRecordset.Close
Set rstRecordset = Nothing
conn.Close
Set conn = Nothing
Sheets("Data").Visible = True
Call SaveAsCSV_Data
End Sub
感谢大家的帮助。
【问题讨论】:
-
你有没有尝试过?
-
你使用的是什么版本的 db2?
-
问题更像是你尝试过类似this的东西吗?
-
我使用的是 V11.1
-
编辑了帖子以显示我到目前为止所做的事情