收藏 分享(赏)

数据库编程s.doc

上传人:kpmy5893 文档编号:7150240 上传时间:2019-05-07 格式:DOC 页数:8 大小:349KB
下载 相关 举报
数据库编程s.doc_第1页
第1页 / 共8页
数据库编程s.doc_第2页
第2页 / 共8页
数据库编程s.doc_第3页
第3页 / 共8页
数据库编程s.doc_第4页
第4页 / 共8页
数据库编程s.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、幻灯片 1第第 10 章章 数据库编程数据库编程幻灯片 2本章要点:本章要点: 用用 ADO 访问数据库访问数据库 用用 DAO 访问数据库访问数据库 程序运行错误处理程序运行错误处理幻灯片 310.1 数据库编程概述数据库编程概述学习数据库编程,首先要了解一些基本知识,包括;数据库对象类型、数据库接口、指针移动学习数据库编程,首先要了解一些基本知识,包括;数据库对象类型、数据库接口、指针移动等。等。 10.1.1 数据库对象类型数据库对象类型 用数据库编程方法访问数据库,首先要定义数据库对象变量,系统为不同的数据库对象提供了用数据库编程方法访问数据库,首先要定义数据库对象变量,系统为不同的数

2、据库对象提供了不同的属性和方法,这些属性和方法要由数据库对象变量来调用。不同的属性和方法,这些属性和方法要由数据库对象变量来调用。 幻灯片 4常用数据库对象类型常用数据库对象类型 : 类类 型型 类类 型型 名名Workspace 工作区对象工作区对象Database 数据库对象数据库对象Connection 连接对象连接对象Command 命令对象命令对象Recordset 记录集对象记录集对象Field 字段对象字段对象Error 错误对象错误对象幻灯片 510.1.2 数据库访问接口数据库访问接口 数据库访问接口是指将数据库访问接口是指将 VBA 与后台数据库连接起来的代码片段,即与后台

3、数据库连接起来的代码片段,即 VBA 与与 Access 数据库数据库连接的方法。连接的方法。 设计数据库应用程序通常需要访问数据库,而操纵数据库中的数据就要了解数据库接口技设计数据库应用程序通常需要访问数据库,而操纵数据库中的数据就要了解数据库接口技术。术。 VBA 主要提供主要提供 3 种数据库访问接口:种数据库访问接口:1开放式数据库连接开放式数据库连接 ODBC:(:( Open Database Connectivity)称为开放式数据库连接,是一)称为开放式数据库连接,是一种关系型数据库的接口界面。种关系型数据库的接口界面。 ODBC 把把 SQL 作为访问数据库的标准,通过一组通

4、用代码给数据库作为访问数据库的标准,通过一组通用代码给数据库提供驱动程序。提供驱动程序。 幻灯片 62 DAO( Data Access Objects):): DAO 称为称为 “数据访问对象数据访问对象 ”,是一种面向对象的界面接口,是一种面向对象的界面接口,提供一个访问数据库的对象模型,用其中定义的一系列数据访问对象,实现对数据库的各种操提供一个访问数据库的对象模型,用其中定义的一系列数据访问对象,实现对数据库的各种操作。使用作。使用 DAO 的程序编码非常简单。的程序编码非常简单。3 ADO( ActiveX Data Objects):): ADO 称为称为 “Active 数据对象

5、数据对象 ”,是基于组件的数据库编程,是基于组件的数据库编程接口。接口。 ADO 实际是一种提供访问各种数据类型的连接机制,是一个与编程语言无关的实际是一种提供访问各种数据类型的连接机制,是一个与编程语言无关的COM( Component Object Model)组件系统。)组件系统。 ADO 设计为一种极简单的格式,可以方便地连接任设计为一种极简单的格式,可以方便地连接任何符合何符合 ODBC 标准的数据库。标准的数据库。 幻灯片 710.1.3 VBA 可访问的数据库类型可访问的数据库类型 VBA 可以识别可以识别 3 类数据库:类数据库: 本地数据库:即本地数据库:即 Access 数

6、据库。数据库。 外部数据库:所有索引顺序访问方法(外部数据库:所有索引顺序访问方法( ISAM)数据库,如)数据库,如 VFP。也可以访问文本文件。也可以访问文本文件数据库和数据库和 Microsoft Excel 或或 Lotus1-2-3 电子表格。电子表格。ODBC 数据库:符合数据库:符合 ODBC 标准的标准的 C/S 数据库,如数据库,如 SQL Server、 Oracle。幻灯片 810.1.4 指针定位指针定位 系统为记录集对象提供指针定位方法:系统为记录集对象提供指针定位方法: MoveFirst:将指针移到当前记录集的第一条记录。:将指针移到当前记录集的第一条记录。 Mo

7、veLast:将指针移到当前记录集的最后一条记录。:将指针移到当前记录集的最后一条记录。 MoveNext:将指针从当前位置向后移到下一条记录。:将指针从当前位置向后移到下一条记录。 MovePrevious:将指针从当前位置向回移到上一条记录。:将指针从当前位置向回移到上一条记录。Move:将指针从当前位置移过指定数量的记录。:将指针从当前位置移过指定数量的记录。 幻灯片 910.2 用用 DAO 访问数据库访问数据库 DAO 提供了一种通过程序代码创建和操纵数据库的机制;提供了一种通过程序代码创建和操纵数据库的机制; 借助借助 VBA 代码灵活地控制数据库访问的各种操作。代码灵活地控制数据

8、库访问的各种操作。 如:查询记录、添加记录、删除记录等。如:查询记录、添加记录、删除记录等。 幻灯片 1010.2.1 DAO 模型结构模型结构DAO 模型是设计关系数据库系统结构的对象类的集合,它们提供了管理关系型数据库系统模型是设计关系数据库系统结构的对象类的集合,它们提供了管理关系型数据库系统所需的全部操作的属性和方法,其中包括创建数据库、定义表、字段和索引、建立表之间的关所需的全部操作的属性和方法,其中包括创建数据库、定义表、字段和索引、建立表之间的关系、定位和查询数据库等。系、定位和查询数据库等。 幻灯片 1110.2.2 DAO 对象简介对象简介 DBEngine 对象,处于最顶层

9、,表示数据库引擎,是模型中惟一不被其他对象所包含的对象,对象,处于最顶层,表示数据库引擎,是模型中惟一不被其他对象所包含的对象,它包含并控制它包含并控制 DAO 模型中其他全部对象。模型中其他全部对象。 Workspace 对象,表示工作区,可以使用隐含的对象,表示工作区,可以使用隐含的 workspace 对象。对象。 Database 对象,代表到数据库的连接,表示操作的数据库对象。对象,代表到数据库的连接,表示操作的数据库对象。 RecordSet 对象,代表一个数据记录的集合,该集合的记录来自于一个表、一个查询或一对象,代表一个数据记录的集合,该集合的记录来自于一个表、一个查询或一个个

10、 SQL 语句的运行结果。语句的运行结果。 Field 对象,表示记录集中的字段。对象,表示记录集中的字段。 QueryDef 对象,表示数据库查询信息。对象,表示数据库查询信息。 Error 对象,表示数据提供程序出错时的扩展信息。对象,表示数据提供程序出错时的扩展信息。 幻灯片 1210.2.3 用用 DAO 访问数据库访问数据库 1用用 DAO 访问数据库的流程访问数据库的流程 定义定义 DAO 对象变量,定义时在对象类型的前面加上前缀对象变量,定义时在对象类型的前面加上前缀 “DAO”。通过对象变量调用对象的方法,设置对象的属性,实现数据库的各种访问。通过对象变量调用对象的方法,设置对

11、象的属性,实现数据库的各种访问。 幻灯片 1310.2.3 用用 DAO 访问数据库访问数据库2. 用用 DAO 访问数据库的一般语句和步骤:访问数据库的一般语句和步骤:下面的程序段给出了用下面的程序段给出了用 DAO 访问数据库的一般语句和步骤访问数据库的一般语句和步骤 Dim ws as DAO.Workspace 定义定义 Workspace 对象变量对象变量Dim db as DAO.Database 定义定义 Database 对象变量对象变量Dim rs as DAO.RecordSet 定义定义 RecordSet 对象变量对象变量Dim fd as DAO.Field 定义定义

12、 Field 对象变量对象变量Set ws=DBEngine.Workspace(o) 打开默认工作区打开默认工作区Set db=ws.OpenDatabase(数据库的地址与文件名数据库的地址与文件名 ) 打开数据库打开数据库Set rs=db.OpenRecordSet(表名、查询名或表名、查询名或 SQL 语句语句 ) 打开记录集打开记录集幻灯片 14Do While not rs.EOF 循环遍历整个记录集直至记录集末尾循环遍历整个记录集直至记录集末尾 对字段的各种操作对字段的各种操作rs.MoveNext 记录指针移到下一条记录指针移到下一条Loop 返回到循环开始处返回到循环开始处

13、rs.close 关闭记录集关闭记录集db.close 关闭数据库关闭数据库set rs=nothing 释放记录集对象变量所占内存空间释放记录集对象变量所占内存空间set db=nothing 释放数据库对象变量所占内存空间释放数据库对象变量所占内存空间幻灯片 15 3用用 DAO 打开数据库的快捷方式打开数据库的快捷方式 如果是本地数据库,定义如果是本地数据库,定义 Workspace 对象变量可以省略;对象变量可以省略;将打开工作区和打开数据库两条语句合并为一条语句:将打开工作区和打开数据库两条语句合并为一条语句: Set db = CurrentDb(),这是用,这是用 DAO 打开打

14、开数据库的快捷方式。数据库的快捷方式。 幻灯片 16【 例例 10-1】 设计一个窗体,向设计一个窗体,向 “学生管理学生管理 ”数据库的数据库的 “学生信息学生信息 ”表添加一个记录。表添加一个记录。添加纪录按钮的添加纪录按钮的 click 事件代码如下:事件代码如下:Private sub c1_click()Rem 定义定义 Recoedset 对象变量对象变量Dim ws as Dao.WorkspaceDim rst as Dao.RecordsetDim db as Dao.Database 打开一个工作区打开一个工作区幻灯片 17Set ws=DBEngine.Workspace

15、s( 0)Rem 打开一个数据库打开一个数据库Set db=ws.OpenDatabase(“DACCESS学生管理学生管理 .mdb”)Set rst=db.OPenRecordset(“学生信息学生信息 ”) 创建一条空的记录创建一条空的记录Rst.addnewRem 为新的记录赋值为新的记录赋值Rst.fields(“学号学号 ”)=”20100105”Rst.fields(“姓名姓名 ”)=”阳阳阳阳 ”Rst.fields(“性别性别 ”)=”女女 ”Rst.fields(“年龄年龄 ”)=20Rst.fields(“入学时间入学时间 ”)=#2010/09/12#Rem 刷新表,将

16、记录加入到表中刷新表,将记录加入到表中Rst.UpdateRst .Closedb.Closeend sub运行窗体,单击运行窗体,单击 “添加记录添加记录 ”命令按钮,即可向命令按钮,即可向 “学生信息学生信息 ”表中添加一条记录。表中添加一条记录。幻灯片 18例例 10-2:按职称调整工资,用:按职称调整工资,用 DAO 方法将数据更新到本地数据库的数据表中,代码附加给命令方法将数据更新到本地数据库的数据表中,代码附加给命令按钮的单击事件,调整后工资增加的总数额显示在文本框中。按钮的单击事件,调整后工资增加的总数额显示在文本框中。 Private Sub c1_Click()Dim db

17、As DAO.Database 定义数据库变量定义数据库变量Dim rs As DAO.Recordset 定义记录集变量定义记录集变量Dim gz As DAO.Field 定义字段变量定义字段变量Dim zc As DAO.Field 定义字段变量定义字段变量Dim sum As Single 定义单精度变量定义单精度变量Dim rate As Single 定义单精度变量定义单精度变量幻灯片 19Set db = CurrentDb() 快捷方式打开数据库快捷方式打开数据库Set rs = db.OpenRecordset(“gz“) 打开记录集打开记录集Set gz = rs.Fiel

18、ds(“工资工资 “) 字段与字段变量建立连接字段与字段变量建立连接Set zc = rs.Fields(“职称职称 “) 字段与字段变量建立连接字段与字段变量建立连接sum = 0 求和变量清零求和变量清零Do While Not rs.EOF 循环开始循环开始rs.Edit 使记录集可编辑使记录集可编辑Select Case zc 进入多项选择进入多项选择Case Is = “教授教授 “: rate = 0.15 教授工资上调教授工资上调 15%Case Is = “副教授副教授 “: rate = 0.1 副教授工资上调副教授工资上调 10%Case Else: rate = 0.05

19、 其他人工资上调其他人工资上调 5%End Select幻灯片 20sum = sum + gz * rate 累加调整的钱数累加调整的钱数gz = gz + gz * rate 工资调整工资调整rs.Update 更新到表中更新到表中rs.MoveNext 指针移到下一条记录指针移到下一条记录Loop 开始下一次循环开始下一次循环rs.Closedb.CloseSet rs = NothingSet db = NothingText1 = sum 调整工资的总数额显示在文本框中调整工资的总数额显示在文本框中DoCmd.OpenTable “gz“ 打开更新后的表打开更新后的表End Sub幻

20、灯片 21转到窗体视图转到窗体视图 单击命令按钮。单击命令按钮。 幻灯片 2210.3 用用 ADO 访问数据库访问数据库 10.3.1 ADO 模型结构模型结构ADO 对象模型是一系列对象的集合,对象不分级,除对象模型是一系列对象的集合,对象不分级,除 Field 对象和对象和 Error 对象之外,其他对象之外,其他对象可直接创建。使用时,通过对象变量调用对象的方法、设置对象的属性,实现对数据库的对象可直接创建。使用时,通过对象变量调用对象的方法、设置对象的属性,实现对数据库的访问。访问。幻灯片 2310.3.2 ADO 对象简介对象简介1 Connection 对象,建立到数据源的连接。

21、对象,建立到数据源的连接。2 Command 对象,表示一个命令。对象,表示一个命令。3 RecordSet 对象,表示数据操作返回的记录集合。对象,表示数据操作返回的记录集合。4 Field 对象,表示记录集中的字段。对象,表示记录集中的字段。5 Error 对象,表示数据提供程序出错时的扩展信息。对象,表示数据提供程序出错时的扩展信息。Connection 对象与对象与 RecordSet 对象是两个对象是两个 ADO 中最重要的对象。中最重要的对象。 RecordSet 对象可以分别对象可以分别与与 Connection 对象和对象和 Command 对象联合使用。对象联合使用。 幻灯片

22、 24 10.3.3 用用 ADO 访问数据库的流程访问数据库的流程 首先创建对象变量首先创建对象变量 然后用对象的方法和属性访问数据库。然后用对象的方法和属性访问数据库。为了与为了与 DAO 对象有所区分,对象有所区分, ADO 对象的前面加前缀对象的前面加前缀 “ADODB”。 幻灯片 2510.3.4 ADO 访问数据库的一般语句和步骤访问数据库的一般语句和步骤 1 RecordSet 对与对与 Connection 对象联合使用对象联合使用Dim cn as new ADOBD.Connection 建立连接对象建立连接对象Dim rs as new ADOBD.RecordSet 建

23、立记录集对象建立记录集对象cn.Provider=“Microsoft.Jet.OLEDB.4.0“ 设置数据提供者设置数据提供者cn.Open 连接字符串连接字符串 打开数据库打开数据库rs.Open 查询字符串查询字符串 打开记录集打开记录集do while not rs.EOF 循环开始循环开始 对字段的各种操作对字段的各种操作rs.movenext 记录指针移到下一条记录指针移到下一条幻灯片 26loop 返回到循环开始处返回到循环开始处rs.close 关闭记录集关闭记录集cn.close 关闭连接关闭连接set rs=nothing 释放记录集对象变量所占内存空间释放记录集对象变量

24、所占内存空间set cn=nothing 释放连接对象变量所占内存空间释放连接对象变量所占内存空间说明:说明:对于本地数据库,对于本地数据库, Access 的的 VBA 也给也给 ADO 提供了类似于提供了类似于 DAO 的数据库打开快捷方式,的数据库打开快捷方式,可以将设置数据提供者和打开数据库两条语句用下面一条语句代替:可以将设置数据提供者和打开数据库两条语句用下面一条语句代替:Set cn = CurrentProject.Connection() 幻灯片 272 RecordSet 对与对与 Command 对象联合使用对象联合使用Dim cm as new ADOBD.Comman

25、d 建立命令对象建立命令对象Dim rs as new ADOBD.RecordSet 建立记录集对象建立记录集对象cm.ActiveConnection=连接字符串连接字符串 建立命令对象的活动连接建立命令对象的活动连接cm.CommandType=查询类型查询类型 指定命令对象的查询类型指定命令对象的查询类型cm.CommandText=查询字符串查询字符串 建立命令对象的查询字符串建立命令对象的查询字符串rs. Open cm, 其他参数其他参数 打开记录集打开记录集do while not rs.EOF 循环开始循环开始 对字段的各种操作对字段的各种操作rs.movenext 记录指针

26、移到下一条记录指针移到下一条loop 返回到循环开始处返回到循环开始处rs.close 关闭记录集关闭记录集set rs=nothing 释放记录集对象变量所占内存空间释放记录集对象变量所占内存空间幻灯片 28例例 10-3:用:用 ADO 方法向表中追加记录,代码附加给命令按钮的单击事件。按钮方法向表中追加记录,代码附加给命令按钮的单击事件。按钮 c1 的的click 事件代码如下:事件代码如下: Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim str1 As StringSet cn = CurrentProje

27、ct.Connection 建立本地连接建立本地连接rs.ActiveConnection = cnrs.Open “Select 教师编号教师编号 From 教师教师 Where 教师编号教师编号 = “+t1+“ “幻灯片 29If rs.EOF = False ThenMsgBox “该编号已存在,不能追加!该编号已存在,不能追加! “Elsestr1 = “Insert Into 教师教师 (教师编号教师编号 ,姓名姓名 ,性别性别 )“str1 = str1 + “Values(“+t1+“ , “+t2+“ , “+t3+“ )“cn.Execute str1 执行指定的执行指定的

28、 SQL 语句语句MsgBox “添加成功,请继续!添加成功,请继续! “End Ifrs.Closecn.CloseSet rs = NothingSet cn = Nothing幻灯片 30 说明:说明: 在程序中,用在程序中,用 “+t1+“ 取得文本框取得文本框 t1 中的值,原来用双引号定界的地方改为单引号。两中的值,原来用双引号定界的地方改为单引号。两个相同的引号不能连着写。个相同的引号不能连着写。Execute 是是 Command 对象和对象和 Connection 对象的方法,执行指定的查询,并将执行产生的结果对象的方法,执行指定的查询,并将执行产生的结果存储在存储在 Recordset 对象中。对象中。 幻灯片 31

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报