《【教学课件】第16章VB数据库应用编程示例.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第16章VB数据库应用编程示例.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理与应用教程国家“十一五”规划教材第第1616章章 VBVB数据库应用编程示例数据库应用编程示例 16.1 示例1 16.2 示例216.3 示例316.4 示例4 16.5 数据窗体向导16.1 示例1示例1窗体布局目的:不用编写代码就可实现对数据的浏览16.1 示例1(续)各控件所设置的属性及属性值 对象名对象名属性名属性名属性值属性值AdodcStudentConnectionString连接到Access的“学生管理数据库.mdb”CommandTypeadCmdTableRecordSourceStudentTxtSnoDataSourceAdodcStudentDataFi
2、eldSnoTxtSnameDataSourceAdodcStudentDataFieldSnameTxtSsexDataSourceAdodcStudentDataFieldSsexTxtSageDataSourceAdodcStudentDataFieldSageTxtSdeptDataSourceAdodcStudentDataFieldSdept示例1程序代码 “退出退出”按钮按钮Private Sub CmdExit_Click()EndEnd Sub窗体加载时初始化查找窗体加载时初始化查找Private Sub Form_Load()初始化要查找的系为空 TxtSearchDept
3、.Text=End Sub 示例1程序代码(续)“查找查找”按钮按钮Private Sub CmdSearch_Click()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示
4、例1运行界面16.2 示例2 示例2窗体布局目的:编写代码实现对数据的操作和浏览。命令按钮控件的对象名“添加”命令按钮:cmdAdd“删除”命令按钮:cmdDel“更新”命令按钮:cmdUpdate“取消”命令按钮:cmdCancel“第一条”命令按钮:cmdFirst“上一条”命令按钮:cmdPrevious“下一条”命令按钮:cmdNext“末一条”命令按钮:cmdLast“退出”命令按钮:cmdExit 示例2代码窗体启动时的初始化代码Private Sub Form_Load()初始时使“取消”按钮为不可用状态 CmdCancel.Enabled=False End Sub数据操作按钮
5、组代码“添加”命令按钮Private Sub CmdAdd_Click()使“添加”和“删除”按钮为不可用状态 CmdAdd.Enabled=False CmdDel.Enabled=False 使“更改”和“取消”按钮为可用状态 CmdUpdate.Enabled=True CmdCancel.Enabled=True End Sub数据操作按钮组代码(续)“取消”命令按钮Private Sub CmdCancel_Click()使“添加”和“删除”按钮为可用状态 CmdAdd.Enabled=True CmdDel.Enabled=True 使“取消”按钮为不可用状态 CmdCancel.
6、Enabled=False End Sub数据操作按钮组代码(续)“删除”命令按钮Private Sub CmdDel_Click()Dim res As Integer res=MsgBox(确实要删除此行记录吗?,_vbExclamation+vbYesNo+vbDefaultButton2)提示用户 If res=vbYes Then 如果确实要删除 If =True Then End If End IfEnd Sub数据操作按钮组代码(续)“更新”命令按钮Private Sub CmdUpdate_Click()将文本框中的当前值写入结果集相应字段中 AdodcStudent.Reco
7、rdset.Fields(Sno)=Trim(TxtSno.Text)AdodcStudent.Recordset.Fields(Sname)=Trim(TxtSname.Text)AdodcStudent.Recordset.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
8、(TxtSage.Text)AdodcStudent.Recordset.Fields(Sage)=CInt(Trim(TxtSage.Text)AdodcStudent.Recordset.Fields(Sdept)=Trim(TxtSdept.Text)AdodcStudent.Recordset.Fields(Sdept)=Trim(TxtSdept.Text)数据操作按钮组代码(续)“更新”命令按钮代码(续)使更新生效 使“添加”和“删除”按钮为可用状态 CmdAdd.Enabled=True CmdDel.Enabled=True 使“取消”按钮为不可用状态 CmdCancel.En
9、abled=FalseEnd Sub移动指针方法组代码“第一条”命令按钮Private Sub CmdFirst_Click()End Sub“下一条”命令按钮Private Sub CmdNext_Click()If =True Then End IfEnd Sub移动指针方法组代码(续)“末一条”命令按钮Private Sub CmdLast_Click()End Sub“上一条”命令按钮Private Sub CmdPrevious_Click()If =True Then End IfEnd Sub结束程序代码“退出”命令按钮Private Sub CmdExit_Click()End
10、End Sub 示例2运行界面16.3 示例3窗体布局目的:利用DataGrid控件实现对数据表格式浏览,并实现两个窗体间的互动。Form1上的代码 退出按钮Private Sub CmdExit_Click()EndEnd Sub查找按钮Private Sub CmdSearch_Click()Form2.Show 显示Form2窗体End SubForm2上的代码“返回”按钮Private Sub CmdReturn_Click()Unload MeEnd SubForm2上的代码(续)初始化Private Sub Form_Load()Dim strSno As String Dim s
11、trSelect As String 得到Form1窗体上当前显示的学号的值 strSno=Trim(Form1.TxtSno.Text)编写满足要求的查询语句,查找学号值等于给定值的学生的姓名、修的课程名、学分和成绩 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上的代码(续)初始化(续)设置ADO数据控件相应的属性 AdodcGrid.CommandType=adCmdText A
12、dodcGrid.RecordSource=strSelect 使ADO数据控件的新属性生效 AdodcGrid.Refresh 设置DataGrid控件的数据源为ADO数据控件的结果集 Set DtgCond.DataSource=AdodcGrid 调用DtgCond控件的初始化过程 Call InitGridEnd Sub Form2上的代码(续)初始化dtgCond控件Private Sub InitGrid()With DtgCond 设置DtgCond的列标题 .Columns(0).Caption=学号 .Columns(1).Caption=课程名 .Columns(2).Ca
13、ption=学分 .Columns(3).Caption=成绩 设置DtgCond的列宽 .Columns(0).Width=1000 .Columns(1).Width=2000 .Columns(2).Width=800 .Columns(3).Width=800 End With End Sub 16.3 示例3(续)运行界面16.4 示例4窗体布局目的:用ADO对象实现示例2的功能。示例4代码声明窗体级的对象 Dim adoCon As ADODB.ConnectionDim adoRst As ADODB.Recordset初始化代码窗体启动时的代码 Private Sub Form
14、_Load()建立连接 Set adoCon=New ADODB.Connection adoCon.Open Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=学生管理数据库;Data Source=(local)建立记录集 Set adoRst=New ADODB.Recordset adoRst.ActiveConnection=adoCon adoRst.CursorLocation=adUseClient初始化代码(续)adoRst.CursorType=adOpenDynamic a
15、doRst.LockType=adLockOptimistic adoRst.Source=Student adoRst.Open,adCmdTable 显示数据 Call Display 初始时使“取消”按钮为不可用状态 CmdCancel.Enabled=FalseEnd Sub 两个通用的过程 将记录集中各字段的数据绑定到文本框中Private Sub Display()TxtSno.Text=convertNull(adoRst.Fields(sno).value)TxtSname.Text=convertNull(adoRst.Fields(sname).value)TxtSsex.
16、Text=convertNull(adoRst.Fields(ssex).value)TxtSage.Text=convertNull(adoRst.Fields(sage).value)TxtSdept.Text=convertNull(adoRst.Fields(sdept).value)End Sub 两个通用的过程(续)将空值字段转化为空字符串Private Function convertNull(value As Variant)As Variant If IsNull(value)=True Then convertNull=Else convertNull=value End
17、IfEnd Function数据操作按钮组代码“添加”命令按钮Private Sub CmdAdd_Click()adoRst.AddNew 使“添加”和“删除”按钮为不可用状态 CmdAdd.Enabled=False CmdDel.Enabled=False 使“更改”和“取消”按钮为可用状态 CmdUpdate.Enabled=True CmdCancel.Enabled=True “添加”命令按钮(续)清空文本框中显示的内容 TxtSno.Text=TxtSname.Text=TxtSsex.Text=TxtSage.Text=TxtSdept.Text=End Sub 数据操作按钮组
18、代码(续)“取消”命令按钮Private Sub CmdCancel_Click()adoRst.CancelUpdate 使“添加”和“删除”按钮为可用状态 CmdAdd.Enabled=True CmdDel.Enabled=True 使“取消”按钮为不可用状态 CmdCancel.Enabled=False Call Display 显示记录集当前记录 End Sub数据操作按钮组代码(续)“删除删除”命令按钮命令按钮Private Sub CmdDel_Click()Private Sub CmdDel_Click()Dim res As IntegerDim res As Integ
19、er res=MsgBox(res=MsgBox(确确实实要要删删除此行除此行记录吗记录吗?,_,_ vbExclamation+vbYesNo+vbDefaultButton2)vbExclamation+vbYesNo+vbDefaultButton2)If res=vbYes Then If res=vbYes Then 如果确如果确实实要要删删除除 adoRst.DeleteadoRst.Delete adoRst.MoveNext adoRst.MoveNext If adoRst.EOF=True Then If adoRst.EOF=True Then adoRst.MoveLa
20、st adoRst.MoveLast End If End If End If End If Call Display Call Display 显显示示记录记录集集当当前前记录记录End SubEnd Sub数据操作按钮组代码(续)“更新更新”命令按钮命令按钮Private Sub CmdUpdate_Click()Private Sub CmdUpdate_Click()将将文本框中的文本框中的当当前前值写值写入入结结果集相果集相应应字段中字段中 adoRst.Fields(Sno)=Trim(TxtSno.Text)adoRst.Fields(Sno)=Trim(TxtSno.Text)
21、adoRst.Fields(Sname)=Trim(TxtSname.Text)adoRst.Fields(Sname)=Trim(TxtSname.Text)adoRst.Fields(Ssex)=Trim(TxtSsex.Text)adoRst.Fields(Ssex)=Trim(TxtSsex.Text)adoRst.Fields(Sage)=CInt(Trim(TxtSage.Text)adoRst.Fields(Sage)=CInt(Trim(TxtSage.Text)adoRst.Fields(Sdept)=Trim(TxtSdept.Text)adoRst.Fields(Sdep
22、t)=Trim(TxtSdept.Text)adoRst.Update adoRst.Update 使更新生效使更新生效 CmdAdd.Enabled=True CmdAdd.Enabled=True 使使“添加添加”按按钮为钮为可用可用状态状态 CmdDel.Enabled=True CmdDel.Enabled=True 使使“删删除除”按按钮为钮为可用可用状态状态 CmdCancel.Enabled=False CmdCancel.Enabled=False 使使“取消取消”按按钮为钮为不可用不可用状态状态End SubEnd Sub移动指针方法组代码“第一条”命令按钮Private S
23、ub CmdFirst_Click()adoRst.MoveFirst Call Display 显示记录集当前记录End Sub“末一条”命令按钮Private Sub CmdLast_Click()adoRst.MoveLast Call Display 显示记录集当前记录End Sub移动指针方法组代码(续)“下一条”命令按钮Private Sub CmdNext_Click()adoRst.MoveNext If adoRst.EOF=True Then adoRst.MoveLast End If Call Display 显示记录集当前记录End Sub移动指针方法组代码(续)“上
24、一条”命令按钮Private Sub CmdPrevious_Click()adoRst.MovePrevious If adoRst.BOF=True Then adoRst.MoveFirst End If Call Display 显示记录集当前记录End Sub结束程序代码“退出”命令按钮Private Sub CmdExit_Click()EndEnd Sub16.4 数据窗体向导 添加数据窗体向导 数据窗体向导是作为外接程序存在的添加方法 选择VB的“外接程序”菜单下的“外接程序管理器”在“可用外接程序”中选中“VB6数据窗体向导”使用数据窗体向导 在“外接程序”菜单中选择“数据窗体向导”命令,启动数据窗体向导,在“连接信息”对话框中,用户需要输入连接数据库的信息。按向导提示完成后续步骤。