第9章VBA數(shù)據(jù)庫編程未來教育全國計算機等級考試二級Access教程-配套_第1頁
第9章VBA數(shù)據(jù)庫編程未來教育全國計算機等級考試二級Access教程-配套_第2頁
第9章VBA數(shù)據(jù)庫編程未來教育全國計算機等級考試二級Access教程-配套_第3頁
第9章VBA數(shù)據(jù)庫編程未來教育全國計算機等級考試二級Access教程-配套_第4頁
第9章VBA數(shù)據(jù)庫編程未來教育全國計算機等級考試二級Access教程-配套_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、二級二級ACCESSACCESS培訓培訓講義講義第第9章章 VBA數(shù)據(jù)庫編程數(shù)據(jù)庫編程 二級二級ACCESS培訓講義培訓講義第第9章章 VBA數(shù)據(jù)庫編程數(shù)據(jù)庫編程本章要求本章要求 掌握常用的操作方法操作數(shù)據(jù)庫對象 掌握ADO和DAO的概念及結構,并能使用它們訪問數(shù)據(jù)庫二級二級ACCESS培訓講義培訓講義9.1 VBA常用操作方法一、打開和關閉操作在VBA中,操作主要有:1.打開窗體Docmd.OpenForm 格式: Docmd.OpenForm formname,view,filtername,wherecondition,datamode,windowmode參數(shù)說明:formname:字

2、符串表達式,代表當前數(shù)據(jù)庫中窗體的有效名稱;view:為下列固有常量之一:acDesign,asFormDS,acNormal,acPreviewfiltername:過濾查詢的有效名稱,主要是對窗體數(shù)據(jù)源數(shù)據(jù)進行過濾和篩選wherecondition:字符串表達式,不包含Where關鍵字的有效SQL Where子句datamode:為下列固有常量之一:acFormAdd,acFormEdit, acFormReadOnly ,acFormPropertySettingswindowmode:用于規(guī)定窗體的打開形式,為下列固有常量之一:acDialog, acHidden,acIcon,acW

3、indowNormal二級二級ACCESS培訓講義培訓講義 例:以對話框形式打開“登陸”窗體Docmd.Openform “登陸”,acDialog2.打開報表Docmd.OpenReport格式:Docmd.OpenReport reportname,view,filtername,wherecondition參數(shù)說明:reportname:字符串表達式,代表當前數(shù)據(jù)庫中報表的有效名稱view:為下列固有常量之一:acViewDesign,acViewNormal,acViewPreviewfiltername:字符串表達式,代表當前數(shù)據(jù)庫中查詢的有效名稱wherecondition:字符串

4、表達式,不包含Where關鍵字的有效SQL Where子句二級二級ACCESS培訓講義培訓講義 例:預覽“學生信息”報表Docmd.Openreport “學生信息”,acViwePreview3.關閉操作Docmd.Close格式:Docmd.Closeobjecttype,objectname,save參數(shù)說明:objiecttype:下列固有常量之一,acDataAccessPage,acDefault,acDiagram,acForm,acMacro,acModule,acQuery,acReport,acServerView,acStoredProcedure,acTable。obj

5、ectname:字符串表達式,代表有效的對象名稱。save:下列固有常量之一,acSaveNo,acSavePrompt,acSaveYes。由Docmd.Close命令參數(shù)可以看出,該命令可以廣泛用于關閉Access各種對象。省略所有參數(shù)的命令(Docmd.Close)可以關閉當前窗體。二級二級ACCESS培訓講義培訓講義例:關閉“登陸”窗體。Docmd.Close acForm,“登陸”關閉“登陸”報表。Docmd.Close acReport,“登陸”二級二級ACCESS培訓講義培訓講義 二、輸入框輸入框主要用于顯示提示,并要求用戶輸入文本。它在VBA中以函數(shù)形式調(diào)用。格式:InputB

6、ox(prompt,title,default,xpos,ypos,help)參數(shù)說明:prompt:提示字符串。title:顯示對話框中標題欄的字符串表達式。default:顯示文本框中的字符串表達式。xpos:指定對話框左邊距屏幕左邊的水平距離。ypos:指定對話框上邊距屏幕上邊的垂直距離。helpfile:為對話框提供上下文的幫助。context:某個主題的幫助上下文編號二級二級ACCESS培訓講義培訓講義 注意:輸入?yún)^(qū)缺省值有$返回字符類型,否則為數(shù)值類型。 提示文本如需換行,則用 Chr(13) + Chr(10) 將各行分開。 上圖所示為inputbox的一個示例,調(diào)用語句如下:s

7、trName=InputBox(請輸入你的姓名 + Chr(13) + Chr(10) + 然后單擊確定, 輸入框, 王曉明, 100, 100)提示缺省值標題二級二級ACCESS培訓講義培訓講義三、消息框消息框用于在對話框中顯示消息,等待用戶單擊按鈕,并返回一個整型值。格式:MsgBox(Prompt,buttons,title,help)參數(shù)說明:prompt:提示字符串title:顯示對話框中標題欄的字符串表達式buttons:顯示按鈕的數(shù)目及形式,圖標的樣式等helpfile:為對話框提供上下文的幫助context:為某個主題的幫助上下文編號例:MsgBox“請輸入學生姓名”,vbIn

8、formation,“學生信息”二級二級ACCESS培訓講義培訓講義 根據(jù)用戶所選按鈕,根據(jù)用戶所選按鈕,函數(shù)返回函數(shù)返回1 1到到7 7的整數(shù)值,的整數(shù)值,其含義如下其含義如下Buttons選項取值說明選項取值說明二級二級ACCESS培訓講義培訓講義 窗體上有兩個命令按鈕:顯示(cmdDisplay)、測試(cmdTest)。事件過程的功能是:單擊“測試”按鈕,彈出消息框,如果單擊消息框的“確定”按鈕,隱藏窗體上的“顯示”按鈕,如果單擊消息框的“取消”按鈕,關閉窗體。Private Sub cmdTest_Click() Answer=_(“隱藏按鈕”,vbOKCancel) If Answ

9、er=vbOK then cmdDisplay.Visible=_ Else DoCmd.CloseEnd Sub(2006.4)(2006.4)MsgBoxFalse二級二級ACCESS培訓講義培訓講義4.VBA編程數(shù)據(jù)驗證使用窗體和數(shù)據(jù)訪問頁,每當保持記錄數(shù)據(jù)時,所做的更改會保持到數(shù)據(jù)源表當中。在控件中的數(shù)據(jù)被改變之前或記錄數(shù)據(jù)被更新之前會發(fā)生BeforeUpdate事件。通過創(chuàng)建窗體或控件的BeforeUpdate事件過程,可以實現(xiàn)對輸入到窗體控件中的數(shù)據(jù)進行各種驗證。例如,數(shù)據(jù)類型驗證、數(shù)據(jù)范圍驗證等。注意:控件BeforeUpdate事件過程是有參過程。通過設置其參數(shù)Cancel,可

10、以確定BeforeUpdate事件是否會發(fā)生。將Cancel參數(shù)設置為True將取消BeforeUpdate事件。此外,在進行控件輸入數(shù)據(jù)驗證時,VBA提供了一些相關函數(shù)來幫助驗證。二級二級ACCESS培訓講義培訓講義 常用驗證函數(shù)函數(shù)名稱函數(shù)名稱返回值返回值說明說明IsnumericBoolean值檢驗輸入內(nèi)容是否為數(shù)值IsdateBoolean值檢驗輸入內(nèi)容是否可以轉換為日期IsnullBoolean值檢驗輸入內(nèi)容是否為空IsemptyBoolean值檢驗輸入內(nèi)容是否已經(jīng)初始化IsarrayBoolean值檢驗輸入內(nèi)容是否為數(shù)組IserrorBoolean值檢驗輸入內(nèi)容是否為錯誤值Isob

11、jectBoolean值檢驗輸入內(nèi)容是否表示對象變量二級二級ACCESS培訓講義培訓講義5.計時事件在VBA中通過設置窗體的“計數(shù)器間隔TimerInterval”屬性與添加“計時器觸發(fā)(Timer)”事件來完成定時功能。其處理過程是:Timer事件每隔TimerInterval時間間隔就會被激發(fā)一次,并運行Timer事件過程來響應。二級二級ACCESS培訓講義培訓講義9.2 VBA的數(shù)據(jù)庫編程 VBA通過數(shù)據(jù)庫引擎(Microsof jet)工具完成對數(shù)據(jù)庫的訪問,所謂數(shù)據(jù)庫引擎其實是一組動態(tài)鏈接庫(DLL),程序運行時被連接到VBA程序,而實現(xiàn)對數(shù)據(jù)庫的訪問功能。1.VBA中提供了3種數(shù)據(jù)

12、庫訪問接口: ODBC API:開放數(shù)據(jù)庫互連應用編程接口。DAO:數(shù)據(jù)訪問對象。ADO:Active數(shù)據(jù)對象 2.VBA訪問的三種數(shù)據(jù)庫類型:本地數(shù)據(jù)庫:ACCESS外部數(shù)據(jù)庫 ODBC數(shù)據(jù)庫:如Oracle、SyBase、SQL Server等 二級二級ACCESS培訓講義培訓講義3.數(shù)據(jù)庫訪問對象(DAO)DAO數(shù)據(jù)模型采用的是層次結構。DBEngineWorkspaceDatabaseRecordSetFieldErrorQueryDefDBEngineDBEngine數(shù)據(jù)庫引擎為數(shù)據(jù)庫引擎為DAODAO模型最上層對象,包含并模型最上層對象,包含并管理其它對象。管理其它對象。二級二級A

13、CCESS培訓講義培訓講義4.ADO對象ADO數(shù)據(jù)對象模型Error(s)ConnectionCommandRecordSetField(s)指定數(shù)據(jù)連接提供者,指定數(shù)據(jù)連接提供者,建建立到數(shù)據(jù)源的連接立到數(shù)據(jù)源的連接??蓤?zhí)行一個命令可執(zhí)行一個命令,如可執(zhí)行,如可執(zhí)行SQL查詢。查詢。一般用于表結構的修改一般用于表結構的修改??蓤?zhí)行可執(zhí)行SQL查詢返回一個查詢返回一個記錄集記錄集,并可對記錄集進行修改、插入、并可對記錄集進行修改、插入、刪除操作。刪除操作。是是ADO中最靈活的對中最靈活的對象象。二級二級ACCESS培訓講義培訓講義NoImage 例:例:分別用分別用DAO和和ADO來完成對來完

14、成對“教學管理教學管理.mdb”文件中文件中“學生表學生表”的學生年齡都加的學生年齡都加1的操作。(假設文件存放在的操作。(假設文件存放在E盤盤“考試中心教程考試中心教程”文件夾中)文件夾中)使用使用DAODAO技術:技術: Sub SetAgePlus1() dim ws as DAO.Workspace 工作區(qū)對象工作區(qū)對象 dim db as DAO.Database 數(shù)據(jù)庫對象數(shù)據(jù)庫對象 dim rs as DAO.Recordset 記錄集對象記錄集對象 dim fd as DAO.Field 字段對象字段對象 set ws=DBEngine.Workspace(0) set db=

15、ws.OpenDatabase(“e:考試中心教程考試中心教程教學管理教學管理.mdb”) 打開數(shù)據(jù)庫打開數(shù)據(jù)庫 set rs=db.OpenRecordSet(“學生表學生表”) 返回返回“學生表學生表”記錄集記錄集 set fd=rs.Fields(“年齡年齡”) 設置設置“年齡年齡”字段字段二級二級ACCESS培訓講義培訓講義NoImageDo while not rs.eof 對記錄集用循環(huán)結構進行遍歷對記錄集用循環(huán)結構進行遍歷 rs.edit 設置為設置為“編輯編輯”狀態(tài)狀態(tài) fd=fd+1 年齡字段值加年齡字段值加1 rs.update 更新記錄,保存年齡值更新記錄,保存年齡值 r

16、s.movenext 記錄指針移動至下一條記錄指針移動至下一條 Loop rs.close 關閉并回收對象變量關閉并回收對象變量 db.close set rs=Nothing 關閉并回收對象變量關閉并回收對象變量 set db=Nothing End sub二級二級ACCESS培訓講義培訓講義NoImage使用使用ADOADO技術:技術: Sub SetAgePlus1() dim cn as New ADODB.Connection 連接對象連接對象 dim rs as New ADODB.RecordSet 記錄集對象記錄集對象 dim fs as ADODB.Field 字段對象字段對

17、象 dim strConnect as String 連接字符串連接字符串 dim strSQL as String 查詢字符串查詢字符串 strconnect=(“e:考試題目考試題目教學管理教學管理.mdb”) 設置連接數(shù)據(jù)庫設置連接數(shù)據(jù)庫 cn.Provider=“Microsoft.jet.oledb.4.0” 設置數(shù)據(jù)提供者設置數(shù)據(jù)提供者 cn.open strconnect 打開與數(shù)據(jù)源的連接打開與數(shù)據(jù)源的連接 strSQL=“select 年齡年齡 from 學生表學生表” 設置查詢語句設置查詢語句 rs.open strSQL,cn,adOpenDynamic,adLockOp

18、timistic,adCmdText set fd=rs.Fields(“年齡年齡”)二級二級ACCESS培訓講義培訓講義NoImage 對記錄集用循環(huán)結構進行遍歷對記錄集用循環(huán)結構進行遍歷 Do while not rs.eof fd=fd+1 年齡字段值加年齡字段值加1 rs.update 更新記錄,保存年齡值更新記錄,保存年齡值 rs.movenext 記錄指針移動至下一條記錄指針移動至下一條 Loop 關閉并回收對象變量關閉并回收對象變量 rs.close db.close set rs=Nothing set db=Nothing End sub二級二級ACCESS培訓講義培訓講義 ADO數(shù)據(jù)對象模型的相關要點(1)Recordset記錄集對象記錄指針的移動方法: MoveFirst 記錄指針移到第一條記錄記錄指針移到第一條記錄 MoveNext 記錄指針移到當前記錄的下一條記錄記錄指針移到當前記錄的下一條記錄MovePrevious 記

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論