EXCEL VBA連線SQL資料庫

2021-09-08 08:13:27 字數 2353 閱讀 7874

說明 :excel vba連線sql資料庫一般有以下3個步驟:

1.vba連線資料庫之前需要建立連線物件:可以採用以下方式

`dim cn as object    

set cn = createobject("adodb.connection")

也可以通過新增引用的方式,具體為:工具-----引用-------找到microsoft activex data objets library的最高版本打勾即引用成功,如下圖所示:

然後一步到位:dim cn as new adodb.connection

2.建立完物件之後就是最關鍵也是最主要的就是連線資料庫的字串的拼接了,連線資料庫的字串有兩種方式,本地連線和遠端ip連線;

3.當資料庫連線好之後就是讀取資料了,將資料讀取出來有兩種方式,

一種是通過for迴圈的方式,一種是通過將記錄集的內容copy到單元格中即range("a2").copyfromrecordset rs的方式 ,一般都比較固定。

整個**如下:

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 '把指標移向下一條記錄''

'loop '迴圈

~~~rs.close '關閉記錄集,至此,程式將把某資料表的字段1和字段2儲存在excel工作表sheet1的第1、2列,行數等於資料表的記錄數

這樣就完成了從開啟資料庫連線到讀取資料到再關閉資料庫的整個過程。

Excel VBA連線ORACLE資料庫

sub linkoracle dim strconn as string 連線字串 dim dbconn as object 連線物件 dim resset as object 查詢結果集 dim db sid,db user,db pass as string sid,使用者名稱,密碼 設定自己的...

Excel VBA連線並操作Oracle

以下是通過excel 的vba連線oracle並操作oracle相關資料的示例 1 開啟vba編輯器,在選單中點選 工具 引用 2 確保 microsoft activitex data objects 2.8 library 和 microsoft activitex data objects r...

Excel VBA資料排序

每天更新excel vba經典 祝你工作和學習更輕鬆!在如圖1所示資料列表中,需要按總成績從高到低進行排序,示例 如下。sub sortdemo range a1 sort key1 總成績 order1 xldescending,header xlyes endsub 執行sortdemo過程,排...