EXCEL VBA 连接SQL2000Mini提取数据

0422.png

通过Excel VBA连接本机的SQL2000Mini服务器并提取数据,具体代码如下:

Public Sub click()

    Dim cnn As New ADODB.Connection
    Dim sql As String
    
    
    Set cnn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
    
    strCn = "Provider=SQLOLEDB;server=127.0.0.1\SQL2000Mini,6900;Database=Uc3;Uid=sa;Pwd=Power"
    sql = "select * from dbo.Hion_v_KHZL"
    
    cnn.Open strCn
    
    '读取数据库中的数据
    rst.Open sql, cnn
    
    'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
    Dim i As Integer
    Dim j As Integer
    Dim sht As Worksheet
    i = 1
    
    Set sht = ThisWorkbook.Worksheets("sheet2")
    '循环读取数据并将数据显示到excel中
    For j = 0 To rst.Fields.Count - 1
     sht.Cells(1, j + 1).Value = rst.Fields(j).Name
    Next j
    
    Range("A2").CopyFromRecordset rst
 
    'Do While Not rs.EOF              '当数据指针未移到记录集末尾时,循环下列操作
    '    sht.Cells(i, 1) = rs("A")    '把当前记录的字段1的值保存到sheet1工作表的第i行第1列
    '    sht.Cells(i, 2) = rs("B")    '把当前字段2的值保存到sheet1工作表的第i行第2列
    '    sht.Cells(i, 3) = rs("C")    '把当前字段2的值保存到sheet1工作表的第i行第2列
    '    sht.Cells(i, 4) = rs("D")    '把当前字段2的值保存到sheet1工作表的第i行第2列
    '    rs.MoveNext                  '把指针移向下一条记录
    '    i = i + 1                    'i加1,准备把下一记录相关字段的值保存到工作表的下一行
    'Loop                                 '循环

    rst.Close   '关闭记录集,至此,程序将把某数据表的字段1和字段2保存在excel工作表sheet1的第1、2列,行数等于数据表的记录数

End Sub
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容