VBA鏈接數據庫


Dim CN As Object '定義數據鏈接對象 ,保存連接數據庫信息
Dim rs As Object '定義記錄集對象,保存數據表

Set CN = CreateObject("ADODB.Connection") '創建數據鏈接對象
Set rs = CreateObject("ADODB.RecordSet") '創建記錄集對象,用於接收數據查詢獲得的結果集

Dim strCn As String, strSQL As String '鏈接數據庫的字符串變量
'定義本地數據庫鏈接字符串
strCn = "Provider=sqloledb;Server=本地數據庫的名稱;Database=數據庫名;Integrated Security=SSPI;Persist Security Info=False;"

'定義遠程數據庫鏈接字符串
strCn = "Provider=sqloledb;Data Source=遠程數據庫的IP地址;Initial Catalog=數據庫名;User ID=登陸名;Password=密碼;Persist Security Info=False;"

strSQL = "select * from TUTORIALS_TBL" '設置SQL語句
CN.Open strCn '打開連接
rs.Open strSQL, CN '讀取數據庫中的數據

Dim i As Integer, sht As Worksheet 'i,j為整數變量;sht 為excel工作表對象變量,指向某一工作表
i = 1
Set sht = ThisWorkbook.Worksheets("sheet1")
'循環讀取數據並將數據顯示到excel中
For j = 0 To rs.Fields.Count - 1
sht.Cells(1, j + 1).Value = rs.Fields(j).Name
Next j
Range("A2").CopyFromRecordset rs
~~~
'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 '循環
~~~
rs.Close '關閉記錄集,至此,程序將把某數據表的字段1和字段2保存在excel工作表sheet1的第1、2列,行數等於數據表的記錄數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM