《VB程序设计教程集》PPT课件.ppt

上传人:za****8 文档编号:12669100 上传时间:2020-05-13 格式:PPT 页数:54 大小:849.01KB
返回 下载 相关 举报
《VB程序设计教程集》PPT课件.ppt_第1页
第1页 / 共54页
《VB程序设计教程集》PPT课件.ppt_第2页
第2页 / 共54页
《VB程序设计教程集》PPT课件.ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
12.1数据库管理器,12.2数据控件的使用,12.3SQL语言,12.4ADO数据控件,第12章VisualBasic6.0与数据库,退出,12.1数据库管理器,图12-1可视数据库管理器,利用可视化数据管理器可创建多种类型的数据库。创建步骤如下:单击“文件”菜单下的“新建”菜单项,出现数据库类型选择菜单。单击数据库类型菜单中的MicrosoftAccess将出现版本子菜单,在版本菜单中选择要创建的数据库版本。,图12-2创建数据库的菜单选项,2)选择要创建的数据库类型及版本后,出现新建数据库对话框,在此对话框中,输入要创建的数据库名“student.mdb”。3)此时,在可视化数据库管理器窗口中出现“数据库窗口”和“SQL语句”窗口,如图12-3所示。“数据库窗口”以树型结构显示数据库中的所有对象,单击鼠标右键激活快捷菜单,执行“新建表”、“刷新列表“等菜单项。,图12-3数据库窗口和SQL窗口,4)在“数据库窗口”中单击鼠标右键,出现快捷菜单,执行“新建表”菜单项便可为数据库添加一个新表。5)屏幕出现如图12-4所示的“表结构”对话框。在这个对话框中,可输入新表的名称,并添加字段,也可从表中删除字段,还可以添加或删除作为索引的字段。,图12-4“表结构”对话框,表12-1字段属性列表,图12-5添加字段”对话框,6)添加字段完成后,单击“添加字段”对话框中的“关闭”按钮。回到如图12-6所示的“表结构”对话框,单击“添加索引”按钮,出现“添加索引”对话框,如图12-7所示,选择索引字段为“学号”,输入索引字段名为“ID”,单击“确定”按钮。,图12-6添加字段后的“表结构”对话框,图12-7添加索引对话框,7)完成上述步骤后,单击“生成表”按钮,就会在“数据库窗口”中出现“学生情况”表,如图12-8所示。,图12-8生成新表后的“数据库窗口”,8)当一张表建立后,可以再建立另一张表。如果要在已经存在的数据库文件内增加一张新表,只需要在数据管理器文件菜单中选择打开数据库命令,其余操作过程与建立数据表的操作相同。当表建好后,用鼠标左键双击出现在数据库窗口中的”学生情况”表名,打开图12-9所示的表格输入窗,选择对应命令进行添加、编辑、增删记录等操作。,图12-9表格输入窗,12.2数据控件的使用,12.2.1数据控件常用属性,12.2.2数据绑定控件常用属性,返回,退出,12.2.4数据控件上的对象,12.2.6数据控件的事件,12.2.7数据库记录的增删改操作,12.2.3使用数据控件操作数据库中的数据,12.2.5数据控件的常用方法,12.2.1数据控件常用属性,Connect属性,Connect属性指定数据控件所要连接的数据库类型。,VisualBasic60提供了7种可访问的数据库类型,VisualBasic可识别的数据库有:,1)MicrosoftAccess的MDB文件(缺省值);,2)BorlanddBASE、MicrosoftFoxpro的DBF文件;,3)BorlandParadox的DB文件;,4)NovellBtrieve的DDF文件;,5)MicrosoftExcel的XLS文件;,6)Lotus的WKS文件;,7)OpenDataBaseConnectivity(ODBC)数据库,2.DatabaseName属性,DatabaseName属性指定具体使用数据库的名称,包括所有的路径名。如果连接的是单表数据库,则DatabaseName属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource属性中。如果在“属性”窗口中单击DatabasName属性右边的按钮,会出现一个公用对话框用于选择相应的数据库。例如,下面语句设置了可访问的数据库名称:如果连接一个MicrosoftAccess的数据库C:职员档案mdb,则Data1DatabaseName”C:职员档案mdb”;如果连接一个Foxpro数据库C:yang职员档案1dbf,因为Foxpro数据库只含有一个表,则Data1DatabaseName”C:yang”,RecordSource=”职员档案1dbf”。如果未写数据库文件的扩展名,则缺省情况下为使用以.mdb为扩展名的数据库文件。,3)RecordSource属性,RecordSource属性确定具体可访问的数据,这些数据构成记录集对象Recordset。4)RecordsetType属性RecordsetType属性确定记录集类型。5)ReadOnly属性在对数据库只查看不修改时,通常将ReadOnly属性设置为True,而在运行时根据一定的条件,响应一定的指令后,才将它设置为False。6)Exclusive属性Exclusive属性值设置为True时,则在通过关闭数据库撤消这个设置前,其他任何人不能对数据库访问。这个属性的缺省值是False。,7)BOFAction、EOFAction属性当BOFAction值为0,控件重定位到第一个记录;BOFAction值为1,移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件。当EOFAction值为0,控件重定位到最后一个记录;当EOFAction值为1,移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件;EOFAction值为2,向记录集加入新的空记录,可以对新纪录进行编辑,移动记录指针新纪录写入数据库。,12.2.2数据绑定控件常用属性,要使文本等控件与数据控件捆绑在一起,成为数据控件的绑定控件。并且能够受到数据库约束,必须在运行时对这些控件的两个属性进行设置:,1)DataSource属性,DataSource属性用来将一个有效的数据控件与一个数据库连接。,2)DataFleld属性,DataFleld属性设置数据库有效的字段与绑定控件建立联系。,图12-10绑定控件、数据控件和数据库三者的关系,12.2.3使用数据控件操作数据库中的数据,表12-2窗体属性表,例91、设计一窗体,在窗体内通过文本框等绑定控件显示9.1节中建立的学生情况表内的记录。,不需编写任何代码,就可浏览表中的内容。单击运行按钮就可出现如图12-11所示4个文本框分别显示学号,姓名,性别,和出生年月的内容。,使用数据控件对象的4个箭头可遍历整个记录集中的记录。通过DBList控件和DBCombo控件浏览学生情况表内的记录时,DBList控件和DBCombo控件不是VisualBasic工具箱内的默认控件,需要在开发环境中选择“工程”|“部件”菜单命令,并在随即出现的对话框中选择MicrosoftDataBoundListControls选项,将它们添加到工具箱中。,图12-11学生情况表显示界面,例12-2:设计一个窗体,通过数据网格控件浏览学生情况表内的记录。参见图12-12所示。,图12-12通过数据网格控件浏览学生情况表,使用DATA数据控件时可使用MsflexGrid网格控件或VB5.0提供的数据网格控件DBGrid。MsflexGrid控件与DBGrid控件都不是VisualBasic工具箱内的默认控件,需要在开发环境中选择“工程”主菜单中的“添加部件”命令,并在随即出现的对话框中选择MicrosoftFlexGridControl6.0或MicrosoftDataBoundControl5.0,将其添加到工具箱中。,表12-3窗体属性表,数据控件是依靠数据对象来获取对数据访问的,与其相关的数据对象有:1Database对象Database对象是物理数据库的逻辑表示。数据控件通过DatabaseName属性连接到一个具体的数据库,并通过它的Database对象表现出来。除了数据控件获取Database对象之外,还可以在程序中定义Database对象,并通过OpenDatabase()函数实现对物理数据库的连接;或者将数据控件的Database对象传递给被定义的Database对象。例如以下语句:DimDs1AsDatabase定义数据对象DimDs2AsDatabaseSetDs1=OpenDatabase(“e:VB|class.mdb)使Ds1获取物理数据库SetDs2=Me.data1.Database将数据控件的Database对象传递给Ds2,12.2.4数据控件上的对象,2Recordset对象Recordset对象代表一组与数据库相关的逻辑记录集合。它所对应的数据来源可以是数据表,也可以是和SQL语言中查询语句(SELECT)有关的查询结果。Recordset对象有三种类型:Table类型:记录集为表集,可以显示、添加、删除和修改,具有较好的更新性能。Dynaset类型:记录集为动态集,可以显示、添加、删除和修改,并具有较大的操作灵活性。Snapshot类型:记录集为快照集,只能显示,具有较好的显示速度。除了Data控件获取Recordset对象之外,还可以在程序中定义Recordset对象,并通过函数获得数据。DimDsAsDatabase定义数据对象DimRsAsRecorderset定义记录对象SetDs=OpenDatabase(“e:VB|class.mdb)使Ds获取物理数据库SetRs=Me.data1.Database.OpenRecordse(“SElECT*FROM学生情况”,dbOpenDynaset)以动态集方式打开从“学生情况”数据表取得的SQL查询,传给Rs对象SetMe.data1.Recorderset=.Rs,12.2.5数据控件的常用方法,1Refresh方法,如果在设计状态没有为打开数据控件的有关属性全部赋值,或当RecordSource在运行时被改变后,必须使用激活数据控件的Refresh方法激活这些变化。,2UpdateCountrols方法,UpdateCountrols方法可以将数据从数据库中重新读到被数据控件绑定的空件内。使用UpdateCountrols方法终止用户对绑定内控件的修改。,3UpdateRecord方法,当对绑定内的控件修改后,数据控件需要移动记录集的指针才能保存修改,如果使用UpdateRecord方法可强制数据控件将绑定控件内的数据写入到数据库中而不再触发Vaildate事件。在代码中用该方法修改。,12.2.6数据控件的事件,1Reposition事件,Reposition事件发生在一条记录成为当前记录后。,只要改变记录集的指针使其从一条指针移到另一条记录。会产生Reposition事件,可以在该事件过程中建立程序,可反映出记录位置、记录总数等。,2Validate事件,当要移动记录指针前,修改与删除记录前或卸载含有数据控件的窗体时触发Validate事件。Validate事件检查被数据控绑定的控件内的数据是否发生变化。它通过save参数()True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。Action参数可为表12-4中的值:,表12-4Validate事件的Action参数表,对记录的操作能够通过Recordset对象的方法实现。其常用方法有:1)AddNew方法加入一条新记录到记录集内存缓冲区。例如:Rs.AddNew2)Edit方法允许对当前记录进行修改。3)Delete方法用于删除当前记录。4)Update方法把内存缓冲区的内容写进数据库文件,保存对数据库所作的改动。5)Close方法关闭记录集和数据库。该方法也能用在数据库对象上,将数据库关闭。Rs.Close关闭记录集Ds.Close关闭数据库,12.2.7数据库记录的增删改操作,5)Move方法使用Move方法可代替对数据库控件对象的4个箭头的操作遍历整个记录几种的记录。5种Move方法是:(1)MoveFirst方法移至第一条记录(2)MoveLast方法移至最后一条记录(3)MoveNext方法移至下一条记录(4)MovePrevious方法移至上一条记录(5)Moven方法向前或向后移动n条记录,n为指定的数值。,例12-3:在窗体上用4个命令按钮代替例12-1数据控件对象的4个箭头的操作。窗体属性设置如下:在窗体上增加4个命令按钮,将数据控件的Visible属性设置为False.。通过对4个按钮的编程代替数据控件的4个箭头。窗体如图12-13所示。,图12-13用按钮代替数据控件,上一条和下一条按钮的代码需要考虑Recordset对象的边界,可用Bof和Eof属性检测记录集的首尾,如越界,则用指令定位到第一条或最后一条记录。程序代码如下:PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand2_Click()Data1.Recordset.MovePreviousIfData1.Recordset.BOFThenData1.Recordset.MoveFirstEndSubPrivateSubCommand3_Click()Data1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MoveLastEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSub,例12-4:在例12-1的基础上增加5个按钮:新增、删除、修改、查找和放弃。如图12-14所示。,表12-5控件属性设置,图12-14建立增删改查询功能,DimeditcheckAsBoolean全局变量PrivateSubCommand1_Click()OnErrorResumeNextcommadn2.Enabled=NotCommand2.EnabledCommand3.Enabled=NotCommand3.EnabledCommand4.Enabled=NotCommand4.EnabledCommand5.Enabled=NotCommand5.EnabledIfCommand1.Caption=添加ThenCommand1.Caption=确认Data1.Recordset.AddNewText1.SetFocusElseCommand1.Caption=添加Data1.Recordset.UpdataData1.Recordset.MoveLastEndIfEndSub,PrivateSubCommand2_Click()Dimmst,resAsStringmst=您是否真的要删除?OnErrorResumeNextres=MsgBox(mst,vbOKCancel+vbExclamation)SelectCaseresCasevbOKData1.Recordset.DeleteData1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MoveLastEndSelectEndSub,PrivateSubCommand3_Click()OnErrorResumeNextcommadn1.Enabled=NotCommand1.EnabledCommand2.Enabled=NotCommand2.EnabledCommand4.Enabled=NotCommand4.EnabledCommand5.Enabled=NotCommand5.EnabledIfCommand3.Caption=修改ThenCommand3.Caption=“确认”:Data1.Recordset.Edit:Text1.SetFocusElseCommand3.Caption=“修改”:Data1.Recordset.UpdataEndIfEndSubPrivateSubCommand4_Click()OnErrorResumeNextcommadn1.Caption=添加:Command3.Caption=修改Command1.Enabled=True:Command2.Enabled=TrueCommand3.Enabled=True:Command4.Enabled=FalseCommand5.Enabled=TrueData1.UpdateControlsData1.Recordset.MoveLastEndSub,PrivateSubCommand5_Click()DimmnoAsStringmno=InputBox$(请输入学号,查找窗)Data1.Recordset.FindFirst学号=db.ExecutesqlData1.RecordSource=selectstudent.学号,student.姓名,temp.教师,temp.课程名,temp.成绩fromstudent,tempwherestudent.学号=temp.学号Data1.RefreshData1.Visible=FalseEndSubPrivateSubCommand1_Click()EndEndSub,例12-10:设计一个窗体,用SQL语句从例12-9中数据库的3个数据表student、lesson和class表中选择数据构成记录集,并通过数据控件浏览记录集。记录集需包含字段:学号,姓名,学期,课程名,成绩,要求记录按学号的升序排列。显示运行界面参见图12-16。,图12-16运行界面,(1)建立新文件。(2)建立窗体。窗体对象属性如下表。,表12-12窗体属性表,(3)程序代码:PrivatesubForm1_loaddata1.recordsource=”selectstudent.学号,student.姓名,class.学期,lesson.课程名,class.成绩fromstudent,lesson,classwherestudent.学号=class.学号andclass.课程号=lesson.课程号orderbystudent.学号”EndsubPrivatesubCommand1_click()EndEndsub,12.4ADO数据控件,ADO数据控件是ActiveX外部控件,它的用途以及外形都和Data控件相似,但它是通过MicrosoftActiveX数据对象(ADO)来建立对数据源的连接的,凡是符合OLEDB规范的数据源都能连接。ADO数据控件通过属性实现了对数据源的连接。创建连接时,可以采用下列源之一:一个连接字符串,一个OLEDB文件(MDL),一个ODBC数据源名称(DSN)。当使用DSN时,无须更改控件的任何其他属性。,12.4.1使用ADO数据控件,1ConnectionStrng属性,ConnectionString属性包含了用于与数据源建立连接的相关信息。ConnectionString属性带有4个参数如表12-13所示。,表12-13ConnectionString属性参数,2RecordSource属性,RecordSource确定具体可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。,3ConnectionTimeout属性,用于数据连接的超时设定,若在指定时间内连接不成功显示超时信息。,4MaxRecords属性,定义从一个查询中最多能返回的记录数。,例12-11下面通过使用ADO数据控件和DATAGRID数据网格控件连接Studentmdb实现例12-2的功能,来说明ADO数据控件的使用。运行界面如图12-17。,实现步骤:1)在窗体上放置ADO数据控件,控件名采用默认名“Adodcl”2)单击属性窗口中的ConnectionString属性右边的“”按钮,弹出属性页对话框,如图12-18所示。,图12-18ConnectionString属性页,图12-17运行界面,在该对话框中允许通过三种不同的方式连接数据源。“使用DataLink文件”表示通过一个连接文件来完成。在Windows桌面上创建数据连接文件的过程为:(1)用鼠标右击桌面,在弹出的快捷菜单中选择“新建”子菜单的“Microsoft数据链接”命令;(2)桌面上产生一个数据链接文件图标,命名链接文件名;(3)用鼠标右击图标,执行快捷菜单中的“属性”命令;(4)在打开的属性对话框中通过提供者与链接选项卡链接指定的数据库。“使用ODBC数据资源名称”可以通过下拉菜单选择某个创建好的数据源名称(DSN)作为数据来源。“使用链接字符串”只需要单击“生成”按钮,通过选项设置自动产生连接字符串的内容。,3)采用“使用链接字符串”方式连接数据源。,图12-19数据链接属性窗,4)单击属性窗口中的RecordSource属性右边的“”按钮,弹出记录源属性页对话框,如图12-20。,在“命令类型”下拉列表中选痒“2adCmdTable”选项,在“表或存储过程名称”下拉列表中选择Studentmdb数据库中的“学生情况”表,关闭记录源属性页。此时,已完成了ADO数据控件的连接工作。由于ADO数据控件是一个ActiveX控件,也可以用鼠标右击ADO数据控件,在弹出的快捷菜单中选择“ADODC属性”菜单命令打开ADO数据控件属性页,如图12-21所示一次完成1)4)的全部设置。5)最后,在窗体上拖放一个DataGrid控件。,图12-20记录源属性页图12-21ADO数据控件属性页,12.4.2ADO控件上新增绑定控件的使用,随着ADO对象模型的引入,VisualBasic60除了保留以往的一些数据连接控件外,又提供了一些新的成员来连接不同数据类型的数据。这些新成员主要有DataGride、DataCombo、DataLiSt、DataReport和MonthView等控件。,在绑定控件上不仅对DataSource和DataField属性在连接功能上作了改进,又增加了DataMember与DataFormat属性使数据访问的队形更加完整。DataMember属性允许处理多个数据集,DataFormat属性用于指定数据内容的显示格式。,12.4.3使用数据窗体向导,VisualBasic60提供了一个功能强大的数据窗体向导,通过几个交互过程,便能建立一个访问数据的窗口。数据窗体向导属于外接程序,在使用前必须执行“外接程序”菜单的“外接程序管理器”命令,按图12-22所示的选项装入“VB6数据窗体向导”到“外接程序”菜单中。,图12-22外接程序管理器,这里以Studentmdb数据库的学生情况表作为数据源来说明数据访问窗口建立的过程。实现步骤1)执行“外接程序”菜单中的“数据窗体向导”命令,进入图12-23所示的数据窗体向导介绍窗。,2)单击“下一步”,进入数据窗体向导的数据库类型窗,可以选择任何版本的Access(Jet)数据库或任何ODBC兼容的数据库(用于远程访问)。本例中选择Access,单击“下一步”。3)在向导的数据库窗内选择具体的数据库文件。本例为“E:VB书Studentmdb”。4)在向导Form窗内设置应用窗体的工作特性。,图12-24向导Form窗,图12-23数据窗体向导介绍窗,5)在图12-25示的向导的记录源窗内选择所需要的数据。,图12-26向导控件选择窗,图12-25向导的记录源窗,6)在图12-26所示的向导控件选择窗内选择数据访问窗需要提供哪些操作按钮。,7)在图12-27所示的向导已完成窗内可以将整个操作过程保存到一个向导配置文件(.rwp)中。,将鼠标移动选中工程管理器窗口中“工程1”,按鼠标右箭,选择“工程1属性”,在出现的窗口中选择启动对象为“bqk”,然后运行可得到图12-28数据窗体向导创造的访问窗。,图12-28数据窗体向导创造的访问窗,图12-27向导已完成窗,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!