vba - Excel VBA将参数传递给OLEDBConnection

标签 vba excel

在 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/

相关文章:

java - 如何使用 java 将 Excel 转换为 XML?

excel - 适用于 Excel 2010/2007/2003 的日期选择器

excel - 使用 filesystemobject 检查文件是否存在

ms-access - MS Access 中未定义“FileDialog”类型

excel - 如何阻止 Excel 在不同区域设置中重命名工作表函数

excel - 在excel公式中将范围转换为地址

Excel 脚本 : getNumberFormat from column A to C

excel - VBA:AddDate + time 更改格式

excel - 出错时转到在一个模块中工作,但不在另一个模块中

vba - Excel VBA 合并重复行并添加数量