VBA串連SQL SERVER資料庫操作Excel

來源:互聯網
上載者:User

標籤:vba   sql server   excel   



VBA串連SQL SERVER資料庫操作Excel。

Sub 按鈕1_Click()


    Dim i As Integer, j As Integer, sht As Worksheet ‘i,j為整數變數;sht 為excel工作表物件變數,指向某一工作表


    ‘Dim cn As New ADODB.Connection ‘定義資料連結對象 ,儲存串連資料庫資訊;請先添加ADO引用
    ‘Dim rs As New ADODB.Recordset ‘定義記錄集對象,儲存資料表

    ‘工具 ---〉引用 ---〉Microsoft ActiveX data objects ....


    
        ‘下面兩句就不需要增加引用ADO
    Set cn = CreateObject("Adodb.Connection")
    Set rs = CreateObject("Adodb.Recordset")
   
   
    Dim strCn As String, strSQL As String ‘字串變數
    Dim strCond As String
    strCn = "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password" ‘定義資料庫連結字串
   
    ‘下面的語句將讀取資料表資料,並將它儲存到excel工作表中:工作表為一張兩維表,記錄集也是一張兩維表
   
    strSQL = "select CUSTOMER_NAME from VSC_BI_CUSTOMER " ‘定義SQL查詢命令字串
   
    cn.Open strCn ‘與資料庫建立串連,如果成功,返回連線物件cn
    rs.Open strSQL, cn ‘執行strSQL所含的SQL命令,結果儲存在rs記錄集對象中
    i = 2
   
    Set sht = ThisWorkbook.Worksheets("Test") ‘把sht指向當前活頁簿的Test工作表
    Do While Not rs.EOF ‘當資料指標未移到記錄集末尾時,迴圈下列操作
      sht.Cells(i, 1) = rs("CUSTOMER_NAME") ‘把目前記錄的欄位1的值儲存到sheet1工作表的第i行第1列
      ‘把當前欄位2的值儲存到sheet1工作表的第i行第2列
      rs.MoveNext ‘把指標移向下一條記錄
      i = i + 1 ‘i加1,準備把下一記錄相關欄位的值儲存到工作表的下一行
    Loop ‘迴圈
    rs.Close ‘關閉記錄集,至此,程式將把某資料表的欄位1和欄位2儲存在excel工作表sheet1的第1、2列,行數等於資料表的記錄數
   
    cn.Close ‘關閉資料庫連結,釋放資源
End Sub

VBA串連SQL SERVER資料庫操作Excel

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.