ADO数据库编程.pptx

上传人:封****n 文档编号:96697863 上传时间:2024-03-10 格式:PPTX 页数:87 大小:1.58MB
返回 下载 相关 举报
ADO数据库编程.pptx_第1页
第1页 / 共87页
ADO数据库编程.pptx_第2页
第2页 / 共87页
点击查看更多>>
资源描述

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

1、第第9 9章章 ADOADO数据库编程数据库编程本章思维导图1.了解Access数据库的数据访问接口。2.熟悉ADO数据访问接口及ADO的主要对象。3.掌握ADO中Recordset对象的主要属性和方法。4.掌握Access中应用ADO编程的基本方法和一般步骤。学习目标学习目标数据库编程是Access的重要组成部分。在开发Access应用程序过程中,用户创建的窗体必须与数据库表、查询及报表等数据源建立联系,才能实现数据的编辑和查询统计。Access程序设计中最常用的数据访问方式是ADO。应用ADO,在Access环境下可以很方便地实现应用程序界面与后台数据源间的连接,并对数据源中的数据进行各种

2、不同的操作。9.1 ADO概述概述VBA是通过数据库引擎工具来实现对Access数据库的访问。数据库引擎是一种通用接口,是应用程序与物理数据库之间的桥梁。通过数据库引擎,用户可以使用统一的形式和相同的数据访问与处理方法来访问各种类型的数据库。实际上,数据库引擎就是一组动态链接库(dynamiclinklibrary,DLL),当用户需要时,将DLL连接到应用程序就可以实现对数据库的数据的访问。9.1.1 数据库引擎和数据库引擎和接口接口ODBC是数据库服务器的一个标准协议,是微软公司开发和定义的一套访问关系型数据库的标准接口,它为应用程序和数据库提供了一个定义良好、公共且不依赖数据库管理系统(

3、DBMS)的应用程序接口(API),并且保持着与SQL标准的一致性。API的作用是为应用程序设计者提供单一和统一的编程接口,使同一个应用程序可以访问不同类型的关系数据库。1.ODBCAPI数据访问对象(dataaccessobjects,DAO)既提供了一组具有一定功能的API函数,也提供了一个访问数据库的对象模型,在Access数据库应用程序中,开发者可利用其中定义的如Database、RecordSet等一系列数据访问对象,实现对数据库的各种操作。2.DAO应用程序DAOJet数据库引擎ODBCAccess数据库等SQL Server等动态数据对象(activeXdataobjects,A

4、DO)是基于组件的数据库编程接口,它是一个与编程语言无关的部件对象模型(COM)组件系统,可以对来自多种数据提供者的数据进行操作。ADO也提供了一个用于数据库编程的对象模型,开发者可利用其中的一系列对象,如Connection、Command、Recordset对象等,实现对数据库的操作。ADO是对微软的所支持的数据库进行操作的最有效和最简单直接的方法,是功能强大的数据访问编程模式。3.ADOADO是一个便于使用的应用程序层接口,是为微软公司最新和最强大的数据访问规范对象链接嵌入数据库OLEDB(objectlinkingandembeddingdatabase)而设计的。ADO以OLEDB为

5、基础,对OLEDB底层操作的复杂接口进行封装,使应用程序通过ADO中极简单的COM接口,就可以访问来自OLEDB数据源的数据,这些数据源包括关系及非关系数据库、文本和图形等。9.1.2 ADO应用程序ADOMicrosoft OLE DB Provider forAccess数据库JetSQL ServerOracleODBC其他SQL Server数据库Oracle数据库ODBC数据库非关系数据库9.2.1ADO对象模型9.2.2Connection对象9.2.3Recordset对象9.2.4Command对象9.2ADO主要对象ADO定义了一个可编程的对象集,主要包括Connection

6、、Recordset、Command、Parameter、Field、Property和Error等共7个对象,对象模型如图所示。9.2.1 ADO对象模型对象模型ConnectionErrorsErrorsCommandParametersParameterRecordsetFieldsFieldPropertiesPropertyADO对象集中包含了三大核心对象,即Connection(连接)、Recordset(记录集)和Command(命令)对象。在使用ADO模型对象访问数据库时,Connection对象通过连接字符串包括数据提供程序、数据库、用户名及密码等参数建立与数据源的连接;Co

7、mmand对象通过执行存储过程、SQL命令等,实现数据的查询、增加、删除、修改等操作;Recordset可将从数据源按行返回的记录集存储在缓存中,以便对数据进行更多的操作。Connection对象代表应用程序与指定数据源进行的连接,包含了关于某个数据提供的信息以及关于结构描述的信息。应用程序通过Connection对象不仅能与各种关系数据库(如SQLServer、Oracle、Access等)建立连接,也可以同文本文件、Excel电子表等非关系数据源建立连接。9.2.2 Connection对象对象Connection对象的常用属性有ConnectionString,即连接字符串,指在连接数据

8、源之前设置的所需要的数据源信息,如数据提供程序、数据库名称、用户名及类型等。设置ConnectionString属性的语法如:连接对象变量.ConnectionString=参数1=值;参数2=值;1.ConnectionString属性ConnectionString的常用参数如表所示参数参数参数参数说明明Provider指定OLEDB数据提供者Dbq指定数据库的物理路径Driver指定数据库的驱动程序(数据库类型)Data Source指定数据源File Name指定连接的数据库的名称UID指定连接数据源时的用户IDPWD指定连接数据源时该用户的密码(1)Open方法用于实现应用程序与数据

9、源的物理连接。Open方法的格式如:连接对象变量.OpenConnectionString,UserD,Password如果在ConnectionString连接字符串中已经包含了UID和PWD两个参数,那么Open方法中的UserID和Password两个参数可以省略如果已经设置了Connection对象的ConnectionString属性的值,那么Open方法后的所有参数都可以省略2.Open和Close方法(2)Close方法用于断开应用程序与数据源的物理连接,即关闭连接对象。Close方法的格式如:连接对象变量.Close需要注意的是,Close方法只是断开应用程序与数据源的连接,而

10、原先存在于内存中的连接变量并没有释放,还继续存在。为了节省系统的资源,最好也要把内存中的连接变量释放。释放连接变量的格式如:Set连接变量=Nothing3.使用Connection对象与指定数据源的连接的一般步骤如下:(1)创建Connection对象变量;(2)设置Connection对象变量的ConnectionString属性值;(3)用Connection对象变量的Open方法实现与数据源的物理连接;(4)待对数据源的操作结束后,用Connection对象变量的Close方法断开与数据源的连接;(5)用Set命令将Connection对象变量从内存中释放。E盘根目录下创建一个Acce

11、ss数据库,名称为“教务管理.accdb”,使用Connection对象实现与该数据库的连接,假定不需要用户名和密码。【例9-1】方法有:数据源信息在ConnectionString连接字符串中设置,简化Open方法,具体实现如下:DimconnAsADODB.ConnectionSetconn=NewADODB.Connectionconn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:/教务管理.accdbconn.Openonn.CloseSetconn=Nothing 方法二:直接将连接对象变量的Conne

12、ctionString属性值作为连接对象变量的Open方法的参数,具体实现如下:DimconnAsADODB.ConnectionSetconn=NewADODB.Connectionconn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=E:/教务管理.accdbconn.CloseSetconn=NothingRecordset(记录集)对象表示的是来自基本表或命令执行结果的记录全集。Recordset对象包含某个查询返回的记录,以及那些记录中的游标。所有的Recordset对象中的数据在逻辑上均使用记录(行)和字段(列)进行构造,每个字段

13、表示为一个Field对象。不论在任何时候,Recordset对象所指的当前记录均为集合内的单个记录。使用ADO时,通过Recordset对象几乎可对数据进行所有的操作。9.2.3 Recordset对象对象在使用ADO的Recordset对象之前,应先声明并初始化一个Recordset对象,方法如:DimrsAsADODB.RecordsetSetrs=NewADODB.Recordset首先用Dim语句声明一个ADODB的记录集对象变量rs,接着用Set语句将记录集对象变量rs初始化1.声明Recordset对象(1)记录集对象变量的Open方法语法如:记录集对象变量.OpenSource,

14、ActiveConnecion,CursorType,LockType,Options说明:记录集对象变量应该是已经声明并实例化的记录集对象变量;Source参数为数据源,可以是数据库表名、SQL语句或有效的Connection对象变量;ActiveConnection参数是有效的Connection对象变量或有效的ConnectionString连接字符串;CursorType参数代表应用程序打开Recordse记录集对象时的游标类型;LockType参数代表应用程序打开Recordset记录集对象时的锁定类型;Options参数代表应用程序打开Recordset记录集对象时的命令字符串类型

15、。2.Open方法仅向前游标(AdOpenForwardOnly,参数值为0)。默认值,仅允许在记录集中向前滚动。其他用户所作的添加、更改或删除不可见;键集游标(AdOpenKeySet,参数值为1)。允许在记录集中作各种类型(向前或向后)的移动。其他用户所作数据更改可见,其他用户所作的添加、删除不可访问;动态游标(AdOpenDynamic,参数值为2)。允许在记录集中作各种类型(向前或向后)的移动。可以用于查看其他用户所作的添加、更改和删除;静态游标(AdOpenStatic,参数值为3)。允许在记录集中作各种类型(向前或向后)的移动。其他用户所作的添加、更改或删除不可见。(2)Curso

16、rType参数只读(AdLockReadOnly,参数值为1):无法更改数据,默认值;保守式锁定(AdLockPessimistic,参数值为2):编辑记录时立即锁定数据源的记录;开放式锁定(AdLockOptimistic,参数值为3):调用Update(更新)方法时才锁定数据源的记录;开放式批量更新(AdLockBatchOptimistic,参数值为4)。(3)LockType参数AdCmdUnknown(参数值为-1):未知命令类型;AdCmdText(参数值为1):执行的字符串包含一个命令文本;AdCmdTable(参数值为2):执行的字符串包含一个表名;AdCmdStoredPro

17、c(参数值为3):执行的字符串包含一个存储过程名。(4)Options参数3.常用属性和方法ActiveConnection属性。通过设置ActiveConnection属性使记录集对象要打开的数据源与已经定义好的Connection对象相关联。ActiveConnection属性值可以是有效的Connection对象变量或设置好参数值的ConnectionString连接字符串。(1)常用属性RecordCount属性。返回Recordset记录集对象中记录的个数。BOF和EOF属性。如果当前记录在Recordset对象的第一条记录之前,那么BOF属性值为True,否则都为False;如果当

18、前记录在Recordset对象的最后一条记录之后,那么EOF属性值为True,否则都为False;AddNew方法。在记录集对象中增加记录如:记录集对象变量.AddNew;Delete方法。在记录集对象中删除当前记录如:记录集对象变量.Delete;Update方法。立即更新方式,将记录集对象中当前记录的更新内容立即保存到所连接数据源的数据库中如:记录集对象变量.Update。(2)常用方法Move方法将记录指针移动到指定的位置。MoveFirst:记录指针移动到记录集的第一条记录;MoveLast:记录指针移动到记录集的最后一条记录;MoveNext:记录指针向前(向下)移动一条记录;Mov

19、ePrevious:记录指针向后(向上)移动一条记录;Moven或Moven:记录指针向前或向后移动n条记录;Move方法Close方法可以关闭一个已打开的Recordset对象,并释放相关的数据和资源,此时,Recordset对象变量还存在于内存中。如:记录集对象变量.Close如果同时还要将Recordset对象从内存中完全释放,则还应设置Recordset对象为Nothing。如:Set记录集对象变量=Nothing。Close方法Recordset对象还包含一个Fields集合,记录集的每一个字段都有一个Field对象。如果引用Recordset对象当前记录的某个字段数据,格式如:记录

20、集对象变量.Fields(字段名).Value可简化为:记录集对象变量(字段名)(3)Fields集合在应用ADO的Recordset对象进行数据库的连接和数据记录的访问中,主要有3种不同的方法可以实现:4.Recordset对象的使用方法1:创建Connection连接对象建立与指定数据源的连接,并将该Connection连接对象作为Recordset记录集对象Open方法中ActiveConnection属性的值;方法2:不创建Connection连接对象,直接用有效的ConnectionString连接字符串作为Recordset记录集对象Open方法中ActiveConnection属

21、性的值;方法3:由于在大部分的Access应用中,应用程序与数据源通常在同一个数据库中,这种情况下就可以缺省方法2中ConnectionString连接字符串的相关参数设置,直接将ConnectionString连接字符串的属性值设置为“CurrentProject.Connection”,即表示连接的是当前数据库。应用ADO的Recordset对象获取Access数据库(E盘的“教务管理.accdb”)中“course”数据表的记录内容。假定访问数据库不需要用户名和密码。【例9-2】首先声明并初始化连接对象变量conn和记录集对象rs,接着通过连接对象变量conn的Open方法建立与数据源的

22、连接,将连接对象变量conn作为Recordset记录集对象Open方法ActiveConnection属性的值,即可获得指定数据内容。方法1DimconnASADODB.Connection声明连接对象变量connDimrsASADODB.Recordset声明记录集对象变量rsSetconn=NewADODB.Connection连接对象变量conn初始化Setrs=NewADODB.Recordset记录集对象变量rs初始化conn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=E:/教务管理.accdb连接指定数据源rs.Opencou

23、rse,conn,2,3获取数据源中course表的记录,动态游标,开放式锁定rs.Close关闭记录集对象rsSetrs=Nothing清空记录集对象rsconn.Close关闭连接对象connSetconn=Nothing清空连接对象conn首先声明并初始化记录集对象rs,接着直接将包含有连接指定数据源参数设置的ConnectionString连接字符串作为Recordset记录集对象Open方法ActiveConnection属性的值,即可获得指定数据内容。方法2DimrsASADODB.Recordset声明记录集对象变量rsSetrs=NewADODB.Recordset记录集对象变

24、量rs初始化rs.Opencourse,Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:/教务管理.accdbRem获取数据源中course表的记录,游标和锁定类型默认值,即静态游标和只读锁定rs.Close关闭记录集对象rsSetrs=Nothing清空记录集对象rs由于连接的是当前数据库,因此在声明并初始化记录集对象rs后,用“CurrentProject.Connection”作为记录集对象Open方法中ActiveConnection属性的值,即可获得指定数据内容。这是最简便、最常用的在Access中应用Recordset记录集对象访问Acc

25、ess数据库的方法。方法3DimrsASADODB.Recordset声明记录集对象变量rsSetrs=NewADODB.Recordset记录集对象变量rs初始化rs.Opencourse,CurrentProject.Connection,2,2Rem获取当前数据库中course表的记录,表名作为数据源,动态式游标,保守式锁定rs.Close关闭记录集对象rsSetrs=Nothing清空记录集对象rs假设在Access应用程序设计中,需要使用Recordset对象访问当前数据库“教务管理.accdb”,并获取“course”表中第7学期开设的课程的名称。【例9-3】DimrsAsADOD

26、B.RecordsetSetrs=NewADODB.Recordsetrs.OpenSelect课程名称 FromcourseWhere学期=7,CurrentProject.Connection,2,2Rem当前数据库连接,用SQL查询语句筛选表的字段和记录作为数据源。rs.CloseSetrs=Nothing在Access应用程序设计中,假设当前数据库为“教务管理.accdb”,要求使用Recordset对象访问“Major”表并增加一条记录,各字段内容分别为:专业编号:M08;专业名称:大数据;学院代号:06。【例9-4】DimrsAsADODB.RecordsetSetrs=NewAD

27、ODB.Recordsetrs.OpenMajor,CurrentProject.Connection,2,2连接当前数据库,用表名作为数据源rs.AddNew在记录集中增加新纪录rs(专业编号)=M08给记录集字段赋值rs(专业名称)=大数据rs(学院代号)=06rs.Update将新增的记录集的各字段值保存到数据库中rs.CloseSetrs=NothingCommand(命令)对象用以定义并执行针对数据源的具体命令,即通过传递指定的SQL命令来操作数据库,如建立数据表、删除数据表、修改数据表的结构等操作。应用程序也可以通过Command对象查询数据库,并将运行结果返回给Recordset

28、记录集对象,以完成更多的增加、删除、更新、筛选记录等操作。需要注意的是,在访问非关系型的数据源时,由于SQL查询语句可能无效,因此Command对象也无法使用。9.2.4 Command对象对象在使用Command对象前,应声明并初始化一个Command对象,方法如:DimcommAsADODB.CommandSetcomm=NewADODB.Command1.声明Command对象创建好Command对象后,就可以用该Command对象的属性和方法来操作指定的数据库。2.Command对象的属性和方法(1)ActiveConnection属性。通过设置ActiveConnection属性使C

29、ommand对象与已经定义并且打开的Connection对象相关联。ActiveConnection属性值可以是有效的Connection对象变量或设置好参数值的ConnectionString连接字符串。(2)CommandText属性。表示Command对象要执行的命令文本,通常是数据表名,完成某个特定功能的SQL命令或存储过程的调用语句等。Execute方法是Command对象最主要的方法,用来执行CommandText属性所指定的SQL语句或存储过程等。Execute方法有两种:其一是有返回记录集的执行方式,格式如:Set记录集对象变量=命令对象变量.Execute其二是无返回记录集的

30、执行方式,格式如:命令对象变量.Execute(3)Execute方法(4)将Command对象从内存中完全释放,需要用Set语句设置Command对象为Nothing。如:Set命令对象变量=Nothing在Access应用程序设计中,假设当前数据库为“教务管理.accdb”,要求使用Command对象将数据库中“Grade”表的所有期中成绩增加3%。【例9-5】DimconnAsADODB.Connection定义连接变量connDimcommAsADODB.Command定义命令对象commSetconn=NewADODB.ConnectionSetcomm=NewADODB.Comma

31、ndconn.OpenCurrentProject.Connection连接变量conn用Open方法建立与当前数据库的连接comm.ActiveConnection=conn设置命令变量comm的活动连接为conncomm.CommandText=UpdateGradeSet期中成绩=期中成绩*1.03设置命令文本为SQL更新命令comm.Execute执行命令对象commconn.Close关闭连接变量Setconn=Nothing释放连接变量Setcomm=Nothing释放命令变量用户使用Access可以创建数据库和创建数据表,并根据数据表中的数据创建查询和报表等多种应用。同时通过Ac

32、cess,用户还可以创建窗体作为应用程序的界面。在大部分的Access应用程序开发中,前端的应用程序界面常常通过ADO(动态数据对象)访问后台的数据库文件。由于ADO的Recordset对象能完成几乎所有的数据库操作,因此在Access中主要应用Recordset对象进行数据库的编程。9.3 ADO在在Access中的中的应用应用1.在VBA中引用ADO类库ADO是面向对象的设计方法,有关ADO的各个对象的定义都集中在ADO类库中。在默认情况下,VBA并没有加载ADO类库。因此在进行数据库编程时,要使用ADO对象,首先要引用ADO类库9.3.1 ADO编程一般编程一般方法方法(1)在当前数据库

33、中打开VisualBasic编辑器(即VBE),选择“工具”菜单下的“引用”命令,打开“应用-Database”对话框。(2)在对话框的“可使用的引用”列表中选中“MicrosoftActiveXDataObjects2.1Library”项,即单击该选项前的复选框保持选中状态,如图所示。在Access应用程序开发中,在当前数据库下使用ADO的Recordset对象访问数据库并对数据操作的一般方法如下:(1)首先用Dim语句声明一个Recordset变量,并用Set语句实例化。(2)使用Recordset变量的Open方法连接数据源,并返回所查询的记录内容。由于连接的是当前数据库,因此Open

34、方法中的ActiveConnecion参数值可以直接设置为“CurrentProject.Connection”,数据源一般设置为SQL查询语句或数据表名,同时根据实际需要游标类型和记录锁定类型的参数值可以都设置为2。2.一般方法(3)根据需要对Recordset对象中的数据进行操作,如用“记录集对象变量(字段名)”引用Recordset对象中字段的值,对字段进行更新、删除、计算等操作。(4)对数据操作完成后,用Close方法关闭记录集对象,并用Set命令将记录集对象从内存中释放。(5)主要代码段如下:DimrsAsADODB.Recordset定义记录集对象Setrs=NEWADODB.Re

35、cordset记录集对象初始化rs.open表名,CurrentProject.Connection,2,2记录集对象的Open方法建立与当前数据库的连接,其中数据源可以是表名,也可以是SQL查询语句rs.Close关闭记录集对象Setrs=Nothing释放记录集对象9.3.2ADO编程实例如图所示“Major”表记录编辑窗体,功能如下:根据Major表的内容,文本框Text1显示专业的编号,文本框Text2显示专业的名称,文本框Text3显示专业所属的学院代号;单击“上一条记录”按钮显示前一个专业的信息;单击“下一记录”按钮显示后一个专业的信息;单击“增加”按钮将新输入的专业编号、专业名称

36、和学院代号等信息保存到Major表中;单击“更新”按钮将窗体上修改过的记录字段内容保存到Major表中;单击“删除”按钮将删除Major表中的相应记录。按钮的激活和非激活功能暂不实现。【例9-6】(1)窗体模块通用声明段中记录集对象变量的声明DimrsAsADODB.Recordset定义rs为模块级变量,多个模块都可用(2)窗体的加载事件代码PrivateSubForm_Load()窗体的加载事件Setrs=NewADODB.Recordset记录集对象初始化rs.OpenMajor,CurrentProject.Connection,2,2连接当前数据库的Major表Text1.Value

37、=rs(专业编号)记录集的字段内容输出到文本框Text2.Value=rs(专业名称)Text3.Value=rs(学院代号)EndSub2.例9-6相关代码(3)窗体中“上一条记录”按钮(按钮名称Command1)的单击事件代码:PrivateSubCommand1_Click()rs.MovePrevious记录指针向后移动一条记录Ifrs.BOFThen如果记录集记录已经到头即第一条记录之前rs.Movefirst记录指针定位到第一条记录EndIfText1.Value=rs(专业编号)Text2.Value=rs(专业名称)Text3.Value=rs(学院代号)EndSub(4)窗体

38、中“下一条记录”按钮(按钮名称Command2)的单击事件代码:PrivateSubCommand2_Click()rs.MoveNext记录指针向前移动一条记录Ifrs.EOFThen如果记录集记录已经到尾即最后一条记录之后rs.MoveLast记录指针定位到最后一条记录EndIfText1.Value=rs(专业编号)Text2.Value=rs(专业名称)Text3.Value=rs(学院代号)EndSub(5)窗体中“增加”按钮(按钮名称Command3)的单击事件代码:PrivateSubCommand2_Click()DimqrAsIntegerqr=MsgBox(确定增加新记录吗

39、?,1+32,询问)qr为信息框的返回值Ifqr=1Thenrs.AddNew该方法可以在记录集中添加一条记录rs(专业编号)=Text1.Valuers(专业名称)=Text2.Valuers(学院代号)=Text3.Valuers.Update将记录集中新增的记录保存到所连接的数据库表中MsgBox新记录添加成功!,0+64,提示ElseMsgBox操作取消!,0+64,提示EndIfEndSub(6)窗体中“更新”按钮(按钮名称Command4)的单击事件代码:PrivateSubCommand4_Click()DimqrAsIntegerqr=MsgBox(确定更新当前记录吗?,1+3

40、2,询问)Ifqr=1Thenrs(专业编号)=Text1.Valuers(专业名称)=Text2.Valuers(学院代号)=Text3.Valuers.Update将记录集中当前记录的更新内容保存到连接的数据库表中MsgBox记录已更新!,0+64,提示ElseMsgBox操作取消!,0+64,提示EndIfEndSub(7)窗体中“删除”按钮(按钮名称Command5)的单击事件代码:PrivateSubCommand5_Click()DimqrAsIntegerqr=MsgBox(确定删除当前记录吗?,1+32,询问)Ifqr=1Thenrs.Delete该方法可以删除记录集中的当前记

41、录MsgBox当前记录已删除!,0+64,提示Text1.Value=Text2.Value=Text3.Value=ElseMsgBox操作取消!,0+64,提示EndIfEndSub如图课程选修所示窗体所示,根据Stu、Grade和Course表的内容,在窗体的组合框Combo1中选择某个课程名称,则统计出选修了这门课的学生人数显示在文本框Text1中,同时将在这门课程期末考试中不及格(成绩少于60分)的学生姓名显示在列表框List1中。【例9-7】2.例9-7课程选修统计窗体中组合框Combo1的Change事件代码:PrivateSubCombo1_Change()DimrsAsADO

42、DB.Recordset定义记录集对象rsSetrs=NewADODB.Recordset记录集rs初始化Dimstr1AsString,nAsIntegern=0List1.RowSource=列表框清空Text1=str1=Select*Fromstu,course,gradeWherestu.学号=grade.学号 Andcourse.课程编号=grade.课程编号And课程名称=&Combo1.Value&SQL多表查询语句作为数据源rs.Openstr1,CurrentProject.Connection,2,2连接当前数据库DoWhileNotrs.EOF循环的条件,记录没有结束就

43、执行循环体n=n+1统计记录数Ifrs(期末成绩)60ThenList1.AddItemrs(姓名)列表框添加记录集中姓名字段值EndIfrs.MoveNext记录指针向前移动一条记录LoopText1.Value=nrs.Close关闭记录集对象Setrs=Nothing将记录集对象从内存中释放EndSub如图学生选修课程统计窗体所示,根据Grade表的内容,在窗体的组合框Combo1中选择学生的学号,则统计出该学号学生选修的课程门数显示在文本框Text1中,同时计算出该学生所选修的所有课程的期末平均成绩显示在文本框Text2中。【例9-8】2.例9-8学生选修课程统计窗体中组合框Combo

44、1的Change事件代码:PrivateSubCombo1_Change()DimrsAsADODB.Recordset定义记录集对象Setrs=NewADODB.Recordset记录集对象初始化Dimstr1AsStringText1=Text2=str1=SelectCount(*)As选课门数,Avg(期末成绩)As平均分FromgradeWhere学号=&Combo1.Value&用SQL查询统计语句作为数据源rs.Openstr1,CurrentProject.Connection,2,2连接当前数据库Text1.Value=rs(选课门数)记录集中字段的值输出到文本框Text2.

45、Value=rs(平均分)rs.CloseSetrs=NothingEndSub本章首先介绍了Access数据库编程的主要数据访问接口,重点介绍了ADO数据访问方式中的3个核心对象Connection、Recordse和Command,并分析了它们各自常用的属性和方法在具体实例中的不同应用。考虑到在进行Access应用程序设计时,用ADO模型的Recordset对象就可以完成几乎全部的数据库操作,包括记录的查询、添加、更新、删除以及记录中字段数据的统计等,因此特别用了有针对性的实例详细讲解了进行Access数据库编程的一般方法和技巧。9.4 本章小结本章小结1.Access应用程序设计中有哪几

46、种类型数据访问接口?2.什么是ADO?ADO的核心对象有哪些?3.Recordset对象有哪些常用的属性和方法,有什么作用?4.Access中使用ADO的Recordset对象访问数据库的一般步骤有哪些?9.5 思考与思考与练习练习9.6 实验案例实验案例案例名称 按指定条件获取记录集,并逐条浏览记录【实验目的】掌握使用Recordset对象的属性和方法进行Access数据库编程的基本方法【实验内容】创建如图所示“按学号浏览Grade表”窗体。实现功能:根据“Grade”表的内容,在组合框Combo1中选择某一学号,则窗体上对应的文本框中显示该生所选修的第一门课的课程编号和该课程的总评成绩,其

47、中总评成绩=平时成绩*30%+期末成绩*70%;单击窗体上的4个记录指针移动按钮,分别是首记录、末记录、前一条记录和后一条记录,可依次在窗体文本框中显示该生所选修的其余课程的课程编号和该课程的总评成绩。实验案例1“按学号浏览Grade表”窗体案例名称 按指定条件从表中获取记录集【实验目的】掌握使用Recordset对象的属性和方法进行Access数据库编程的基本方法实验内容】创建如图所示“按学期查询课程名称”窗体。实现功能:根据“Course”表的内容,在组合框Combo1中选择某一学期,则窗体上对应的列表框List1中显示该学期所有课程的名称。实验案例实验案例2 “按学期查询课程名称”窗体案

48、例名称 按指定条件从多个表中获取记录集【实验目的】掌握使用Recordset对象的属性和方法进行Access数据库编程的基本方法【实验内容】创建如图所示“按教师工号统计课程信息”窗体。实现功能:根据表“Emp”和“Course”表的内容,在组合框Combo1中选择某一教师工号,则窗体上对应的文本框中显示该教师所授课程门数及总学时。实验案例实验案例3 “按教师工号统计课程信息”窗体案例名称 修改及删除数据表的记录【实验目的】掌握使用Recordset对象的属性和方法进行Access数据库记录的编辑操作【实验内容】创建如图所示“按工号编辑教师信息”窗体。实现功能:根据“Emp”表,在组合框Combo1中选择某一教师工号,则窗体上对应的文本框中显示该教师的工号、姓名、职称、学院代号和办公电话等信息;单击“修改”按钮将窗体上修改过的教师信息保存到Emp表中;单击“删除”按钮将删除Emp表中的相应记录。实验案例实验案例4“按工号编辑教师信息”窗体

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

当前位置:首页 > 教育专区 > 初中资料

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

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