在 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
最佳答案
您的.CommandText
字符串在AND
周围有一个错误(注意它的颜色是蓝色的......它被解析为VBA关键字And
)。
它应该是:
"EXEC SELECT * FROM RECONCILIATION.dbo.TBL_FMDDATA_HIST_SPLIT
WHERE AsOfDate between '" & StartDate & "'" & " AND " & "'" & EndDate & "'"
关于vba - Excel VBA将参数传递给OLEDBConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722443/