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

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與應用高等院校計算機教材系列第第17章章 VB數(shù)據(jù)庫應用編程示例數(shù)據(jù)庫應用編程示例 示例1窗體布局目的:不用編寫代碼就可實現(xiàn)對數(shù)據(jù)的瀏覽 各控件所設置的屬性及屬性值 對象名對象名屬性名屬性名屬性值屬性值AdodcStudentConnectionString連接到Access的“學生管理數(shù)據(jù)庫.mdb”CommandTypeadCmdTableRecordSourceStudentTxtSnoDataSourceAdodcStudentDataFieldSnoTxtSnameDataSourceAdodcStudentDataFieldSnameTxtSsexDataSourceAd

2、odcStudentDataFieldSsexTxtSageDataSourceAdodcStudentDataFieldSageTxtSdeptDataSourceAdodcStudentDataFieldSdept示例1程序代碼 “退出退出”按鈕按鈕Private Sub CmdExit_Click() EndEnd Sub 窗體加載時初始化查找窗體加載時初始化查找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 使所設置的屬性生效 Else 若用戶未指定列名 MsgBox (請指定要查找的系) 則提示用戶輸入系名 End IfEnd Sub 示例1運行界面17.2 示例2 示例2窗體布局目的:編寫代碼實現(xiàn)對數(shù)據(jù)的操作和瀏

4、覽。命令按鈕控件的對象名 “添加”命令按鈕:cmdAdd “刪除”命令按鈕:cmdDel “更新”命令按鈕:cmdUpdate “取消”命令按鈕:cmdCancel “第一條”命令按鈕:cmdFirst “上一條”命令按鈕:cmdPrevious “下一條”命令按鈕:cmdNext “末一條”命令按鈕:cmdLast “退出”命令按鈕:cmdExit 示例2代碼 窗體啟動時的初始化代碼Private Sub Form_Load() 初始時使“取消”按鈕為不可用狀態(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(確實要刪除此行記錄嗎?, _vbExclamation + vbYesNo + vbDefaultButton2) 提示用戶 If res = vbYes Then 如果確實要刪除 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() 將文本框中的當前值寫入結(jié)果集相應字段中 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移動指針方法組代碼 “第一條”命令按鈕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移動指針方法組代碼(續(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運行界面17.3 示例3窗體布局目的:利用DataGrid控件實現(xiàn)對數(shù)據(jù)表格式瀏覽,并實現(xiàn)兩個窗體間的互動。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窗體上當前顯示的學號的值 strSno = Trim(Form1.TxtSno.Text) 編寫滿足要求的查詢語句,查找學號值等于

13、給定值的學生的姓名、修的課程名、 學分和成績 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ù)) 設置ADO數(shù)據(jù)控件相應的屬性 AdodcGrid.CommandType = adCmdText AdodcGrid.RecordSource = strSelect 使ADO數(shù)據(jù)控件的新屬性生效 AdodcGrid.Refr

14、esh 設置DataGrid控件的數(shù)據(jù)源為ADO數(shù)據(jù)控件的結(jié)果集 Set DtgCond.DataSource = AdodcGrid 調(diào)用DtgCond控件的初始化過程 Call InitGridEnd Sub Form2上的代碼(續(xù)) 初始化dtgCond控件Private Sub InitGrid() With DtgCond 設置DtgCond的列標題 .Columns(0).Caption = 學號 .Columns(1).Caption = 課程名 .Columns(2).Caption = 學分 .Columns(3).Caption = 成績 設置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 運行界面17.4 示例4 窗體布局目的:用ADO對象實現(xiàn)示例2的功能。示例4代碼 聲明窗體級的對象 Dim adoCon As ADODB.ConnectionDim adoRst As ADODB.Recordset初始化代碼 窗體啟動時的代碼 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=學生管理數(shù)據(jù)庫; 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 初始時使“取消”按鈕為不可用狀態(tài) CmdCancel.Enabled = FalseEnd Sub 兩個通用的過程 將記錄集中各字段的數(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 兩個通用的過程(續(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 顯示記錄集當前記錄 End Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “刪除刪除”命令按鈕命令按鈕Private Sub CmdDel_Click() Dim res As Integer

21、res = MsgBox(確實實要刪刪除此行記錄嗎記錄嗎?, _ vbExclamation + vbYesNo + vbDefaultButton2) If res = vbYes Then 如果確實實要刪刪除 adoRst.Delete adoRst.MoveNext If adoRst.EOF = True Then adoRst.MoveLast End If End If Call Display 顯顯示記錄記錄集當當前記錄記錄End Sub數(shù)據(jù)操作按鈕組代碼(續(xù)) “更新更新”命令按鈕命令按鈕Private Sub CmdUpdate_Click() 將將文本框中的當當前值寫值寫入

22、結(jié)結(jié)果集相應應字段中 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. 本站所有資源如無特殊說明,都需要本地電腦安裝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

提交評論