我有一个关于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
发布于 2012-07-25 15:18:53
为什么不使用ssis包或ssrs报告进行数据提取?宏是如此..。上个世纪。
如果你坚持使用宏,这里有一个例子:
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
https://stackoverflow.com/questions/11652877
复制相似问题