【问题标题】:Running SQL Server stored procedure from Excel从 Excel 运行 SQL Server 存储过程
【发布时间】:2017-07-19 22:57:36
【问题描述】:

我一直使用这个http://mikesknowledgebase.com/pages/SQLServer/RunStoredProcedureFromExcel.htm 作为框架来尝试从 VBA 运行存储过程,以便将数据直接拉入 Excel 工作表。到目前为止,我的问题是应该连接到 SQL Server 的线路。

我目前有这个:

con.Open "Provider=SQLOLEDB;Data Source=domain\serverName;Initial Catalog=databaseName;Integrated Security=SSPI;Trusted_Connection=Yes;"

但这给了我一个错误,说它不存在,或者访问被拒绝。我一直在尝试找到一个更好的示例来实际显示我将如何连接到 SQL Server,但找不到任何东西。我错过了一些明显的东西吗?还有其他方法可以连接到 SQL Server 以运行存储过程吗?

除此之外,通过查看代码,我不确定存储过程的参数是如何被存储过程读取的。例如,我有两个参数,@endDate@beginDate

我有这个:

cmd.Parameters.Append cmd.CreateParameter("@beginDate", adDate, adParamInput, 10, Range("J3").Text)
cmd.Parameters.Append cmd.CreateParameter("@endDate", adDate, adParamInput, 10, Range("J4").Text)

但它们不会在其他任何地方使用。这就是连接来自 excel 的输入和存储过程中的参数所需的全部内容吗?我只是想了解它是如何工作的。

编辑:我的数据库语法错误,需要更多信息。我的新问题是在创建参数时,我得到一个错误

应用程序为当前操作使用了错误类型的值。

我想那是因为我试图将文本转换为日期,将其存储为 varchar 可能会更好?它们都需要与 SQL Server 中的日期时间列匹配。

Edit2:显然我错了,因为参数现在起作用了。不知道为什么没有,但现在有。

【问题讨论】:

  • 您使用的是真实域名和服务器名称吗?参数代码对我来说很合适。获得正确连接的一个好方法是创建一个指向数据库的表,然后查看其连接属性,方法是右键单击该表,选择“表”,然后选择“编辑”。
  • 您的意思是在excel中使用从sql server中获取数据的东西在excel中打开一个表?我会尝试使用它来查看我是否拥有正确的域名。
  • 是的,我就是这么想的。
  • 是的,做到了。谢谢!现在只需要弄清楚参数。
  • 很高兴我能帮上忙。一旦你开始工作,参数的东西就很酷了。

标签: sql sql-server vba excel


【解决方案1】:

当我尝试做同样的事情时,我发现这个网站很有帮助。 Running a SQL Stored Procedure from Excel with Dynamic Parameters

VBA 代码看起来像这样;使用友好名称,您将查询分配为“Query1”,您将在单元格中输入参数以用于 Range。

Sub RefreshQuery()
    With ActiveWorkbook.Connections("Query1").OLEDBConnection
        .CommandText = "EXECUTE dbo.StoredProcedureName '" & _
        Sheets("Parmeters").Range("J3").Value & "','" & _
        Sheets("Parmeters").Range("J4").Value & "'"
    End With
    ActiveWorkbook.Connections("Query1").Refresh
End Sub

如果您在存储过程中使用临时表,请确保在开头包含“SET NOCOUNT ON”,在 sp 结尾包含“SET NOCOUNT OFF”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-24
    • 2016-04-28
    • 1970-01-01
    • 2018-11-10
    • 2011-11-07
    • 2018-09-01
    • 2013-02-08
    • 1970-01-01
    相关资源
    最近更新 更多