VB數(shù)據(jù)庫訪問(課件)-高考信息技術一輪復習考點掃描(浙江專用)_第1頁
VB數(shù)據(jù)庫訪問(課件)-高考信息技術一輪復習考點掃描(浙江專用)_第2頁
VB數(shù)據(jù)庫訪問(課件)-高考信息技術一輪復習考點掃描(浙江專用)_第3頁
VB數(shù)據(jù)庫訪問(課件)-高考信息技術一輪復習考點掃描(浙江專用)_第4頁
VB數(shù)據(jù)庫訪問(課件)-高考信息技術一輪復習考點掃描(浙江專用)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

專題二十三VB數(shù)據(jù)庫訪問PART01VB訪問Access數(shù)據(jù)庫VB訪問數(shù)據(jù)庫步驟VB訪問數(shù)據(jù)庫方法VBADO數(shù)據(jù)庫連接到文件4.0OLEDBConnectionstringRecordsource連接到數(shù)據(jù)表datesource(Text控件)datefield連接到字段數(shù)據(jù)庫ADO對象的組成主要對象:ConnectionCommandRecordset主要集合:FieldsConnection對象是ADO的首要對象,它建立與數(shù)據(jù)源的連接、管理程序?qū)?shù)據(jù)的一切操作。通常聲明為全局變量DimcnAsNewADODB.ConnectionConnectionString屬性Open方法Close方法【例】使用Connection對象連接到數(shù)據(jù)庫Scenic.accdb。PrivateSubForm_Load()DimconnAsNewADODB.Connection

'創(chuàng)建Connection對象connconn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=”+App.Path+“\Sdudent.accdb”

'連接數(shù)據(jù)庫路徑

conn.Open

'打開到數(shù)據(jù)庫連接Ifconn.State=adStateOpenThenMsgBox“連接已打開”

'判斷連接狀態(tài)

conn.Close

'關閉數(shù)據(jù)庫連接Ifconn.State=adstatecolsedThenMsgBox“連接已關閉”

EndSub其中,“Provider”用于指定連接的提供者(Microsoft.ACE.OLEDB.12.0可以訪問Access2010數(shù)據(jù)庫),“DATASource”用于指定數(shù)據(jù)庫的文件名(含絕對路徑)。App.Path返回當前應用程序所在的絕對路徑。Recordset對象記錄集對象:用來管理某個查詢返回的記錄集以及記錄集中的游標。聲明:對每一個需要操作的查詢結(jié)構(gòu)可以聲明一個Recordset對象DimcnAsNewADODB.RecordsetRecordset對象RecordSet方法1、AddNew方法2、Delete方法3、Update方法4、Find方法5、Move方法6、MoveFirst、MoveLast、MoveNext和MovePrevious方法7、Open方法8、Close方法代表一個記錄集中的一個列。通過該對象可以取得一個記錄集內(nèi)不同列的值。RecordSet對象數(shù)據(jù)的讀取方法

Text1.Text=rst.Fields("sno")Text2.Text=rst.Fields(1)Text3.Text=rst("Sage")Text4.Text=rst(4)Fields集合①Select語句從數(shù)據(jù)庫中查詢數(shù)據(jù),并以表格形式返回查詢結(jié)果。

“Select*Frominfo”表示查詢數(shù)據(jù)表“info”中的全部數(shù)據(jù)。②Delete語句的功能為刪除表中指定的記錄?!纠縿h除用戶名為“donghan”的所有記錄。DeleteFromUsersWhereUserName=“

donghan”;③Update語句功能為更新表中指定記錄中指定字段的值。④Insert語句功能是向數(shù)據(jù)表中插入新的記錄SQL語句【例】Recordset對象應用示例DimconnAsNewADODB.ConnectionDimrsAsNewADODB.Recordset

'創(chuàng)建Recordset對象DimstrSQLAsStringconn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=”

&App.Path&“\users1.accdb”strSQL=“SELECT*FROMusers”

'打開數(shù)據(jù)表(記錄集)語句conn.OpenSetrs.ActiveConnection=conn

'將Recordset對象與實例Conn建立關聯(lián)rs.LockType=adLockOptimistic

'打開Recordset對象鎖定類型為樂觀鎖rs.CursorType=adOpenStatic

'設置Recordset對象游標為靜態(tài)類型rs.OpenstrSQL

'打開數(shù)據(jù)表以獲取表中數(shù)據(jù)

rs.AddNew

'數(shù)據(jù)表新建記錄初始化

rs.Fields(1)=Text1.Text

'將文本框中的內(nèi)容添加到記錄字段1中

rs.Fields(2)=Text2.Text

'將文本框中的內(nèi)容添加到記錄字段2中

rs.Update

'更新數(shù)據(jù)表rs.close

‘關閉數(shù)據(jù)表連接

conn.Close

'關閉數(shù)據(jù)庫連接

Setconn

Nothing說明:打開Recordset對象時,若Recordset非空,當前記錄位于第一條記錄?!纠繉tudent.accdb數(shù)據(jù)中,家長數(shù)據(jù)表“jizhang”中的手機號碼字段記錄“cmcc”讀取到數(shù)組phone中。程序代碼如下:Dimphone(1To100)AsString'學生家長手機號碼DimnumAsInteger

'統(tǒng)計班級人數(shù)變量PrivateSubForm_Load()

DimconnAsNewADODB.Connection,rsAsNewADODB.Recordset

DimstrSQLAsString

conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=”+App.Path“\student.accdb”

conn.Open

strSQL=“SELECT*FROMjizhang”

Setrs.ActiveConnection=conn

rs.OpenstrSQL

num=0

DoWhileNotrs.EOFnum=num+1'cmcc字段存儲的家長手機號碼phone(num)=rs.Fields(“cmcc”)rs.MoveNext

Loop

rs.Close

'關閉數(shù)據(jù)表

conn.Close

'關閉數(shù)據(jù)庫連接

MsgBox“家長手機號碼讀取完成,共有”+Str(num)+“個?!盓ndSub學生登記表數(shù)學所0122女張力010101數(shù)學所0122女張力010101首鋼1630男李一鳴990116計算所0123女陳婷婷990129………………化學所0424男王朝011008物理所0223男林宏業(yè)010302BOF(BeginningofFile)ErrorsErrorsEOF(EndofFile)rst.Bof=falserst.Bof=truerst.Eof=truerst.Eof=false系統(tǒng)出錯系統(tǒng)出錯PART02典例分析(2016.10浙江選考,6分)小李與小王合作編寫一個成績統(tǒng)計的VB程序:小王編寫一個過程,該過程從數(shù)據(jù)庫讀取某一指定科目的相關數(shù)據(jù),存儲在數(shù)組a中;小李編寫一個過程,該過程依據(jù)數(shù)組a中的相關數(shù)據(jù)統(tǒng)計各班平均分。小李與小王約定的數(shù)組a各元素含義如表所示。數(shù)組元素數(shù)組元素的含義a(1)存儲班級數(shù)na(2)從a(2)到a(n+1)依次存儲第1、2、…第n個班級人數(shù)…a(n+1)a(n+2)從a(n+2)依次存儲第1班每個學生的單科成績、第2班每個學生的單科成績、…第n班每個學生的單科成績……1程序功能如下:在文本框Text1中輸入科目名稱,單擊“讀數(shù)據(jù)庫”按鈕Command1,程序從數(shù)據(jù)庫讀取數(shù)據(jù);單擊“開始統(tǒng)計”按鈕Command2,程序進行統(tǒng)計處理,結(jié)果輸出在列表框List1中。程序運行界面如圖所示。實現(xiàn)上述功能的VB程序如下,請回答下列問題。1)根據(jù)程序運行界面中的數(shù)據(jù)以及數(shù)組a中各元素的含義,數(shù)組元素a(5)的值為________(填寫數(shù)值)。2)分析程序,可知數(shù)據(jù)庫的文件名為___________。3)請在劃線處填入合適的代碼。Dima(1to600)AsInteger ′數(shù)組大小滿足處理要求PrivateSubCommand1_Click()′本過程由小王完成,從數(shù)據(jù)庫讀取指定科目的各相關數(shù)據(jù),存儲在數(shù)組a中DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordSetConn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+"Score.accdb"Conn.OpenSetrs.ActiveConnection=conn′本過程的其他語句略EndSub33Score.accdb小提示數(shù)組中存儲不同含義數(shù)據(jù),應重點根據(jù)給定示例及描述,一要確定每部分元素的含義或功能,二要能夠從中得出不同含義元素的起始元素位置。(對應的數(shù)組下標)PrivateSubCommand2_Click() ′依據(jù)數(shù)組a中的相關數(shù)據(jù)統(tǒng)計各班級平均分 DimiAsInteger,jAsInteger,nAsInteger DimpAsInteger,sumAsInteger,averAsSingle① p=n+2 Fori=1Ton sum=0 Forj=1Toa(i+1)

p=p+1 Nextj aver=sum/a(i+1) List1.AddItemStr(i)+""+Str(a(i+1))+""+Str(aver) NextiEndSubn=a(1)sum=sum+a(p)方法便箋易錯提醒(2018改編,5分)Access數(shù)據(jù)庫文件delfiles.accdb中,有按文件修改時間的順序存儲計算機中某磁盤的文件修改記錄,小王編寫VB程序,首先編寫過程實現(xiàn)從數(shù)據(jù)庫中讀取文件名數(shù)據(jù),并存儲在數(shù)組fn中,編寫過程實現(xiàn)刪除文件名相同的數(shù)據(jù),保留文件名相同的最后一個數(shù)據(jù),刪除方法是向前移動后面的數(shù)據(jù),對數(shù)據(jù)進行覆蓋;重新進行查找刪除,直到?jīng)]有文件名相同數(shù)據(jù)。程序功能如下:窗體加載時,程序從數(shù)據(jù)庫中讀取數(shù)據(jù),并將數(shù)據(jù)在列表框List1中顯示;單擊“查找并刪除”按鈕Command1,程序進行查找并做刪除處理,結(jié)果輸出在列表框List2中。程序運行界面如圖所示。實現(xiàn)上述功能的VB程序如下,請回答下列問題:21)分析程序,可知數(shù)據(jù)所在數(shù)據(jù)表的名稱為_______。2)請在劃線處填入合適的代碼。Dimfn(1To1000)AsString ′存儲文件名DimnAsInteger ′存儲數(shù)據(jù)個數(shù)PrivateSubForm_Load()′本過程用于讀取數(shù)據(jù)庫中文件名,并存儲在數(shù)組fn中 DimconnAsNewADODB.Connection,rsAsNewADODB.RecordSetfilesDimstrSQLAsStringConn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\delfiles.accdb"IfConn.State=adstatecolsedThenConn.OpenstrSQL="select*fromfiles"Setrs.ActiveConnection=connrs.OpenstrSQLn=0DoWhileNotrs.EOF n=n+1 fn(n)=rs.Fields("filesna

溫馨提示

  • 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

提交評論