Sql 查询表上的应用程序定义或对象定义错误

Sql 查询表上的应用程序定义或对象定义错误,sql,vba,excel,Sql,Vba,Excel,我试图从SQL中的表中获取数据,并使用VBA将其导出到工作表中 在每次不创建新的数据连接的情况下,我无法想出如何做到这一点 以下是我到目前为止一直在做的事情: 我将SQL查询放入一个单元格中,并给变量命名为“#ID”和“Date”。在宏中,我用实际信息替换这些变量中的数据。到目前为止,这并没有给我带来任何问题,因为在使用SQL时查询运行没有问题。要将数据从SQL导出到我的工作表中,我使用的代码适用于其他工作簿;但是,当我在此工作簿中运行它时,会出现错误“应用程序定义的错误或对象定义的错误”。以下

我试图从SQL中的表中获取数据,并使用VBA将其导出到工作表中

在每次不创建新的数据连接的情况下,我无法想出如何做到这一点

以下是我到目前为止一直在做的事情:

我将SQL查询放入一个单元格中,并给变量命名为“#ID”和“Date”。在宏中,我用实际信息替换这些变量中的数据。到目前为止,这并没有给我带来任何问题,因为在使用SQL时查询运行没有问题。要将数据从SQL导出到我的工作表中,我使用的代码适用于其他工作簿;但是,当我在此工作簿中运行它时,会出现错误“应用程序定义的错误或对象定义的错误”。以下是完整的宏:

Sub-CurrentBreakout()
将SQLString设置为字符串
作为字符串的Dim ID
将日期设置为字符串
朦胧的一年
Dim daycount作为字符串
SQLString=Range(“CurrentBreakout”)'这是存储查询的范围
ID=范围(“ID”)
日期=范围(“当前月”)
年份=范围(“当前年份”)
daycount=范围(“CurrDayCount”)
SQLString=Replace(SQLString,“#ID”,ID)
SQLString=Replace(SQLString,“#日期”,日期)
SQLString=Replace(SQLString,#CurrDayCount,daycount)
SQLString=Replace(SQLString,“#curryyear”,year)
使用ActiveSheet.ListObjects.Add(SourceType:=0,Source:=0)_
“ODBC;DSN=\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu_
,目的地:=范围(“CurrCon”)。查询表
.CommandText=SQLString
.rowNumber=False
.FillAdjacentFormulas=False
.PreserveFormatting=True
.refreshinfoleopen=False
.BackgroundQuery=True
.RefreshStyle=xlInsertDeleteCells
.SavePassword=False
.SaveData=True
.AdjustColumnWidth=True
.RefreshPeriod=0
.PreserveColumnInfo=True
.ListObject.DisplayName=“表\u CurrCon”

.Refresh BackgroundQuery:=False 以 端接头

我在“.Refresh BackgroundQuery:=False”处得到错误。这可能不是完成此任务的最佳方式,但这是我知道的唯一方式。

。Refresh BackgroundQuery:=False是它实际执行该代码块的位置,因此它可以是之前的任何代码块。日期和年份是函数,因此不能用作变量名。尝试更改它们,看看是否有帮助。能否显示实际的SQL查询-其中可能有需要在VBA中转义的字符..Refresh BackgroundQuery:=False是它实际执行该代码块的位置,因此它可以是之前的任何内容。日期和年份是函数,因此不能用作变量名。尝试更改这些,看看是否有帮助。能否显示实际的SQL查询-其中可能有需要在VBA中转义的字符。