設置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表格,而且不是循環的。不知道是真是假,等待大師的回答。