【发布时间】:2025-01-14 10:30:01
【问题描述】:
在 Excel 工作簿中,我有几个到 SQL Server 数据库的连接。我以为我可以运行一个像下面这样的小脚本,但它没有做我想要的。我想刷新 OLEDBConnection,并传入 StartDate 和 EndDate,但它实际上并没有与连接进行通信。
Sub RefreshWithDates()
Dim StartDate As Date
Dim EndDate As Date
StartDate = Sheets("Pivot_Summary").Range("B1").Value
EndDate = Sheets("Pivot_Summary").Range("B2").Value
With ActiveWorkbook.Connections("FMDDATA_HIST_SPLIT").OLEDBConnection
.CommandText = "SELECT * FROM RECONCILIATION.dbo.TBL_FMDDATA_HIST_SPLIT Where AsOfDate between '" & StartDate & "' & " And " & '" & EndDate & "'"
ActiveWorkbook.Connections("FMDDATA_HIST_SPLIT").Refresh
End With
End Sub
【问题讨论】:
-
也许它正在通信但失败,因为您的 sql server 期望的日期格式与 VBA 为日期保存的日期格式不同。考虑使用
Test()函数在你的sql 中更改Text(StartDate, 'YYYY-MM-DD')之类的格式。 -
哦,我知道它现在是如何工作的了。您必须设置命令类型 = 默认,然后相应地更新命令文本。就是这样。