日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VBA and Access

發布時間:2023/11/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBA and Access 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
>>.用vba連接ACESS: Set?Conn=?Server.CreateObject("ADODB.Connection") Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data?Source="?&?Server.MapPath("sample.mdb") Conn.Open>>.用vba連接EXCEL,打開EXCEL記錄集: Set?connExcel?=?Server.CreateObject("ADODB.Connection") connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data?Source="?&?Server.MapPath(?"InputExcel\sample.xls")?&";Extended?Properties='Excel?8.0;HDR=YES;IMEX=1';"? connExcel.Open?connStr Set?rs?=?Server.CreateObject("ADODB.Recordset") rs.Open?"Select?*?From?[sheet1$]",?connExcel,?0,?1>>.vba數據處理[轉載]: =============================================== 用Excel+VBA+SQL?Server進行數據處理使用Excel+VBA+SQL?Server進行數據處理是一種簡單有效方法,掌握以下基礎知識實現快速入門(掌握excel/vba/sqlserver各1%內容,你就能成為數據處理高手的:)):一、Excel基礎知識 了解工作簿(Workbook)、工作表(Worksheet)、單元格(Cell)等的基本概念,熟悉一些基本操作。二、SQL?Server基礎知識 參見 1、數據庫有關概念:數據庫、表、記錄、字段 A)數據庫(Database) B)表(Table)、記錄(行,Row,Record)、字段(列,Column,Field)...2、常見數據操作的SQL命令:select,?insert?,?update?,delete三、VBA基礎知識: 1、基本概念。 2、基本控制結構: ·:程序按順序執行; ·命令:if?條件?then <如果條件成立執行本語句塊> end?if?或:if?...?then ...? else? ... end?if?或:if?...?then ... elseif?... ... else ... end?if? 等。?!っ?#xff1a;for?i=??to??? ... next或do?while?... ... loop3、在VBA中操縱對象,先理解操縱EXCEL工作表和數據庫對象:將值寫入EXCEL單元格,如:thisworkbook.worksheets("sheet1").cells(1,2)=1234444從EXCEL單元格取得數值,如:x=thisworkbook.worksheets("sheet1").cells(1,2)數據庫操作:cn.open?...(建立數據連接對象) rs.open?...?(建立數據集對象) x=rs("...")?(讀取數值) rs.close?(關閉rs) cn.close?(關閉cn)cn.execute?(執行)...四、例子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=====================================>>.聽說可以用一條語句實現記錄集導入excel表,而且不是用循環的,不知道是真是假,等待高手的回答。=====eg Sub?AddNew_Click() '引用Microsoft?ActiveX?Data?Objects?2.x?LibraryDim?cnn?As?New?ADODB.ConnectionDim?myPath?As?StringDim?myTable?As?StringDim?SQL??As?StringmyPath?=?ThisWorkbook.Path?&?"\Database1.accdb"myTable?=?"MainTable"On?Error?GoTo?errmsgcnn.Open?"Provider=Microsoft.Ace.OLEDB.12.0;Data?Source="?&?myPathIf?Range("A1").CurrentRegion.Rows.Count?=?1?Then?Exit?SubSQL?=?"insert?into?"?&?myTable?&?"?select?CustName,Cell?from?[Excel?12.0;Database="?&?ActiveWorkbook.FullName?&?"].[AddNew$]"cnn.Execute?SQLMsgBox?"數據已經添加到數據庫!",?vbInformation,?"添加數據"cnn.CloseSet?cnn?=?NothingExit?Sub errmsg:MsgBox?Err.Description,?,?"錯誤報告" End?Sub


轉載于:https://blog.51cto.com/ericfu/1871958

總結

以上是生活随笔為你收集整理的VBA and Access的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。