首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Excel宏中运行SQL脚本

在Excel宏中运行SQL脚本
EN

Stack Overflow用户
提问于 2012-07-25 23:09:26
回答 1查看 9.5K关注 0票数 0

我有一个关于Excel中的宏以及如何使用它们的问题。我最近创建了一个SQL查询,它将命中几个TFS数据库来提取数据。我只想从excel中运行这个脚本,这样脚本的输出就会自动发布到excel中,并带有单独的列标题。我以前见过用VB的宏在excel中做这件事。

作为解决方法,我创建了一个小的bat文件来运行sqlcmd,检查包含脚本的sql文件,最后将输出推送到csv文件。这样做的唯一问题是,CSV的输出将结果推入一行,而不是用标题分隔它们。

batfile的当前代码:

sqlcmd -E -S TFSServer\TFS2010 -i C:\test\testquery.sql -o C:\test\test.csv

EN

回答 1

Stack Overflow用户

发布于 2012-07-25 23:18:53

为什么不使用ssis包或ssrs报告进行数据提取?宏是如此..。上个世纪。

如果你坚持使用宏,这里有一个例子:

代码语言:javascript
运行
复制
Dim con As ADODB.Connection, _
cmd As ADODB.Command, _
rs As ADODB.Recordset, _
strSQL As String, _
i As Integer

strSQL = "EXEC SP_StoredProcedureToGetData"

Set con = New ADODB.Connection
con.Open "Provider=SQLOLEDB;Data Source=SQLSERVER;" & _
    "Initial Catalog=DATABASE;User ID=USERNAME;Password=PASSWORD"

Set cmd = New ADODB.Command
With cmd
    .ActiveConnection = con
    .CommandText = strSQL
    .CommandType = adCmdStoredProc
End With

Set rs = New ADODB.Recordset
With rs
    .CursorLocation = adUseClient
    .CursorType = adOpenKeyset
    .LockType = adLockBatchOptimistic
End With
Set rs = cmd.Execute

Cells(1, 1) = "Column1"
Cells(1, 2) = "Column2"
Cells(1, 3) = "Column3"
Cells(1, 4) = "Column4"
Cells(1, 5) = "Column5"
Cells(2, 1).CopyFromRecordset rs

Set con = Nothing
Set cmd = Nothing
Set rs = Nothing
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11652877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档