第17章 VB數(shù)據(jù)庫(kù)應(yīng)用編程示例_第1頁(yè)
第17章 VB數(shù)據(jù)庫(kù)應(yīng)用編程示例_第2頁(yè)
第17章 VB數(shù)據(jù)庫(kù)應(yīng)用編程示例_第3頁(yè)
第17章 VB數(shù)據(jù)庫(kù)應(yīng)用編程示例_第4頁(yè)
第17章 VB數(shù)據(jù)庫(kù)應(yīng)用編程示例_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論