資源描述:
《vba資料庫(kù)存取關(guān)鍵技術(shù)(免費(fèi))﹐歡迎下載》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、VBA數(shù)據(jù)庫(kù)存取關(guān)鍵程序代碼目錄1.將資料表所有紀(jì)錄跑完一圈,並針對(duì)每一筆記錄欄位來(lái)修改或查詢22.觀念:如何寫程式碼來(lái)讀出某一資料表的全部資料,並做計(jì)算33.查詢『某一筆紀(jì)錄』的關(guān)鍵程式碼44.以關(guān)鍵字的方式查詢『某些筆紀(jì)錄』的關(guān)鍵程式碼55.修改某一筆記錄的關(guān)鍵程式碼66.刪除某一筆記錄的關(guān)鍵程式碼77.觀念:如何寫程式碼來(lái)讀出某一資料表的全部資料,並做計(jì)算8將數(shù)據(jù)表所有紀(jì)錄跑完一圈,并針對(duì)每一筆記錄字段來(lái)修改或查詢'連結(jié)資料表DimFxAsADODB.RecordsetSetFx=NewADODB.RecordsetFx.Open"數(shù)據(jù)表名稱",CurrentProje
2、ct.Connection,,adLockOptimistic'將數(shù)據(jù)表所有紀(jì)錄跑完一圈,進(jìn)行運(yùn)算DoWhileNotFx.EOFFx("字段1")=Fx("字段2")+Fx("字段3")Fx.MoveNextLoop'顯示:計(jì)算完成MsgBox("計(jì)算完成!")1.觀念:如何寫程序代碼來(lái)讀出某一數(shù)據(jù)表的全部數(shù)據(jù),并做計(jì)算(1).比較:n前面:是在窗體中,利用已經(jīng)讀取數(shù)據(jù)表的紀(jì)錄→用已知欄未來(lái)做計(jì)算n現(xiàn)在:是還沒(méi)讀進(jìn)數(shù)據(jù)表→要靠自己寫程序代碼將數(shù)據(jù)表讀進(jìn)來(lái)(2).觀念:nRecordset是ADO(ActiveXDataObjects)技術(shù)中最常用的對(duì)象n使用Recordse
3、t對(duì)象可以用來(lái)引用數(shù)據(jù)表的字段數(shù)據(jù)(3).步驟1:先要開啟數(shù)據(jù)表語(yǔ)法范例:nDimfxAsADODB.Recordset//宣告fx為Recordset對(duì)象型態(tài)nSetfx=NewADODB.Recordset//產(chǎn)生一個(gè)ADO對(duì)象實(shí)體給fxnfx.Open“基本數(shù)據(jù)”,CurrentProject.Connection,adOpenStatic,adLockOptimistic//將郵政編碼數(shù)據(jù)表打開,以便讀取數(shù)據(jù)表的字段數(shù)據(jù)(4).步驟2:讀取字段中的數(shù)據(jù)內(nèi)容nfx(“平均成績(jī)”)nfx(“上機(jī)考”)nfx(“期中考”)nfx(“期末考”)(5).步驟3:移動(dòng)紀(jì)錄位置指令
4、nfx.MoveFirst→移到第一筆記錄nfx.MoveNext→移到下一筆記錄nfx.MoveLast→移到最后一筆記錄nfx.MovePrevious→移到上一筆記錄nfx.EOF→超過(guò)數(shù)據(jù)表的紀(jì)錄(6).步驟4:Recordset對(duì)象的Open方法nFx.Open數(shù)據(jù)來(lái)源,數(shù)據(jù)鏈路,指針型態(tài),鎖定方式,選擇n其中,鎖定方式的參數(shù)有4種模式2adLockReadOnly:只讀2adLockPessimistic:悲觀性鎖定2adLockOptimistic:樂(lè)觀性鎖定2adLockBatchOptimistic:樂(lè)觀性批次鎖定n當(dāng)要將數(shù)據(jù)寫回索引用的數(shù)據(jù)表→使用adLo
5、ckOptimistic模式查詢『某一筆紀(jì)錄』的關(guān)鍵程序代碼'宣告變量Dimdbs,rsAsVariantDimSqlStrAsString'建立數(shù)據(jù)庫(kù)對(duì)象(使用目前數(shù)據(jù)庫(kù))Setdbs=CurrentDb'開啟數(shù)據(jù)表,并進(jìn)行SQL語(yǔ)法查詢'SqlStr="Select*from資料表wherename='jack'"SqlStr="select*from數(shù)據(jù)表名稱where字段='test'"Setrs=dbs.openrecordset(SqlStr)'設(shè)定目前窗體的數(shù)據(jù)來(lái)源為Me.RecordSource=SqlStr'關(guān)閉數(shù)據(jù)庫(kù)對(duì)象dbs.Close以關(guān)鍵詞的方式查詢
6、『某些筆紀(jì)錄』的關(guān)鍵程序代碼'宣告變量Dimdbs,rsAsVariantDimSqlStrAsString'建立數(shù)據(jù)庫(kù)對(duì)象(使用目前數(shù)據(jù)庫(kù))Setdbs=CurrentDb'開啟數(shù)據(jù)表,并進(jìn)行SQL語(yǔ)法查詢'SqlStr="Select*from資料表wherenamelike'*jack*'"SqlStr="select*from數(shù)據(jù)表where字段like'*"&Me![text1]&"*'"Setrs=dbs.openrecordset(SqlStr)'設(shè)定目前窗體的數(shù)據(jù)來(lái)源為Me.RecordSource=SqlStr'關(guān)閉數(shù)據(jù)庫(kù)對(duì)象dbs.Close修改某一筆記錄
7、的關(guān)鍵程序代碼'宣告變量Dimdbs,rsAsVariantDimSqlStrAsString'建立數(shù)據(jù)庫(kù)對(duì)象(使用目前數(shù)據(jù)庫(kù))Setdbs=CurrentDb'開啟數(shù)據(jù)表,并進(jìn)行SQL語(yǔ)法SqlStr="Update資料表setname='jack',chi=90whereidno='C90001'"'執(zhí)行修改的指令dbs.Execute(SqlStr)'修改過(guò)后,讓這個(gè)窗體重新執(zhí)行一次Me.Requery'關(guān)閉數(shù)據(jù)庫(kù)對(duì)象dbs.Close'顯示修改完成的訊息MsgBox("已經(jīng)修改完畢")刪除某一筆