首先我們來介紹下ADO對象:
成都創新互聯專業為企業提供孝南網站建設、孝南做網站、孝南網站設計、孝南網站制作等企業網站建設、網頁設計與制作、孝南企業網站模板建站服務,10余年孝南做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。1、Access內嵌的VBA是用ADO技術開發數據庫應用的主要工具,ADO是目前Microsoft通用的數據訪問技術;
2、 ADO對象模型包括:Connection、Recordset、Record、Command、Parameter、Field、Property、Stream、Error九個對象;
相關推薦:access數據庫教程
3、主要的ADO對象介紹:
1)Connection對象:ADO對象模型中的高級對象,用來實現應用程序與數據源的連接;
2)Command對象:主要在VBA中使用SQL語句訪問、查詢和修改數據庫中的數據,實現Recordset對象無法實現的操作(數據表級別的操作),可以使用DoCmd代替;
3)Recordset對象:ADO最為常用的、重要的對象,可以訪問表和查詢對象,返回的記錄儲存在Recorderset對象中,主要執行的操作:
①查詢數據表中的數據;
②在數據表中添加數據;
③更新數據表中的數據;
④刪除數據表中的特定數據;
在Access中引用ADO對象
1、Access引用ADO的步驟:
①聲明、初始化Connection對象;
②創建Recordset對象,編程完成各種操作;
③關閉ADO對象;
2、聲明、初始化Connection對象
\'聲明Connection對象:一般使用cn做為變量的命名前綴;
Dim coName As ADODB.Connection
\'初始化Connection對象,連接當前數據庫;
Set cnName = CurrentProject.Connection
3、聲明和打開Recordset對象
1)聲明、初始化Recordset對象
Dim rsName As ADODB.Recoreset set rsName = new ADODB.Recordset
2)打開一個Recordset對象
使用Recordset的Open方法可以打開數據表、查詢對象、或直接引用SQL查詢語句
rsName.Open source, ActiveConnection, CursorType,LockType,Option
4、關閉Recordset和Connection對象
rsName.Close cnName.Close Set rsName = Nothing Set cnName = Nothing
通過Recordset對象引用記錄字段
1、引用字段的方法有2種:直接在記錄集對象中引用字段名稱;使用記錄集對象的Fields(n)屬性引用;
Code = rsName!字段名
\'引用該字段的第一條記錄
Code = rsName .Field(n)
\'引用該字段的第n條記錄,n從0開始,可以用循環輸出需要量的記錄
2、如果記錄集字段包含空格、或者是一個保留字,則引用時必須將該字段用 [ ] 括起來;
通過Recordset對象瀏覽記錄
1.Recordset記錄集對象提供了4種方法瀏覽記錄
2、 BOF、EOF屬性分別記錄指針是否在文件開始、文件末尾;
如果記錄集指針指向某記錄時,BOF和EOF都為false;
\'添加一個窗體部件的按鈕事件:瀏覽下一條記錄
Priavte Sub ComomndNext_Click() rsDemo.MoveNext If rsDemo。EOF Then rsDemo.MoveFirst End If End Sub
3、Recordset對象的LockType屬性默認為adLockReadOnly(只讀)
通過Recordset對象編輯數據
1、用AddNew方法添加記錄
1)調用記錄集AddNew方法,產生一個空記錄
2)為空記錄的各個字段賦值;
3)用記錄集Update方法更新保持新記錄;
\'添加記錄按鈕事件,假設rsDemo記錄集有字段Id(int),Name(String),Age(int)
Private Sub CommandAdd_Click() rsDemo.MoveLast \'記錄集指針移動到記錄集最后 rsDemo.AddNew \'添加一條新紀錄 rsDemo ! Id = "123" rsDemo ! Name = "assad" rsDemo ! Age = "18" rsDemo.Update End Sub
2、用Update方法修改記錄
1)尋找并將記錄集指針移動到需要修改的記錄上;
2)對記錄中的各個字段的值進行修改;
3)用記錄集Update方法更新保持新記錄;
\'修改記錄集中Age字段所有值+1;
Private Sub UpdateAge() rsDemo.MoveFirst Do Dim Code as Integer Code = rsDemo ! Age rsDemo ! Age = Code +1 Loop Until rsDemo.EOF rsDemo.Update End Sub
3、用Delete方法刪除記錄
1)將記錄集指針移動到需要刪除的記錄上;
2)使用Delete方法刪除當前記錄;
3)將某條記錄指定為當前記錄
\'刪除rsDemo數據集中Age = "18" 的記錄 Private Sub DeleteAge(Dim deleteAge as Integer) rsDemo.MoveFirst Do IF rsDemo ! Age == deleteAge Then rsDemo。Delete rsDemo。MoveNext End IF Loop Until rsDemo.EOF End Sub
注: 一條記錄被刪除后,Access不會自動是下一條記錄成為當前記錄,這時要用MoveNext方法將記錄集指針定位到最后一條記錄中;
通過Command/DoCmd對象使用SQL命令
Access提供了DoCmd對象,其RunSOL方法可以在VBA中使用SQL命令;
DoCmd.RunSQL "SQL命令"
or:
Dim s AS String s = "SQL命令" DoCmd.RunSQL s
1、定義數據
1)創建數據表
格式: Create Table 表名 (字段名 數據類型.....)
如:DoCmd.RunSQL "Create Table 研究生(姓名 text(6),年齡 byte,入學日期 date)"
2)增加字段
格式: Alter Table 表名 Add 字段名 數據類型
如:DoCmd.RunSQL "Alter Table student Add 學費 currency"
3)改變字段類型
格式: Alter Table 表名 Alter 字段名 新數據類型
如:DoCmd.RunSQL "Alter Table student Alter 年齡 integer"
4)改變字段寬度
格式: Alter Table 表名 Alter 字段名 新寬度
如:DoCmd.RunSQL "Alter Table studnt Alter 姓名 text(6)"
5)刪除一個字段
格式: Alter 表名 Drop 字段名
如: DoCmd.RunSQL "Alter student Drop 年齡"
6)刪除一個數據表
格式: Drop Table 表名
如:DoCmd.RunSQL "Drop Table student"
7)修改數據表名字
格式: DoCmd.rename "新表名", acTable, "舊表名"
如:DoCmd.rename "學生", acTable, "student"
2、編輯數據
1)向表中追加數據
格式: Insert into 表名 Values(記錄.....)
注: 字符串型數據用 ‘ ’, 日期型型數據可以 ‘ ’,或 # #;
如:DoCmd.RunSQL "Insert into student Values(\'李達\',35,\'2003-1-15\') "
或:
Dim name As String Dim age As Byte, dates As Date name = InputBox("輸入學生姓名") dates = InputBox("輸入入學日期") ages = 17 DoCmd.RunSQL "Insert into student Values (\'" & name & "\'," & age & ",\'" & dates & "\')"
2)修改表中記錄
格式: Update 表名 set 字段=數值 Where 限定條件
如:DoCmd.RunSQL "Update student set 年齡=20 Where 姓名=\'李達\'"
3)刪除待定記錄
格式: Delete from 表名 where 限定條件
如: DoCmd.RunSQL "Delete from student where 姓名=\'李達\'"
3、實現數據完整性約束
1)設置主鍵
格式: Alter Table 表名 Add Primary Key (字段名)
如:DoCmd.RunSQL "Alter Table 導師 Add Primary Key (導師編號)"
2)設置外鍵
格式: Alter Table 主表名 Add Foreign Key (字段名) References 從表名
如:DoCmd.RunSQL "Alter Table 研究生 Add Foreign Key (導師編號) References 導師"
4、執行查詢操作
VBA程序中可以用SQL命令完成數據查詢操作,但是無法直接將查詢結果所返回的記錄集按數據表的形式顯示,解決方法有:
1)將查詢結果的返回記錄集生成一個新表保存在數據庫中,然后用ADO記錄集對象對這個表進行各種操作,完成后再刪除這個表;
Docmd.runSQL "Select 姓名,職稱,年齡 Into temp From 導師 Where 職稱 in(\'教授\',\'副教授\')"
操作.....
rsTeacher.Close Docmd.runSQL "Drop Table temp"
2)將返回的記錄集看成保存在內存中的一個臨時表,用ADO記錄集對象直接打開該查詢指令;
訪問當前數據庫以外的數據庫
1、Access提供了Connection.Open方法以連接另一個數據庫
2、格式: Connection對象.Open "Provider=提供者;Date Source=數據庫名;User ID=用戶;PassWord=密碼"
3、其中提供者為 Microsoft.Jet.OLEDDB.4.0;數據庫名包括 數據庫所在的路徑(包括.mdb文件名)。
網站標題:利用ADO技術操作access數據庫的方法
分享鏈接:http://m.newbst.com/article32/cppspc.html
成都網站建設公司_創新互聯,為您提供網站營銷、域名注冊、網站設計、App開發、網站排名、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯