日期:2014-05-18  浏览次数:20417 次

请教:使用EXCEL宏读取SQL SERVER的数据,然后把数据填充到EXCEL中
如题,通过EXCEL宏编程来,使用数据对象ADO访问SQL数据库,从而进行数据查询,并将查询的数据返回到EXCEL中。

谁有代码给一下,谢谢啦,急用。

------解决方案--------------------
是VBA 刚好这几天我也在用EXCEL 做报表..首先要引用类库...然后通过键钮事件..写下如下代码;
Private Sub CommandButton1_Click() '调存储过程的二表关联查询
Dim cn As New ADODB.Connection
Dim comm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim i As Integer
Dim str As String, str1 As String
cn.ConnectionString = "Provider=sqloledb;Server=IT13\SQLEXPRESS;Database=abc;Uid=sa;Pwd=pass;"
cn.Open
Set comm.ActiveConnection = cn
comm.CommandText = "info_select" '存储过程名为info_select
comm.CommandType = adCmdStoredProc
str = ComboBox1.Text str1 = ComboBox2.Text 

comm.Parameters(1) = str '存储过程的第一个参数


comm.Parameters(2) = str1 '存储过程的第二个参数




Set rs = comm.Execute
i = 6
Range("A5:T16").Clear '先清空单元格A5:T16的数据..
Sheet1.Cells(5, 1) = rs.Fields(0).Name '列名
Sheet1.Cells(5, 2) = rs.Fields(1).Name
Sheet1.Cells(5, 3) = rs.Fields(2).Name
Sheet1.Cells(5, 4) = rs.Fields(3).Name
Do While Not rs.EOF
Sheet1.Cells(i, 1) = rs("id")
Sheet1.Cells(i, 2) = rs("name")
Sheet1.Cells(i, 3) = rs("age")
Sheet1.Cells(i, 4) = rs("sex")
rs.MoveNext
i = i + 1
Loop
rs.Close
Set rs = Nothing
Set comm = Nothing
cn.Close
Set cn = Nothing
End Sub