用Excel+VBA+SQL Server進行資料處理

來源:互聯網
上載者:User
sub test()  '定義過程名稱
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  '定義記錄集對象,儲存資料表
Dim strCn As String ,strSQL as String '字串變數

strCn = "Provider=sqloledb;Server=伺服器名稱或IP地址;Database=資料庫名稱;Uid=使用者登入名稱;Pwd=密碼;"    '定義資料庫連結字串

'下面的語句將讀取資料表資料,並將它儲存到excel工作表中:畫兩張表想像一下,工作表為一張兩維表,記錄集也是一張兩維表
strSQL = "select  欄位1,欄位2 from  表名稱"    '定義SQL查詢命令字串
cn.Open strCn   '與資料庫建立串連,如果成功,返回連線物件cn
rs.Open strSQL, cn  '執行strSQL所含的SQL命令,結果儲存在rs記錄集對象中
i = 1
Set sht = ThisWorkbook.Worksheets("sheet1")   '把sht指向當前活頁簿的sheet1工作表
Do While Not rs.EOF     '當資料指標未移到記錄集末尾時,迴圈下列操作
    sht.Cells(i, 1) = rs("欄位1")    '把目前記錄的欄位1的值儲存到sheet1工作表的第i行第1列
    sht.Cells(i, 2) = rs("欄位2")    '把當前欄位2的值儲存到sheet1工作表的第i行第2列
    rs.MoveNext                      '把指標移向下一條記錄
    i = i + 1                        'i加1,準備把下一記錄相關欄位的值儲存到工作表的下一行
Loop                                 '迴圈
rs.Close   '關閉記錄集,至此,程式將把某資料表的欄位1和欄位2儲存在excel工作表sheet1的第1、2列,行數等於資料表的記錄數

'下面的語句將讀取excel工作表資料,並將之簡單計算後存入資料庫,這裡使用上面程式中的一些變數
'假設分別讀取工作表sheet1第5行至第500行的第8列和第9列已存在的資料,然後將它們相乘,並將積存入資料庫的某個表
strSQL=""    '清空上面定義的變數
for i=5 to 500  '迴圈開始,i從5到500
    strSQL=strSQL & "insert into 表名(欄位) values(" & sht.cells(i,8)*sht.cells(i,9) & ") ;"      '構造SQL命令串
next
'至此產生一串SQL命令串,儲存的內容大概為:insert into 表名(欄位) values(數值1);insert into 表名(欄位) values(數值2);
cn.execute strSQL  '執行該SQL命令串,如果SQL命令沒有錯誤,將在資料庫中添加501個記錄;也可以用rs.open strSQL,cn 執行
cn.close  '關閉資料庫連結,釋放資源
end sub
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.