九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

Access基礎(chǔ)與應(yīng)用教程PPT課件第9章VBA的數(shù)據(jù)庫編程

  • 資源ID:22733951       資源大?。?span id="24d9guoke414" class="font-tahoma">2.71MB        全文頁數(shù):44頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

Access基礎(chǔ)與應(yīng)用教程PPT課件第9章VBA的數(shù)據(jù)庫編程

在 開 發(fā) Access數(shù) 據(jù) 庫 應(yīng)用 系 統(tǒng) 時 , 為 了 能 開 發(fā) 出更 實 用 、 更 有 效 的 Access數(shù)據(jù) 庫 應(yīng) 用 程 序 , 以 便 能 快速 、 有 效 地 管 理 好 數(shù) 據(jù) ,還 應(yīng) 當(dāng) 學(xué) 習(xí) 和 掌 握 VBA的數(shù) 據(jù) 庫 編 程 方 法 。 退出 9.1 數(shù) 據(jù) 庫 訪 問 接 口9.2 數(shù) 據(jù) 訪 問 對 象 ( DAO)9.3 ActiveX數(shù) 據(jù) 對 象 ( ADO) 為了在VBA程序代碼中能方便地實現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)訪問功能,VBA語言提供有相應(yīng)的通用的接口方式。 VBA是通過 Microsoft Jet 數(shù)據(jù)庫引擎工具來支持對數(shù)據(jù)庫的訪問。所謂數(shù)據(jù)庫引擎實際上是一組動態(tài)鏈接庫(DLL),當(dāng)程序運行時被連接到 VBA 程序而實現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)訪問功能。數(shù)據(jù)庫引擎是應(yīng)用程序與物理數(shù)據(jù)庫之間的橋梁,它以一種通用接口的方式,使各種類型物理數(shù)據(jù)庫對用戶而言都具有統(tǒng)一的形式和相同的數(shù)據(jù)訪問與處理方法。 在VBA語言中,提供了如下三種基本的數(shù)據(jù)庫訪問接口: (1)開放數(shù)據(jù)庫互連應(yīng)用編程接口(簡稱ODBC API)。 (2)數(shù)據(jù)訪問對象(簡稱DAO)。 (3)Active數(shù)據(jù)對象(簡稱ADO)。 在VBA語言程序設(shè)計中,通過數(shù)據(jù)庫引擎可以訪問如下三種類型的數(shù)據(jù)庫: (1)本地數(shù)據(jù)庫,即是 Access 數(shù)據(jù)庫。 (2)外部數(shù)據(jù)庫,即是所有的索引順序訪問方法 (ISAM)數(shù)據(jù)庫。 (3)ODBC數(shù)據(jù)庫,即是符合開放數(shù)據(jù)庫連接 (ODBC)標(biāo)準(zhǔn)的數(shù)據(jù)庫,例如,Oracle、 Microsoft SQL Server等。 數(shù)據(jù)訪問對象(DAO)是VBA語言提供的一種數(shù)據(jù)訪問接口,包括數(shù)據(jù)庫、表和查詢的創(chuàng)建等功能,通過運行VBA程序代碼可以靈活地控制數(shù)據(jù)訪問的各種操作。 在Access 2010中,可以在VBA程序中使用DAO來訪問(*.mdb)數(shù)據(jù)庫和(*.accdb)數(shù)據(jù)庫。 9.2.1 DAO模 型 結(jié) 構(gòu) DAO 模型的分層結(jié)構(gòu)圖如圖10-2所示。它包含了一個復(fù)雜的可編程數(shù)據(jù)關(guān)聯(lián)對象的層次,其中 DBEngine對象處于最頂層,它是模型中惟一不被其他對象所包含的數(shù)據(jù)庫引擎本身。層次低一層對象是,Errors和 Workspaces對象。層次再低一層對象如Errors對象的低一層對象是Error;Workspaces 對象的低一層對象是 Workspace。Databases 的低一層對象是 Database。Database 的低一層對象是 Containers、 QueryDefs、RecordSets、Relations 和 TableDefs。TableDefs對象的低一層對象是 TableDef。同理如此類推,在此不作詳列。 其中對象名的尾字符為“s”的那些對象(如,Errors、Workspaces、Databases、TableDefs、Fields 等)是集合對象,集合對象下一層包含其成員對象。 對象說明DBEngine表示Microsoft Jet數(shù)據(jù)庫引擎。它是DAO模型的最上層對象,而且包含并控制DAO模型中的其余全部對象。Workspace表示工作區(qū)。Database表示操作的數(shù)據(jù)庫對象。Container表示數(shù)據(jù)庫中各種對象的基本數(shù)據(jù),如使用權(quán)限等。Document表示文檔QueryDef表示數(shù)據(jù)庫查詢信息。Parameter表示參數(shù)查詢中的參數(shù)。RecordSet表示數(shù)據(jù)操作返回的記錄集。Relation表示數(shù)據(jù)表之間的關(guān)系。TableDef表示數(shù)據(jù)庫中的表。 Field表示字段,包含數(shù)據(jù)類型和屬性等。Index表示數(shù)據(jù)表中定義的索引字段。Group表示數(shù)據(jù)庫中的組。User表示使用數(shù)據(jù)庫的用戶信息。Error包含使用DAO對象產(chǎn)生的錯誤信息。 9.2.2 DAO對 象 變 量 的 聲 明 和 賦 值 DAO 對象必須通過 VBA 程序代碼來控制和操作。在代碼中,必須設(shè)置對象變量,然后再通過對象變量使用其下的對象、或者對象的屬性和方法。 1對象變量的聲明 同普通變量的聲明一樣,聲明的關(guān)鍵字可以是 Dim、Private、Public 等。 聲明對象變量的語句格式: Dim 對象變量名 As 對象類型 例如: Dim wks As Workspace 聲明wks為工作區(qū)對象變量 Dim dbs As Database 聲明dbs為數(shù)據(jù)庫對象變量 2 對 象 變 量 的 賦 值 Dim 只是聲明了對象變量的類型,對象變量的值必須通過 Set 賦值語句來賦值。Set賦值語句的格式: Set 對象變量名稱 = 對象指定聲明例如: Set wks = DBEngine.Workspaces(0) 打開默認(rèn)工作區(qū)(即0號工作區(qū)) Set dbs = wks.OpenDatabase(E:Access職工管理.accdb) 打開數(shù)據(jù)庫 例 9-1 例9-1 通過 DAO 編程,顯示當(dāng)前打開的數(shù)據(jù)庫的名稱。Private Sub Cmd1_Click() Dim wks As Workspace 聲明工作區(qū)對象變量 Dim dbs As Database 聲明數(shù)據(jù)庫對象變量 Set wks = DBEngine.Workspaces(0) 打開默認(rèn)工作區(qū)(即0號工作區(qū)) Set dbs = wks.Databases(0) 打開當(dāng)前(默認(rèn))數(shù)據(jù)庫(即0號數(shù)據(jù)庫) MsgBox dbs.Name Name 是 Database 對象變量的屬性End Sub 例 9-1 ( 續(xù) ) 9.2.3 DAO對 象 的 部 分 屬 性 和 方 法 1Database 對象的常用屬性和方法 Database 對象代表數(shù)據(jù)庫。Database對象的常用屬性如表9-2所示。Database對象的常用方法如表9-3所示。屬性說明Name標(biāo)識一個數(shù)據(jù)庫對象的名稱Updatable表示數(shù)據(jù)庫對象是否可以被更新(為True 可以更新,為 False 不可以更新)表9-2 Database對象的常用屬性 表9-3 Database對象的常用方法方法說明CreatQueryDef 創(chuàng)建一個新的查詢對象CreatTableDef創(chuàng)建一個新的表對象CreatRelation建立新的關(guān)系OpenRecordSet創(chuàng)建一個新的記錄集Excute執(zhí)行一個SQL查詢Close關(guān)閉數(shù)據(jù)庫 2 TableDef 對 象 的 CreateField方 法 使用 TableDef 對象的 CreateField 方法可創(chuàng)建表中的字段。 使用 CreateField方 法的語句格式: Set fed = tbe.CreateField(name, type, size) 其中: fed 是字段對象變量。tbe 是表對象變量。name是字段名。type 是字段的數(shù)據(jù)類型,要用英文字符表示,如 dbText 表示文本型,dbInteger 表示整型。size 表示字段大小。 3 RecordSet 對 象 的 常 用 屬 性 和 方 法 RecordSet 對象代表一個表或查詢中的所有記錄。RecordSet 對象提供了對記錄的添加、刪除和修改等操作的支持。 RecordSet 對象的常用屬性如表9-4所示。 RecordSet 對象的常用方法如表9-5所示。 表9-4 RecordSet對象的常用屬性 屬性說明Bof若為 True,記錄指針指向記錄集的第一個記錄之前Eof若為 True,記錄指針指向記錄集的最后一個記錄之后Filter設(shè)置篩選條件過濾出滿足條件的記錄RecordCount返回記錄集對象中的記錄個數(shù)NoMatch使用 Find 方法時,如果沒有匹配的記錄,則為 True,否則為 False 表9-5 RecordSet 對象的常用方法的方法方法說明AddNew添加新記錄Delete刪除當(dāng)前記錄Eidt編輯當(dāng)前記錄。FindFirst查找第一個滿足條件的記錄。FindLast查找最后一個滿足條件的記錄。FindNext查找下一個滿足條件的記錄。FindPrevious查找前一個滿足條件的記錄。Move移動記錄指針。MoveFirst把記錄指針移到第一個記錄。MoveLast把記錄指針移到最后一個記錄。 MoveNext把記錄指針移到下一個記錄。MovePrevious把記錄指針移到前一個記錄。Requery重新運行查詢,以更新 RecordSet 中的記錄。 9.2.4 利 用 DAO訪 問 數(shù) 據(jù) 庫 在 VBA 編程中,利用 DAO 實現(xiàn)對數(shù)據(jù)庫訪問時,要先創(chuàng)建對象變量,再通過對象方法和屬性來進(jìn)行操作。 下面通過例子介紹利用 DAO 實現(xiàn)對數(shù)據(jù)庫訪問的一般語句和步驟: 例 9-2 ( DAO數(shù) 據(jù) 庫 編 程 例 ) 例9-2編寫一個使用DAO的名為UseDaoUpdateAge的子過程,通過調(diào)用該子過程來完成對“職工管理”數(shù)據(jù)庫的“職工基本資料”表的年齡字段值都加1的操作(假設(shè)“職工管理.accdb”數(shù)據(jù)庫文件存放在E盤“E:Access”文件夾中,“職工基本資料”表中的“年齡”字段的數(shù)據(jù)類型是整型)。本例的窗體名稱為“例9-2使用DAO編程-年齡加1”。 Cmd1 命令按鈕的單擊事件過程和 UseDaoUpdateAge 子過程的VBA程序代碼如下: 例9-2 例 9-3 ( DAO數(shù) 據(jù) 庫 編 程 例 ) 例9-3 通過在VBA程序中使用DAO,在當(dāng)前數(shù)據(jù)庫中創(chuàng)建一個名為“用戶表”的表。“用戶表”的表結(jié)構(gòu)如表9-6所示。該表的主鍵是“用戶ID”字段。本例的窗體名是“例9-3 用 DAO 創(chuàng)建數(shù)據(jù)表”,窗體中的命令按鈕名稱是Cmd1。 例 9-3VBA 代 碼 例 9-4 ( DAO數(shù) 據(jù) 庫 編 程 例 ) 例9-4通過在VBA程序中使用DAO,實現(xiàn)的當(dāng)前數(shù)據(jù)庫中的“用戶表”添加新記錄。本例的窗體名是“例9-4用DAO往用戶表添加記錄”,如圖9-2所示。 例 9-4VBA 代 碼 9.3 ActiveX數(shù) 據(jù) 對 象 ( ADO) ActiveX數(shù)據(jù)對象(ActiveX Data Objects ,簡稱ADO)是基于組件的數(shù)據(jù)庫編程接口,它可以對來自多種數(shù)據(jù)提供者的數(shù)據(jù)進(jìn)行讀取和寫入操作。 在Access模塊設(shè)計時要使用ADO的各個數(shù)據(jù)對象,需要增加對ADO庫的引用。其中,在Access 2010中,要在VBA程序中使用ADO來訪問(*.accdb)數(shù)據(jù)庫, 需要增加對“Microsoft ActiveX Data Objects 6.1 Library” 庫的引用。該引用的設(shè)置方法:打開VBE窗口,單擊菜單欄上的“工具”,單擊“工具”菜單中的“引用”項,彈出“引用”對話框,從“可使用的引用”列表項中,選中“Microsoft ActiveX Data Objects 6.1 Library”項的復(fù)選框,如圖9-4所示,然后單擊“確定”按鈕。 本節(jié)僅介紹使用ADO來訪問(*.accdb)數(shù)據(jù)庫. 9.3.1 ADO模 型 結(jié) 構(gòu) ADO對象模型圖如圖9-5所示,它提供一系列數(shù)據(jù)對象供使用。不過,ADO 接口與 DAO不同,ADO對象不須派生,大多數(shù)對象都可以直接創(chuàng)建(Field 和 Error 除外),沒有對象的分級結(jié)構(gòu)。 使用時,只需在程序中創(chuàng)建對象變量,并通過對象變量來調(diào)用訪問對象方法、設(shè)置訪問對象屬性,這樣就實現(xiàn)對數(shù)據(jù)庫的各項訪問操作。ADO 只需要九個對象和四個集合(對象)就能提供其整個功能。 圖 9-5 ADO對 象 模 型 圖 表9-7 ADO對象說明 9.3.2 ADO對 象 變 量 的 聲 明 ADO 對象必須通過 VBA 程序代碼來控制和操作。在代碼中,必須設(shè)置對象變量,然后再通過對象變量使用其下的對象、或者對象的屬性和方法。 聲明對象變量的語句格式: Dim 對象變量名稱 As ADODB.對象類型 例如:Dim con As New ADODB.Connection 聲明一個連接對象變量Dim res As New ADODB.RecordSet 聲明一個記錄集對象變量 注意,ADODB 是 ADO 類型庫的短名稱,用于識別與DAO中同名的對象。例如,DAO中有 RecordSet 對象,ADO 中也有 RecordSet對象,為了能夠區(qū)分開來,在 ADO 中聲明 RecordSet 類型對象變量時,用上 ADODB.RecordSet??傊贏DO中聲明對象變量時,一般都要用上“ADODB.”前綴。 9.3.3 ADO對 象 的 部 分 屬 性 和 方 法1Connection 對象的常用方法(1)Open方法通過使用Connection 對象的Open方法來建立與數(shù)據(jù)源的連接。 Open方法的語句格式:Dim 連接對象變量名 As New ADODB.Connection連接對象變量名.Open ConnectionString, UserID, Password, OpenOptions例如,創(chuàng)建與“職工管理.mdb”數(shù)據(jù)庫連接的語句:Dim cnn As New ADODB.Connection 聲明一個連接對象變量cnncnn.Open Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:Access職工管理.mdb (2)Close方法 通過使用 Connection 對象的 Close 方法來關(guān)閉與數(shù)據(jù)源的連接。 Close方法的語句格式: 連接對象變量名.Close 注意,該語句可以關(guān)閉Connection 對象,斷開應(yīng)用程序與數(shù)據(jù)源的連接。但是Connection 仍在內(nèi)存中,釋放 Connection 對象變量的方法是使用下面語句格式的語句: 釋放連接對象變量的語句格式: Set連接對象變量名= nothing 例如,關(guān)閉與“職工管理.accdb”數(shù)據(jù)庫連接的語句:cnn.CloseSetcnn = nothing (3)如果指定的數(shù)據(jù)源就是當(dāng)前已經(jīng)打開的數(shù)據(jù)庫,則必須通過 CurrentProject 對象的Connection屬性來取得連接。 語句格式:Dim 連接對象變量名 As New ADODB.ConnectionSet 連接對象變量名= CurrentProject.Connection 例如:創(chuàng)建與當(dāng)前已經(jīng)打開的數(shù)據(jù)庫的連接:Dim cnn As New ADODB.Connection Set cnn = CurrentProject.Connection 建立 Recordset 對象的語句格式: Dim 記錄集對象變量名 As ADODB.Recordset Set 記錄集對象變量名 = New ADODB.Recordset RecordSet 對象的常用屬性如表9-8所示。 RecordSet對象的常用方法如表9-9所示。 屬性說明Bof若為True,記錄指針指向記錄集的頂部(即指向第一個記錄之前)。Eof若為True,記錄指針指向記錄集的底部(即指向最后一個記錄之后)。RecordCount返回記錄集對象中的記錄個數(shù)。 方法說明Open打開一個 Recordset 對象。Close關(guān)閉一個 Recordset 對象。AddNew在 Recordset 對象中添加一個記錄。Update將 Recordset 對象中的數(shù)據(jù)保存(即寫入)到數(shù)據(jù)庫。CancelUpdate取消對 Recordset 對象的更新操作。Delete刪除 Recordset 對象中的一個或多個記錄。Find在 Recordset 中查找滿足指定條件的行。Move移動記錄指針到指定位置。MoveFirst把記錄指針移到第一個記錄。MoveLast把記錄指針移到最后一個記錄。MoveNext把記錄指針移到下一個記錄。 MovePrevious把記錄指針移到前一個記錄。Clone復(fù)制某個已存在的 RecordSet 對象。 (1)建立 Command 對象 建立 Command 對象的語句格式: Dim 對象變量名 As New ADODB.Command(2)Command 對象的常用屬性如表9-10所示。(3)Command對象的常用方法如表9-11所示。 屬性說明ActiveConnection指明 Connection 對象。 CommandText指明查詢命令的文本內(nèi)容,可以是 SQL 語句。 方法說明Execute執(zhí)行在 CommandText 屬性中指定的 SQL 查詢命令。 9.3.4 利 用 ADO訪 問 數(shù) 據(jù) 庫 在VBA編程中,利用ADO實現(xiàn)對數(shù)據(jù)庫訪問時,要先創(chuàng)建對象變量,再通過對象方法和屬性來進(jìn)行操作。 注意,在 Access 的 VBA 語言中,為 ADO 提供了類似 DAO 的數(shù)據(jù)庫打開快捷方式,即CurrentProject.Connection,它指向一個默認(rèn)的ADODB.Connection 對象,該對象與當(dāng)前數(shù)據(jù)庫的Jet OLE DB服務(wù)提供者一起工作。不像CurrentDB() 是可選的,用戶必須使用CurrentProject.Connection 作為當(dāng)前打開數(shù)據(jù)庫的 ADODB.Connection 對象。 例9-5編寫一個使用ADO的名為UseAdoUpdateAge的子過程,通過調(diào)用該子過程來完成對“職工管理”數(shù)據(jù)庫的“職工基本資料”表的年齡字段值都加1的操作(假設(shè)“職工管理.accdb”數(shù)據(jù)庫文件存放在E盤“E:Access”文件夾中,“職工基本資料”表中的“年齡”字段的數(shù)據(jù)類型是整型)。本例的窗體名稱為“例9-5使用ADO編程-年齡加1”。 Cmd1 命令按鈕的單擊事件過程和 UseAdoUpdateAge 子過程的 VBA 程序代碼如下:

注意事項

本文(Access基礎(chǔ)與應(yīng)用教程PPT課件第9章VBA的數(shù)據(jù)庫編程)為本站會員(san****019)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!