




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)原理與應(yīng)用高等院校計(jì)算機(jī)教材系列第第17章章 VB數(shù)據(jù)庫(kù)應(yīng)用編程示例數(shù)據(jù)庫(kù)應(yīng)用編程示例 示例1窗體布局目的:不用編寫代碼就可實(shí)現(xiàn)對(duì)數(shù)據(jù)的瀏覽 各控件所設(shè)置的屬性及屬性值 對(duì)象名對(duì)象名屬性名屬性名屬性值屬性值A(chǔ)dodcStudentConnectionString連接到Access的“學(xué)生管理數(shù)據(jù)庫(kù).mdb”CommandTypeadCmdTableRecordSourceStudentTxtSnoDataSourceAdodcStudentDataFieldSnoTxtSnameDataSourceAdodcStudentDataFieldSnameTxtSsexDataSourceAd
2、odcStudentDataFieldSsexTxtSageDataSourceAdodcStudentDataFieldSageTxtSdeptDataSourceAdodcStudentDataFieldSdept示例1程序代碼 “退出退出”按鈕按鈕Private Sub CmdExit_Click() EndEnd Sub 窗體加載時(shí)初始化查找窗體加載時(shí)初始化查找Private Sub Form_Load() 初始化要查找的系為空 TxtSearchDept.Text = End Sub 示例1程序代碼(續(xù)) “查找查找”按鈕按鈕Private Sub CmdSearch_Click()
3、 If Len(TxtSearchDept.Text) 0 Then AdodcStudent.CommandType = adCmdText AdodcStudent.RecordSource = select * from student where Sdept = & Trim(TxtSearchDept.Text) & AdodcStudent.Refresh 使所設(shè)置的屬性生效 Else 若用戶未指定列名 MsgBox (請(qǐng)指定要查找的系) 則提示用戶輸入系名 End IfEnd Sub 示例1運(yùn)行界面17.2 示例2 示例2窗體布局目的:編寫代碼實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作和瀏
4、覽。命令按鈕控件的對(duì)象名 “添加”命令按鈕:cmdAdd “刪除”命令按鈕:cmdDel “更新”命令按鈕:cmdUpdate “取消”命令按鈕:cmdCancel “第一條”命令按鈕:cmdFirst “上一條”命令按鈕:cmdPrevious “下一條”命令按鈕:cmdNext “末一條”命令按鈕:cmdLast “退出”命令按鈕:cmdExit 示例2代碼 窗體啟動(dòng)時(shí)的初始化代碼Private Sub Form_Load() 初始時(shí)使“取消”按鈕為不可用狀態(tài) CmdCancel.Enabled = False End Sub數(shù)據(jù)操作按鈕組代碼 “添加”命令按鈕Private Sub Cm
5、dAdd_Click() AdodcStudent.Recordset.AddNew 使“添加”和“刪除”按鈕為不可用狀態(tài) CmdAdd.Enabled = False CmdDel.Enabled = False 使“更改”和“取消”按鈕為可用狀態(tài) CmdUpdate.Enabled = True CmdCancel.Enabled = True End Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “取消”命令按鈕Private Sub CmdCancel_Click() AdodcStudent.Recordset.CancelUpdate 使“添加”和“刪除”按鈕為可用狀態(tài) CmdAdd.Enabl
6、ed = True CmdDel.Enabled = True 使“取消”按鈕為不可用狀態(tài) CmdCancel.Enabled = False End Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “刪除”命令按鈕Private Sub CmdDel_Click() Dim res As Integer res = MsgBox(確實(shí)要?jiǎng)h除此行記錄嗎?, _vbExclamation + vbYesNo + vbDefaultButton2) 提示用戶 If res = vbYes Then 如果確實(shí)要?jiǎng)h除 AdodcStudent.Recordset.Delete AdodcStudent.Records
7、et.MoveNext If AdodcStudent.Recordset.EOF = True Then AdodcStudent.Recordset.MoveLast End If End IfEnd Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “更新”命令按鈕Private Sub CmdUpdate_Click() 將文本框中的當(dāng)前值寫入結(jié)果集相應(yīng)字段中 AdodcStudent.Recordset.Fields(Sno)=Trim(TxtSno.Text) AdodcStudent.Recordset.Fields(Sname)=Trim(TxtSname.Text)AdodcStudent.R
8、ecordset.Fields(Sname)=Trim(TxtSname.Text) AdodcStudent.Recordset.Fields(Ssex)=Trim(TxtSsex.Text) AdodcStudent.Recordset.Fields(Ssex)=Trim(TxtSsex.Text) AdodcStudent.Recordset.Fields(Sage)=CInt(Trim(TxtSage.Text) AdodcStudent.Recordset.Fields(Sage)=CInt(Trim(TxtSage.Text) AdodcStudent.Recordset.Fiel
9、ds(Sdept)=Trim(TxtSdept.Text) AdodcStudent.Recordset.Fields(Sdept)=Trim(TxtSdept.Text) 數(shù)據(jù)操作按鈕組代碼(續(xù)) “更新”命令按鈕代碼(續(xù)) 使更新生效 AdodcStudent.Recordset.Update 使“添加”和“刪除”按鈕為可用狀態(tài) CmdAdd.Enabled = True CmdDel.Enabled = True 使“取消”按鈕為不可用狀態(tài) CmdCancel.Enabled = FalseEnd Sub移動(dòng)指針方法組代碼 “第一條”命令按鈕Private Sub CmdFirst_Cl
10、ick() AdodcStudent.Recordset.MoveFirstEnd Sub “下一條”命令按鈕Private Sub CmdNext_Click() AdodcStudent.Recordset.MoveNext If AdodcStudent.Recordset.EOF = True Then AdodcStudent.Recordset.MoveLast End IfEnd Sub移動(dòng)指針方法組代碼(續(xù)) “末一條”命令按鈕Private Sub CmdLast_Click() AdodcStudent.Recordset.MoveLastEnd Sub “上一條”命令按鈕
11、Private Sub CmdPrevious_Click() AdodcStudent.Recordset.MovePrevious If AdodcStudent.Recordset.BOF = True Then AdodcStudent.Recordset.MoveFirst End IfEnd Sub結(jié)束程序代碼 “退出”命令按鈕Private Sub CmdExit_Click() EndEnd Sub 示例2運(yùn)行界面17.3 示例3窗體布局目的:利用DataGrid控件實(shí)現(xiàn)對(duì)數(shù)據(jù)表格式瀏覽,并實(shí)現(xiàn)兩個(gè)窗體間的互動(dòng)。Form1上的代碼 退出按鈕Private Sub CmdExit
12、_Click() EndEnd Sub 查找按鈕Private Sub CmdSearch_Click() Form2.Show 顯示Form2窗體End SubForm2上的代碼 “返回”按鈕Private Sub CmdReturn_Click() Unload MeEnd SubForm2上的代碼(續(xù)) 初始化Private Sub Form_Load() Dim strSno As String Dim strSelect As String 得到Form1窗體上當(dāng)前顯示的學(xué)號(hào)的值 strSno = Trim(Form1.TxtSno.Text) 編寫滿足要求的查詢語(yǔ)句,查找學(xué)號(hào)值等于
13、給定值的學(xué)生的姓名、修的課程名、 學(xué)分和成績(jī) strSelect = select Sname, Cname,Ccredit,Grade from student s join sc on s.sno = sc.sno join course c on o = o where sc.sno = & strSno & Form2上的代碼(續(xù)) 初始化(續(xù)) 設(shè)置ADO數(shù)據(jù)控件相應(yīng)的屬性 AdodcGrid.CommandType = adCmdText AdodcGrid.RecordSource = strSelect 使ADO數(shù)據(jù)控件的新屬性生效 AdodcGrid.Refr
14、esh 設(shè)置DataGrid控件的數(shù)據(jù)源為ADO數(shù)據(jù)控件的結(jié)果集 Set DtgCond.DataSource = AdodcGrid 調(diào)用DtgCond控件的初始化過(guò)程 Call InitGridEnd Sub Form2上的代碼(續(xù)) 初始化dtgCond控件Private Sub InitGrid() With DtgCond 設(shè)置DtgCond的列標(biāo)題 .Columns(0).Caption = 學(xué)號(hào) .Columns(1).Caption = 課程名 .Columns(2).Caption = 學(xué)分 .Columns(3).Caption = 成績(jī) 設(shè)置DtgCond的列寬 .Col
15、umns(0).Width = 1000 .Columns(1).Width = 2000 .Columns(2).Width = 800 .Columns(3).Width = 800 End With End Sub 17.3 示例3 運(yùn)行界面17.4 示例4 窗體布局目的:用ADO對(duì)象實(shí)現(xiàn)示例2的功能。示例4代碼 聲明窗體級(jí)的對(duì)象 Dim adoCon As ADODB.ConnectionDim adoRst As ADODB.Recordset初始化代碼 窗體啟動(dòng)時(shí)的代碼 Private Sub Form_Load() 建立連接 Set adoCon = New ADODB.Conn
16、ection adoCon.Open Provider=SQLOLEDB.1;Persist Security Info=False; User ID=sa;Initial Catalog=學(xué)生管理數(shù)據(jù)庫(kù); Data Source=(local) 建立記錄集 Set adoRst = New ADODB.Recordset adoRst.ActiveConnection = adoCon adoRst.CursorLocation = adUseClient初始化代碼(續(xù)) adoRst.CursorType = adOpenDynamic adoRst.LockType = adLockOp
17、timistic adoRst.Source = Student adoRst.Open , , , , adCmdTable 顯示數(shù)據(jù) Call Display 初始時(shí)使“取消”按鈕為不可用狀態(tài) CmdCancel.Enabled = FalseEnd Sub 兩個(gè)通用的過(guò)程 將記錄集中各字段的數(shù)據(jù)綁定到文本框中Private Sub Display() TxtSno.Text = convertNull(adoRst.Fields(sno).value) TxtSname.Text=convertNull(adoRst.Fields(sname).value) TxtSsex.Text =
18、 convertNull(adoRst.Fields(ssex).value) TxtSage.Text = convertNull(adoRst.Fields(sage).value) TxtSdept.Text = convertNull(adoRst.Fields(sdept).value)End Sub 兩個(gè)通用的過(guò)程(續(xù)) 將空值字段轉(zhuǎn)化為空字符串Private Function convertNull(value As Variant) As Variant If IsNull(value) = True Then convertNull = Else convertNull =
19、value End IfEnd Function數(shù)據(jù)操作按鈕組代碼 “添加”命令按鈕Private Sub CmdAdd_Click() adoRst.AddNew 使“添加”和“刪除”按鈕為不可用狀態(tài) CmdAdd.Enabled = False CmdDel.Enabled = False 使“更改”和“取消”按鈕為可用狀態(tài) CmdUpdate.Enabled = True CmdCancel.Enabled = True “添加”命令按鈕(續(xù)) 清空文本框中顯示的內(nèi)容 TxtSno.Text = TxtSname.Text = TxtSsex.Text = TxtSage.Text =
20、TxtSdept.Text = End Sub 數(shù)據(jù)操作按鈕組代碼(續(xù)) “取消”命令按鈕Private Sub CmdCancel_Click() adoRst.CancelUpdate 使“添加”和“刪除”按鈕為可用狀態(tài) CmdAdd.Enabled = True CmdDel.Enabled = True 使“取消”按鈕為不可用狀態(tài) CmdCancel.Enabled = False Call Display 顯示記錄集當(dāng)前記錄 End Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “刪除刪除”命令按鈕命令按鈕Private Sub CmdDel_Click() Dim res As Integer
21、res = MsgBox(確實(shí)實(shí)要?jiǎng)h刪除此行記錄嗎記錄嗎?, _ vbExclamation + vbYesNo + vbDefaultButton2) If res = vbYes Then 如果確實(shí)實(shí)要?jiǎng)h刪除 adoRst.Delete adoRst.MoveNext If adoRst.EOF = True Then adoRst.MoveLast End If End If Call Display 顯顯示記錄記錄集當(dāng)當(dāng)前記錄記錄End Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “更新更新”命令按鈕命令按鈕Private Sub CmdUpdate_Click() 將將文本框中的當(dāng)當(dāng)前值寫值寫入
22、結(jié)結(jié)果集相應(yīng)應(yīng)字段中 adoRst.Fields(Sno) = Trim(TxtSno.Text) adoRst.Fields(Sname) = Trim(TxtSname.Text) adoRst.Fields(Ssex) = Trim(TxtSsex.Text) adoRst.Fields(Sage) = CInt(Trim(TxtSage.Text) adoRst.Fields(Sdept) = Trim(TxtSdept.Text) adoRst.Update 使更新生效 CmdAdd.Enabled = True 使“添加” 按鈕為鈕為可用狀態(tài)狀態(tài) CmdDel.Enabled = True 使 “刪刪除”按鈕為鈕為可用狀態(tài)狀態(tài) CmdCancel.Enab
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 共享自習(xí)室項(xiàng)目實(shí)施方案
- 貴州省六盤水市水城區(qū)2023-2024學(xué)年高一上學(xué)期12月月考?xì)v史含解析
- 2025年開展安全生產(chǎn)月活動(dòng)實(shí)施方案 (3份)
- 江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院《納米材料表征方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西英華國(guó)際職業(yè)學(xué)院《籃球四》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽理工大學(xué)《電工電子綜合實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 濮陽(yáng)石油化工職業(yè)技術(shù)學(xué)院《工業(yè)催化》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅機(jī)電職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)應(yīng)用綜合性設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東海洋大學(xué)《大數(shù)據(jù)技術(shù)開源架構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢科技大學(xué)《環(huán)境生態(tài)學(xué)俄》2023-2024學(xué)年第二學(xué)期期末試卷
- 《2025年CSCO卵巢癌診療指南》更新要點(diǎn)解讀
- 2024年廣東省廣州市中考數(shù)學(xué)試卷【含解析】
- 拋石擠淤方案
- 《海上浮架用抗老化高密度聚乙烯(HDPE)踏板》
- 中華民族發(fā)展史知到課后答案智慧樹章節(jié)測(cè)試答案2025年春云南大學(xué)
- 3.2依法行使權(quán)利 教案 2024-2025學(xué)年統(tǒng)編版道德與法治八年級(jí)下冊(cè)
- 2025年浙江臺(tái)州市黃巖永寧公園服務(wù)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 安全玻璃采光頂施工方案
- 消防安全知識(shí)培訓(xùn)(完整版)
- 《有效處理客戶投訴的策略與技巧:課件》
- 供應(yīng)鏈管理流程圖及說(shuō)明課件
評(píng)論
0/150
提交評(píng)論