尝试使用OLEDBConnection运行时错误“1004”运行查询:应用程序定义或对象定义的错误

时间:2014-02-13 12:16:25

标签: vba excel-vba oledb ado oledbconnection

我在.Connection上得到1004错误

    With ActiveWorkbook.Connections(ConnectionName).OLEDBConnection
    .BackgroundQuery = True
    .CommandText = MyCommandText
    .CommandType = xlCmdSql
    .Connection = ConnectionString

ConnectionString如下所示:

"Provider=SQLOLEDB.1" & Chr(59) & "Integrated Security=SSPI" & Chr(59) & _
"Persist Security Info=True" & Chr(59) & "Initial Catalog=wss_back" & Chr(59) & _
"Data Source=XX-X-0009999.de.xxx.com,12345" & Chr(59) & _
"Use Procedure for Prepare=1" & Chr(59) & "Auto Translate=True" & Chr(59) & _
"Packet Size=4096" & Chr(59) & "Workstation ID=XX-X-1234567" & Chr(59) & _
"Use Encryption for Data=False" & Chr(59) & _
"Tag with column collation when possible=False"

为什么会失败的任何想法?

1 个答案:

答案 0 :(得分:0)

问题在于:

    .CommandType = xlCmdSql

CommandType需要ADODB.CommandTypeEnum的值,但您要提供xlCmdType的值。 xlCmdSql = 2,与ADODB.adCommandTypeEnum.adCmdTable相同,而不是adCmdText,这就是您想要的。

所以改成它:

With ActiveWorkbook.Connections(ConnectionName).OLEDBConnection
  .BackgroundQuery = True
  .CommandText = MyCommandText
  .CommandType = adCmdText
  .Connection = ConnectionString

......它应该有用。