當前位置:成語大全網 - 書法字典 - 如何用vba代碼連接access數據庫查找代碼

如何用vba代碼連接access數據庫查找代碼

& gt& gt使用vba連接訪問:

設置Conn=服務器。CreateObject("ADODB。連接”)

conn . ConnectionString = " Provider = Microsoft。Jet . OLEDB.4.0數據源= " & amp服務器。MapPath("sample.mdb ")

控制室打開

& gt& gt用vba連接EXCEL並打開EXCEL記錄集:

Set connExcel = Server。CreateObject("ADODB。連接”)

connStr="Provider=Microsoft。Jet . OLEDB.4.0數據源= " & amp服務器。MapPath(" input excel \ sample . xls ")& amp;";擴展屬性= ' Excel 8.0HDR =是;IMEX = 1 ';"

康奈賽。開放連接

設置rs =服務器。CreateObject("ADODB。記錄集”)

rs。打開“Select * From [sheet1$]”,connExcel,0,1

& gt& gt。vba數據處理[轉載]:

===============================================

用Excel+VBA+SQL Server進行數據處理

使用Excel+VBA+SQL Server進行數據處理是壹種簡單有效的方法,掌握以下基礎知識就可以快速上手(掌握excel/vba/sqlserver 1%各壹個,就成為數據處理專家:)):

壹、Excel的基礎知識

了解工作簿、工作表、單元格的基本概念,熟悉壹些基本操作。

二、SQL Server的基礎知識

看見

1,數據庫相關概念:數據庫,表,記錄,字段。

a)數據庫

b)表格、記錄(行、記錄)和字段(列、字段)...

2.常見數據操作的SQL命令:選擇、插入、更新、刪除。

三、VBA基礎知識:

1,基本概念。

2、基本控制結構:

順序結構:程序按順序執行;

分支結構命令:

如果條件然後

& lt如果條件成立,執行以下語句塊>:

如果…就會結束

或者:

如果...然後

...

其他

...

如果…就會結束

或者:

如果...然後

...

埃爾塞夫...

...

其他

...

如果…就會結束

等等。。

循環結構命令:

因為我=?去哪?

...

然後

或者

做什麽...

...

3.要在VBA中操作對象,首先要了解如何操作EXCEL工作表和數據庫對象:

將該值寫入EXCEL單元格,如this workbook . worksheets(" sheet 1 ")。單元格(1,2) = 1234444。

從EXCEL單元格中獲取數值,如:x = thisworkbook。工作表(“sheet1”)。單元格(1,2)。

數據庫操作:

Cn.open...(建立數據連接對象)

Rs.open...(創建數據集對象)

X=rs(" ... ")(讀取值)

Rs.close(關閉Rs)

Cn.close(關閉Cn)

Cn.execute(執行sql語句)

...

第四,例子

“Sub test()”定義了進程名。

Dim i asinteger,j asinteger,shtas工作表‘I,j為整型變量;Sht是壹個excel工作表對象變量,指向壹個工作表。

Dim cn作為新ADODB。“連接”定義數據鏈接對象並保存連接數據庫信息;請先添加ADO引用。

Dim rs作為新ADODB。“記錄集”定義記錄集對象並保存數據表。

Dimstrcn as string,strsqlas string '字符串變量

strCn = " Provider = sqloledbServer=服務器名稱或IP地址;數據庫=數據庫名稱;Uid=用戶登錄名;Pwd=密碼定義數據庫鏈接字符串。

下面的語句將讀取數據表數據並保存在excel工作表中:繪制兩個表假設工作表是壹個二維表,記錄集也是壹個二維表。

StrSQL = "select field 1,field 2 from table name " '定義SQL查詢命令字符串。

Cn。' Open strCn '建立與數據庫的連接,如果成功則返回連接對象Cn。

盧比Open strSQL,cn '執行strSQL中包含的SQL命令,結果保存在rs記錄集對象中。

i = 1

Set sht = thisworkbook。worksheets ("sheet1 ")'指向當前工作簿的sheet1工作表。

做而不做。當數據指針沒有移動到記錄集的末尾時,循環下列操作。

Sht。Cells(i,1) = rs ("field 1 ")'將當前記錄的字段1的值保存到sheet1工作表的第壹行和第1列。

Sht。Cells(i,2) = rs ("field 2 ")'將當前字段2的值保存到工作表第壹行的第二列1。

將指針移動到下壹條記錄。

I = i+1 'i加1,準備將下壹條記錄的相關字段的值保存到工作表的下壹行。

循環回路

盧比“關閉”關閉記錄集。此時,程序會將壹個數據表的字段1和2保存在excel工作表sheet1的1和2列中,行數等於數據表中的記錄數。

下面的語句將讀取excel工作表數據,經過簡單計算後存儲在數據庫中。這裏使用了上述程序中的壹些變量。

假設分別讀取工作表sheet1的第5行到第500行、第8列和第9列中的現有數據,然後將它們相乘,並將乘積存儲在數據庫的壹個表中。

StrSQL= " " '清空上面定義的變量。

對於i=5到500 '循環開始,I的範圍從5到500。

strSQL = strSQL & amp"插入到表名(字段)值(" &;幹細胞(I,8)*幹細胞(I,9)& amp;") ;"構造SQL命令字符串

然後

此時生成壹串SQL命令,保存的內容大概是:insert into表名(字段)值(值1);插入到表名(字段)值(值2);...

' Cn.execute strSQL '執行SQL命令字符串,如果SQL命令沒有錯誤,將向數據庫添加501條記錄;也可以用rs.open strSQL,cn執行。

Cn.close '關閉數據庫鏈接,釋放資源。

末端接頭

=====================================

& gt& gt聽說記錄集可以壹句話導入excel表格,而且不是循環的。不知道是真是假,等待大師的回答。