第6章 VB数据库1.ppt

上传人:hyn****60 文档编号:70969647 上传时间:2023-01-31 格式:PPT 页数:53 大小:295.50KB
返回 下载 相关 举报
第6章 VB数据库1.ppt_第1页
第1页 / 共53页
第6章 VB数据库1.ppt_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《第6章 VB数据库1.ppt》由会员分享,可在线阅读,更多相关《第6章 VB数据库1.ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章第六章 VB数据库编程技术数据库编程技术61数据库设计基础VB中的数据中的数据访问访问VB提供的数据库引擎叫Jet。VB提供了两种与Jet数据库引擎接口的方法:Data控件(DataControl)和数据访问对象(DAO)。Data控件只提供了有限的不需编程就能访问现存数据库的功能,而DAO模型则是全面控制数据库的完整编程接口。这两种方法不是互斥的,实际上,它们可以同时使用。61数据数据库设计库设计基基础础611 VB中的数据访问中的数据访问VB提供的数据库引擎叫提供的数据库引擎叫Jet。VB提供了两种与提供了两种与Jet数据库引擎接口的方法:数据库引擎接口的方法:Data控件控件(Da

2、ta Control)数据访问对象数据访问对象(DAO)。Data控件只提供了有限的不需编程就能访问现控件只提供了有限的不需编程就能访问现存数据库的功能存数据库的功能DAO模型是全面控制数据库的完整编程接口。模型是全面控制数据库的完整编程接口。这两种方法不是互斥的,它们可以同时使用。这两种方法不是互斥的,它们可以同时使用。VB中的数据中的数据库编库编程就是程就是创创建数据建数据访问对访问对象象数据访问对象对应于被访问的物理数据库的不同部分Database(数据库)Table(表)Field(字段)Index(索引)对象。用这些对象的属性和方法来实现对数据库的操作。VB通通过过DAO和和Jet引

3、擎可以引擎可以识别识别三三类类数据数据库库:1.VB数数据据库库:也也称称为为本本地地数数据据库库,这这类类数数据据库库文文件件使使用用与与Microsoft Access相相同同的的格格式式。Jet引引擎擎直直接接创创建建和和操操作作这这些些数据数据库库并且提供了最大程度的灵活性和速度。并且提供了最大程度的灵活性和速度。2.外外部部数数据据库库:VB可可以以使使用用几几种种比比较较流流行行的的“索索引引顺顺序序访访问问文文件件方方法法(ISAM)”数数据据库库,包包括括:dDase III、dBase IV、FoxPro 2.0和和2.5以以及及Paradox 3.x和和4.x。在在VB中中

4、可可以以创创建建和和操操作作所所有有这这些些格格式式的的数数据据库库,也也可可以以访访问问文文本本文文件件数数据据库库和和Excel或或Lotus l-2-3电电子表格文件。子表格文件。3.ODBC数据库:数据库:包括符合包括符合ODBC标准的客户机服务器标准的客户机服务器数据库,如数据库,如Microsoft SQL Server。如果要在如果要在VB中创建真正中创建真正的客户机服务器应用程序,可以使用的客户机服务器应用程序,可以使用ODBC Direct直接把直接把命令传递给服务器处理。命令传递给服务器处理。VB数据数据库库体系体系结结构构VB提供了基于MicrosoftJet数据库引擎的

5、数据访问能力,Jet引擎负责处理存储、检索、更新数据的结构,并提供了功能强大的面向对象的DAO编程接口。1VB数据库应用程序的组成VB数据库应用程序包含三部分,用户界面用户界面Jet引擎引擎数据库数据库(1)用)用户户界面和界面和应应用程序代用程序代码码用户界面是用户所看见的用于交互的界面,它包括显示数据并允许用户查看或更新数据的窗体。驱动这些窗体的是应用程序的VB代码,包括用来请求数据库服务的数据访问对象和方法,比如添加或删除记录,或执行查询等。(2)Jet引擎引擎Jet引擎被包含在一组动态链接库(DLL)文件中。在运行时,这些文件被链接到VB程序。它把应用程序的请求翻译成对.mdb(Acc

6、ess文件后缀)文件或其他数据库的物理操作。它真正读取、写入和修改数据库,并处理所有内部事务,如索引、锁定、安全性和引用完整性。它还包含一个查询处理器,接收并执行SQL查询,实现所需的数据操作。另外,它还包含一个结果处理器,用来管理查询所返回的结果。(3)数据)数据库库数据库是包含数据库表的一个或多个文件。(3)数据)数据库库数据库是包含数据库表的一个或多个文件。对于本地VB或Access数据库来说,就是mdb文件。对于ISAM数据库,它可能是包含.dbf(dBASE文件后缀)文件或其他扩展名的文件。或者,应用程序可能会访问保存在几个不同的数据库文件或格式中的数据。但无论在什么情况下,数据库本

7、质上都是被动的,它包含数据但不对数据作任何操作。数据操作是数据库引擎的任务。2.数据库应用程序的存放数据库应用程序的存放数数据据库库应应用用程程序序的的这这三三个个部部分分可可以以被被分分别放置在不同的位置上。别放置在不同的位置上。可可以以把把它它们们都都放放在在一一台台计计算算机机上上,供供单单用户应用程序使用用户应用程序使用也也可可以以放放置置在在通通过过网网络络连连接接起起来来的的不不同同计算机上。计算机上。脱离开应用程序本身,将数据存放在另一脱离开应用程序本身,将数据存放在另一台机器上的数据库应用程序,有远程数据台机器上的数据库应用程序,有远程数据库和客户机库和客户机/服务器数据库两种

8、结构。服务器数据库两种结构。客户机客户机/服务器数据库与远程数据库的存放服务器数据库与远程数据库的存放 用户界面用户界面Jet引擎引擎数据库数据库Jet引擎引擎用户界面用户界面数据库数据库客户机/服务器远程6.2 本地数据本地数据库设计库设计(ACCESS)VB中创建数据库的途径主要有:(1)可视化数据管理器:使用可视化数据管理器,不需要编程就可以创建Jet数据库。(2)DAO:使用VB的DAO部件可以通过编程的方法创建数据库。(3)MicrosoftAccess:因为MicrosoftAccess使用了与VB相同的数据库引擎和格式,所以,用MicrosoftAccess创建的数据库和直接在V

9、B中创建的数据库是一样的。(4)数据库应用程序:像FoxPro、dBase或ODBC客户机/服务器应用程序这样的产品,可以作为外部数据库,VB可通过ISAM或ODBC驱动程序来访问这些数据库。1.可视化数据管理器可视化数据管理器数据管理器数据管理器(Data Manager)是是VB的一个传统成员,的一个传统成员,它可以用于快速地建立数据库结构及数据库内容。它可以用于快速地建立数据库结构及数据库内容。启启动动数数据据管管理理器器 选选择择“外外接接程程序序”菜菜单单下下的的“可可视视化化数数据据管管理理器器”项项就就可可以以启启动动数数据据管管理理器器,打打开开“VisData”窗口。窗口。具

10、体实现具体实现建立数据库表:基本情况(学号,姓名,性别,专业,出生年月,照片,备注)学生成绩表(学号,课程,成绩,学期)单单击击“文文件件”菜菜单单中中的的“新新建建”命命令令,在在“新新建建”级级联联菜菜单单中中选选择择“Microsoft Access”,再再选选择择“版版本本7.0 MDB”项项,数数据据库库的的路路径径并并输输入入数数据据库库名名,这这 里里 为为student.mdb。建立数据建立数据库结库结构构添加数据表添加数据表我们首先建立基本情况表。在“表名称”中输入“基本情况”,然后添加基本情况表的字段,单击“添加字段”按钮,出现“添加字段”对话框,在此对话框中填入“学号”字

11、段的信息。按顺序输入“姓名”、“性别”、“专业”、“出生年月”、“照片”、“备注”字段,然后按“关闭”按钮返回到“表结构”对话框中。建立索引建立索引建建立立了了表表的的结结构构后后就就可可以以建建立立此此表表的的索索引引了了,这这样样可可以以加加快快检检索索速速度度。单单击击“添添加加索索引引”按按钮钮,会会出出现现“添添加加索索引引”对对话话框框,通通过过此此对对话话框框可可以以将数据表的某些字段设置为索引。将数据表的某些字段设置为索引。在在“名名称称”字字段段中中输输入入索索引引的的名名称称,然然后后从从下下边边的的“索索引引的的字字段段”列列表表中中选选择择作作为为索索引引的的字字段段,

12、我我们们这这里里选选择择的的是是“学号学号”。录入数据录入数据 数数据据表表结结构构建建立立好好之之后后,就就可可以以向向表表中中输输入入数数据了,数据管理器提供了据了,数据管理器提供了简单简单的数据的数据录录入功能。入功能。首首先先在在工工具具栏栏上上选选定定DBGrid显显示示风风格格的的按按钮钮,然然后后在在要要录录入入数数据据的的数数据据表表上上单单击击鼠鼠标标右右键键,选选择择“打打开开”选选项项,则则出出现现以以网网格格风风格格显显示示数数据据的的窗窗口口,如如果果此此表表中中已已有有数数据据,则则此此时时会会显显示示出出此此表表中中的的全全部部数数据据;若若此此表表中中无无数数据

13、据,则则会会显显示示出出一一个个空空表表。我我们们这这里里是是以以“基基本本情情况况”表为例,并且输入了部分数据后的情况。表为例,并且输入了部分数据后的情况。DBGrid显示风格显示风格建立查询建立查询数数据据表表建建立立好好之之后后,如如果果数数据据表表中中已已经经有有数数据据,就就可可以以对对表表中中的的数数据据进进行行有有条条件件或或无无条条件件的的查查询询。VB的的数数据据管管理理器器提提供供了了一一个个图图形形化化的的设设置置查查询询条条件件的的窗窗口口查询查询生成器。生成器。选选择择“实实用用程程序序”菜菜单单下下的的“查查询询生生成成器器”,或或在在数数据据库库窗窗口口区区域域单

14、单击击鼠鼠标标右右健健,然然后后在在弹弹出出的的菜菜单单中中选选择择“新新查查询询”,即即可可出出现现“查查询询生生成成器器”对对话话框框假假设查询设查询学号学号110002的基本情况,可按下述步的基本情况,可按下述步骤骤:(1)首先首先选择选择要要单击单击表列表框中的表列表框中的“基本情况基本情况”表。表。(2)在在“字段名称字段名称”字段中字段中选选定定“基本情况基本情况.学号学号”。(3)单击单击“运算符运算符”列表,列表,选择选择“=”。(4)单单击击“列列出出可可能能的的值值”按按钮钮,在在“值值”字字段段中中输输入入110002。(5)单击单击“将将And加入条件加入条件”,将条件

15、加入列表框中。,将条件加入列表框中。(6)在在“要要显显示示的的字字段段”列列表表框框中中,选选定定所所需需显显示示的的字字段段。注意,注意,这这里里只只选选我我们们在在查询结查询结果中要看的字段。果中要看的字段。(7)单单击击“运运行行”按按钮钮,在在随随后后的的VisData对对话话框框中中,选选择择“否否”,进进一步一步选择选择“运行运行”,即可,即可得得查询结查询结果。果。(8)单单击击“显显示示“按按钮钮,在在随随后后出出现现的的“SQL Query”窗窗口中,口中,显显示示刚刚建立的建立的查询查询所所对应对应的的SQL语语句。句。63 数据控件数据控件 Data控控件件是是Visu

16、al Basic访访问问数数据据库库的的一一种种利利器器,它它能能够够利利用用三三种种Recordset对对象象来来访访问问数数据据库库中中的的数数据据,数数据据控控件件提提供供有有限限的的不不需需编编程程而而能能访访问问现现存存数数据据库库的的功功能能,允允许许将将Visual Basic的的窗窗体体与与数数据据库库方方便便地地进进行行连连接接。要要利利用用数数据据控控件件返返回回数数据据库库中中记记录录的的集集合合,应应先先在在窗窗体体上上画画出出控控件件,再再通通过过它它的的三三个个基基本本属属性性Connect、DatabaseName和和RecordSource设置要访问的数据资源。

17、设置要访问的数据资源。6.3.1 6.3.1 数据控件属性数据控件属性1 1ConnectConnect属性属性 Connect属属性性指指定定数数据据控控件件所所要要连连接接的的数数据据库库类类型型,Visual Basic默默认认的的数数据据库库是是Access的的MDB文文件件,此此外外,也也可可连连接接DBF、XLS、ODBC等等类类型的数据型的数据库库。2 2DatabaseNameDatabaseName属性属性 DatabaseName属属性性指指定定具具体体使使用用的的数数据据库库文文件件名名,包包括括所所有有的的路路径径名名。如如果果连连接接的的是是单单表表数数据据库库,则则

18、DatabaseName属属性性应应设设置置为为数数据据库库文文件件所所在在的的子子目目录录名名,而而具具体体文文件件名名放放在在RecordSource属性中。属性中。3 3RecordSourceRecordSource属性属性RecordSource确确定定具具体体可可访访问问的的数数据据,这这些些数数据据构构成成记记录录集集对对象象Recordset。该该属属性性值值可可以以是是数数据据库库中中的的单单个个表表名名,个个存存储储查查询询,也也可可以以是是使用使用SQL查询语查询语言的一个言的一个查询查询字符串。字符串。4 4RecordTypeRecordType属性属性 Record

19、Type属性确定属性确定记录记录集集类类型。型。5 5EofActionEofAction和和BofActionBofAction属性属性当当记记录录指指针针指指向向Recordset对对象象的的开开始始(第第一一个个记记录录前前)或或结结束束(最最后后一一个个记记录录后后)时时,数数据据控控件件的的EofAction和和BofAction属属性性的的设设置置或或返返回回值值决决定了数据控件要采取的操作。定了数据控件要采取的操作。属性取值操作BofAction0控件重定位到第个记录BofAction1移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件ValidateEof

20、Action0控件重定位到最后个记录EofAction1移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件ValidateEofAction2向记录集加入新的空记录,可以对新记录进行编辑,移动记录指针,新记录写入数据库BofActio和和 EofAction属性属性(1)DataSource属性属性DataSource属属性性通通过过指指定定个个有有效效的的数数据据控控件件连连接到一个数据接到一个数据库库上。上。(2)DataField属性属性DataField属属性性设设置置数数据据库库有有效效的的字字段段与与绑绑定定控件建立控件建立联联系。系。绑定控件数据控件数据库

21、632数据控件的事件数据控件的事件1Reposition事件(重新定位)Reposition事件发生在一条记录成为当前记录后,只要改变记录集的指针使其从一条记录移到另一条记录,会产生Reposition事件。通常,可以在这个事件中显示当前指针的位置。例如,Data1_Reposition事件中加入如下代码:Private Sub Data1_Reposition()Data1.Caption=Data1.Recordset.AbsolutePosition+1End Sub这里,Recordset为记录集对象,AbsolutePosition属性指示当前指针值(从0开始)。当单击数据控件对象上

22、的箭头按钮时,数据控件的标题区会显示记录的序号。2.Validate事件(使生效)当要移动记录指针、修改与删除记录前或卸载含有数据控件的窗体时都触发Validate事件。Validate事件检查被数据控件绑定的控件内的数据是否发生变化。它通过Save参数(True或False)判断是否有数据发生变化,Action参数判断哪种操作触发了Validate事件。参数可为下表中的值。Action值值描述描述Action值值描述描述0取消取消对对数据控件的操作数据控件的操作6Update1MoveFirst7Delete2MovePrevious8Find3MoveNext9设设置置Bookmark4M

23、oveLast10Close5AddNew11卸卸载载窗体窗体3.3.数据控件的常用方法数据控件的常用方法数据控件的内置功能数据控件的内置功能很多,可以在代很多,可以在代码码中用中用数据控件的方法数据控件的方法访问这访问这些属性。些属性。1)Refresh方法 如果在设计状态没有如果在设计状态没有为打开数据库控件的有为打开数据库控件的有关属性全部赋值,或当关属性全部赋值,或当RecordSource在运行时在运行时被改变后,必须使用数被改变后,必须使用数据控件的据控件的Refresh方法激方法激活这些变化。活这些变化。在多用户环在多用户环境下,当其他用户同时访问境下,当其他用户同时访问同一数据

24、库和表时,同一数据库和表时,Refresh方法将使各用户对数据库的方法将使各用户对数据库的操作有效。操作有效。Private Sub Form_Load()Dim mpath As String Mpath=App.Path 获获取当前路径取当前路径 If Right(mpath,1)”/”Then mpath=mpath+”/”Data1.DatabaseName=mpath+”Student.mdb”连连接数据接数据库库 Data1.RecordSource=”基基本本情情况况”构成构成记录记录集集对对象象 Data1.Refresh 激活数据控件激活数据控件End Sub2)2)Upda

25、teControlsUpdateControls方法方法UpdateControls方法可以将数据从数据库中重新读到被数据控件绑定的控件内。因而我们可使用UpdateControls方法终止用户对绑定控件内数据的修改。例如:将代码Data1.UpdateControts放在一个命令按钮的Click事件中,就可以实现对记录修改的功能。3).3).UpdateRecordUpdateRecord方法方法当对绑定控件内的数据修改后,数据控件需要移动记录集的指针才能保存修改。如果使用UpdateRecord方法,可强制数据控件将绑定控件内的数据写入到数据库中,而不再触发Validate事件。在代码中可

26、以用该方法来确认修改。6 63 34 4 记录记录集的属性与方法集的属性与方法由RecordSource确定的具体可访问的数据,构成的记录集Recordset也是一个对象,它和其他对象一样具有属性和方法。下面列出记录集常用的属性和方法:1AbsolutePosition属性AbsolutePosition返回当前指针值,如果是第1条记录,其值为0,该属性为只读属性。2Bof和Eof的属性Bof判定记录指针是否在首记录之前,若Bof为True,则当前位置位于记录集的第1条记录之前。与此类似,Eof判定记录指针是否在末记录之后。3Bookmark属性Bookmark属性的值采用字符串类型,用于设置

27、或返回当前指针的标签。在程序中可以使用Bookmark属性重定位记录集的指针,但不能使用AbsolutePostion属性。4Nomatch属性在记录集中进行查找时,如果找到相匹配的记录,则Recordset的NoMatch属性为False,否则为True。该属性常与Bookmark属性一起使用。5RecordCount属性RecordCount属性对Recordset对象中的记录计数,该属性为只读属性。在多用户环境下,RecordCount属性值可能不准确,为了获得准确值,在读取RecordCount属性值之前,可使用MoveLast方法将记录指针移至最后一条记录上。6Move方法使用Mov

28、e方法可代替对数据控件对象的4个箭头按钮的操作遍历整个记录集。5种Move方法是:(1)MoveFirst方法:移至第1条记录。(2)MoveLast方法:移至最后一条记录。(3)MoveNext方法:移至下一条记录。(4)MovePrevious方法:移至上一条记录。(5)Moven方法:向前或向后移n条记录,n为指定的数值。例在窗体上用4个命令按钮代替数据控件对象的4个箭头按钮的操作。在窗体上增加4个命令按钮,将数据控件的Visible属性设置为False,如图所示。通过对4个命令按钮的编程代替对数据控件对象的4个箭头按钮的操作。PrivateSubCommand1_Click()Data

29、1.Recordset.MoveFirstEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand2_Click()Data1.Recordset.MovePreviousIfData1.Recordset.BOFThenData1.Recordset.MoveFirstEndSubPrivateSubCommand3_Click()Data1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MoveLastEndSub7F

30、ind方法使用Find方法可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录。4种Find方法是:(1)FindFirst方法:从记录集的开始查找满足条件的第1条记录。(2)FindLast方法:从记录集的尾部向前查找满足条件的第l条记录。(3)FindNext方法:从当前记录开始查找满足条件的下一条记录。(4)FindPrevious方法:从当前记录开始查找满足条件的上一条记录。4种Find方法的语法格式相同:数据集合.Find方法条件搜索条件是一个指定字段与常量关系的字符串表达式。在构造表达式时,除了用普通的关系运算外,

31、还可以用Like运算符。例如:语句Data1.Recordset.FindFirst专业=物理表 示 在 由 Data1数 据 控 件 所 连 接 的 数 据 库Student.mdb的记录集内查找专业为“物理”的第l条记录。这里,“专业”为数据库Student记录集中的字段名,在该字段中存放专业名称信息。要想查找下一条符合条 件 的 记 录,可 继 续 使 用 语 句:Data1.Recordset.FindNext专业=物理。又例如:要在记录集内查找专业名称中带有“建”字的专业:Data1.Recordset.FindFirst专业Like”*建*”字符串“*建*”匹配字段专业中带有“建”

32、字的所有专业名称字符串。需要指出的是Find方法在找不到相匹配的记录时,当前记录保持在查找的始发处,NoMatch属性为True。如果Find方法找到相匹配的记录,则记录定位到该记录,Recordset的NoMatch属性为False。8Seek方法使用Seek方法必须打开表的索引,它在Table表中查找与指定索引规则相符的第1条记录,并使之成为当前记录。其语法格式为:数据表对象.seekcomparison,keyl,key2Seek允 许 接 受 多 个 参 数,第 1个 是 比 较 运 算 符comparison,Seek方法中可用的运算符有=、=、=,110001635 数据库记录的增

33、、删、改操作数据库记录的增、删、改操作Data控件是浏览表格并编辑表格的好工具,但怎么输入新信息或删除现有记录呢?这需要编写几行代码,否则无法在Data控件上完成数据输入。数据库记录的增、删、改操作需要使用AddNew、Delete、Edit、Update和Refresh方法。它们的语法格式为:数据控件数据控件.记录集记录集.方法名方法名 1增加记录AddNew方法在记录集中增加新记录。步骤为:(1)调用AddNew方法。(2)给各字段赋值。给字段赋值格式为:Recordset.Fields(”字段名”)=值(3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库。注意:如果使用

34、AddNew方法添加新的记录,但是没有使用Update方法而移动到其他记录,或者关闭记录集,那么所做的输入将全部丢失,而且没有任何警告。当调用Update方法写入记录后,记录指针自动返回到添加新记录前的位置上,而不显示新记录。为此,可在调用Update方法后,使用MoveLast方法将记录指针再次移到新记录上。2删除记录要从记录集中删除记录的操作分为三步:(1)定位被删除的记录使之成为当前记录。(2)调用Delete方法。(3)移动记录指针。注意:在使用Delete方法时,当前记录立即删除,不加任何的警告或者提示。删除一条记录后,被数据库所约束的绑定控件仍旧显示该记录的内容。因此,你必须移动记

35、录指针刷新绑定控件,般采用移至下一记录的处理方法。在移动记录指针后,应该检查Eof属性。3编辑记录数据控件自动提供了修改现有记录的能力,当直接改变被数据库所约束的绑定控件的内容后,需单击数据控件对象的任一箭头按钮来改变当前记录,确定所做的修改。也可通过程序代码来修改记录,使用程序代码修改当前记录的步骤为:(1)调用Edit方法。(2)给各字段赋值。(3)调用Update方法,确定所做的修改。注意:如果要放弃对数据的所有修改,可用Refresh方法,重读数据库,没有调用Update方法,数据的修改没有写入数据库,所以这样的记录会在刷新记录集时丢失。例例 加入加入“新增新增”、“删删除除”、“修改

36、修改”、“放弃放弃”和和“查查找找”钮钮,通,通过对过对5个按个按纽纽的的编编程建立增、程建立增、删删、改、改、查查功能,功能,如如图图所示。所示。Command1_Click事件的功能根据按钮提示文字调用AddNew方法或Update方法,并且控制其他4个按钮的可用性。当按钮提示为“新增”时调用AddNew方法,并将提示文字改为“确认”,同时使“删除”按钮Command2、“修改”按钮Command3和“查找”按钮Command5不可用,而使“放弃”按钮Command4可用。新增记录后,需再次单击Command1调用Update方法确认添加的记录,再将提示文字再改为“新增”,并使“删除”、“

37、修改”和“查找”按钮可用,而使“放弃”按钮不可用。程序中出现的OnErrorResumeNext语句是VisualBasic提供的错误捕获语句。该语句表示在程序运行时发生错误,忽略错误行,继续执行下一语句。锁Private Sub Command1_Click()On Error Resume Next Command2.Enabled=Not Command2.Enabled Command3.Enabled=Not Command3.Enabled Command4.Enabled=Not Command4.Enabled Command5.Enabled=Not Command5.Ena

38、bled If Command1.Caption=新增新增 Then Command1.Caption=确确认认 Data1.Recordset.AddNew Text1.SetFocus Else Command1.Caption=新增新增 Data1.Recordset.Update Data1.Recordset.MoveLast End IfEnd Sub命令按钮Command2_Click事件调用方法删除当前记录。当记录集中的记录全部被删除后,再执行Move语句将发生错误,这时由OnErrorResumeNext语句处理错误。PrivateSubCommand2_Click()OnE

39、rrorResumeNextData1.Recordset.DeleteData1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MoveLastEndSub 命令按钮Command3_Click事件的编程思路,根据按钮提示文字调用Edit方法进入编辑状态或调用Update方法将修改后的数据写入到数据库,并控制其他3个按钮的可用性,代码如下:Private Sub Command3_Click()Private Sub Command3_Click()On Error Resume Next On Error Resume

40、 Next Command1.Enabled=Not Command1.Enabled Command1.Enabled=Not Command1.Enabled Command2.Enabled=Not Command2.Enabled Command2.Enabled=Not Command2.Enabled Command4.Enabled=Not Command4.Enabled Command4.Enabled=Not Command4.Enabled Command5.Enabled=Not Command5.Enabled Command5.Enabled=Not Command

41、5.Enabled If Command3.Caption=If Command3.Caption=修改修改 ThenThen Command3.Caption=Command3.Caption=确认确认 Data1.Data1.RecordsetRecordset.Edit.Edit Text1.Text1.SetFocusSetFocus Else Else Command3.Caption=Command3.Caption=修改修改 Data1.Data1.RecordsetRecordset.Update.Update End If End IfEnd SubEnd Sub命令按钮Co

42、mmand4_Click事件使用UpdateControls方法放弃操作,代码如下:Private Sub Command4_Click()On Error Resume Next Command1.Caption=新增新增 Command3.Caption=修改修改 Command1.Enabled=True Command2.Enabled=True Command3.Enabled=True Command4.Enabled=False Command5.Enabled=True Data1.UpdateControls Dala1.Recordset.MoveLastEnd Sub命令

43、按钮Command5_Click事件根据输入专业使用SQL语句查找记录,代码如下:Private Sub Command5_Click()Dim mzy As String mzy=InputBox$(请输请输入入专业专业,查查找窗找窗)Data1.RecordSource=Select*From 基基本本情情况况 Where 专业专业=&mzy&Data1.Refresh If Data1.Recordset.EOF Then MsgBox 无此无此专业专业!,提示提示 Data1.RecordSource=基本情况基本情况 Data1.Refresh End IfEnd Sub 上面的代码

44、给出了数据表内数据处理的基本方法。需要注意的是:对于一条新记录或编辑过的记录必 须 要 保 证 数 据 的 完 整 性,这 可 通 过Data1_Validate事件过滤无效记录。例如,下面的代码对学号字段进行测试,如果学号为空则输入无效。在本例中被学号字段所约束的绑定控件是Text1,可用Text1.DataChanged属性检测Text1控件所对应的当前记录中的字段值的内容是否发生了变化,Action=6表示Update操作。此外,使用数据控件对象的任一箭头按钮来改变当前记录,也可确定所做添加的新记录或对已有记录的修改,Action取值14分别对应单击其中一个箭头按钮的操作,当单击数据控件

45、的箭头按钮时也触发Validate事件。Private Sub Data1_Validate(Action As Integer,Save As Integer)If Text1.Text=And(Action=6 Or Text1.DataChanged)Then MsgBox 数据不完整,必数据不完整,必须须要有学号要有学号!Data1.UpdateControls End If If Action=1 And Action=4 Then Command1.Caption=新增新增 Command3.Caption=修改修改 Command1.Enabled=True Command2.E

46、nabled=True Command3.Enabled=True Command4.Enabled=False End IfEnd Sub关于照片的关于照片的输输入,入,较简单较简单的方法是通的方法是通过过剪剪贴贴板将照片板将照片图图片复制到片复制到Picture1控件控件在输入照片时,事先需要用扫描仪将照片扫描到内存或形成图形文件,通过一个图片编辑程序将照片装入剪贴板,然后再从剪贴板复制到Picture1控件。本例通过Picture1_DblClick事件来完成剪贴板到Picture1控件的复制,当移动记录指针时,Picture1控件内的照片存入数据库,此外,也可以使用OLE拖放技术将照片图形文件拖放到Picture1控件或其他图形容器内。PrivateSubPicture1_DblClick()Picture1.Picture=Clipboard.GetDataEndSub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁