数据库编程s.doc_第1页
数据库编程s.doc_第2页
数据库编程s.doc_第3页
数据库编程s.doc_第4页
数据库编程s.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

幻灯片1第10章 数据库编程幻灯片2本章要点:l 用ADO访问数据库l 用DAO访问数据库l 程序运行错误处理幻灯片310.1 数据库编程概述学习数据库编程,首先要了解一些基本知识,包括;数据库对象类型、数据库接口、指针移动等。 10.1.1 数据库对象类型 用数据库编程方法访问数据库,首先要定义数据库对象变量,系统为不同的数据库对象提供了不同的属性和方法,这些属性和方法要由数据库对象变量来调用。 幻灯片4常用数据库对象类型: 类 型类 型 名Workspace工作区对象Database数据库对象Connection连接对象Command命令对象Recordset记录集对象Field字段对象Error错误对象幻灯片510.1.2 数据库访问接口 l 数据库访问接口是指将VBA与后台数据库连接起来的代码片段,即VBA与Access数据库连接的方法。l 设计数据库应用程序通常需要访问数据库,而操纵数据库中的数据就要了解数据库接口技术。 l VBA主要提供3种数据库访问接口:1开放式数据库连接ODBC:(Open Database Connectivity)称为开放式数据库连接,是一种关系型数据库的接口界面。ODBC把SQL作为访问数据库的标准,通过一组通用代码给数据库提供驱动程序。 幻灯片62DAO(Data Access Objects): DAO称为“数据访问对象”,是一种面向对象的界面接口,提供一个访问数据库的对象模型,用其中定义的一系列数据访问对象,实现对数据库的各种操作。使用DAO的程序编码非常简单。3ADO(ActiveX Data Objects):ADO称为“Active数据对象”,是基于组件的数据库编程接口。ADO实际是一种提供访问各种数据类型的连接机制,是一个与编程语言无关的COM(Component Object Model)组件系统。ADO设计为一种极简单的格式,可以方便地连接任何符合ODBC标准的数据库。 幻灯片710.1.3 VBA可访问的数据库类型 l VBA可以识别3类数据库:l 本地数据库:即Access数据库。l 外部数据库:所有索引顺序访问方法(ISAM)数据库,如VFP。也可以访问文本文件数据库和Microsoft Excel或Lotus1-2-3电子表格。ODBC数据库:符合ODBC标准的C/S数据库,如SQL Server、Oracle。幻灯片810.1.4 指针定位 l 系统为记录集对象提供指针定位方法:l MoveFirst:将指针移到当前记录集的第一条记录。l MoveLast:将指针移到当前记录集的最后一条记录。l MoveNext:将指针从当前位置向后移到下一条记录。l MovePrevious:将指针从当前位置向回移到上一条记录。Move:将指针从当前位置移过指定数量的记录。 幻灯片910.2 用DAO访问数据库l DAO提供了一种通过程序代码创建和操纵数据库的机制;l 借助VBA代码灵活地控制数据库访问的各种操作。l 如:查询记录、添加记录、删除记录等。 幻灯片1010.2.1 DAO模型结构 DAO模型是设计关系数据库系统结构的对象类的集合,它们提供了管理关系型数据库系统所需的全部操作的属性和方法,其中包括创建数据库、定义表、字段和索引、建立表之间的关系、定位和查询数据库等。 幻灯片1110.2.2 DAO对象简介l DBEngine对象,处于最顶层,表示数据库引擎,是模型中惟一不被其他对象所包含的对象,它包含并控制DAO模型中其他全部对象。l Workspace对象,表示工作区,可以使用隐含的workspace对象。l Database对象,代表到数据库的连接,表示操作的数据库对象。l RecordSet对象,代表一个数据记录的集合,该集合的记录来自于一个表、一个查询或一个SQL语句的运行结果。l Field对象,表示记录集中的字段。l QueryDef对象,表示数据库查询信息。l Error对象,表示数据提供程序出错时的扩展信息。 幻灯片1210.2.3 用DAO访问数据库l 1用DAO访问数据库的流程 l 定义DAO对象变量,定义时在对象类型的前面加上前缀“DAO”。通过对象变量调用对象的方法,设置对象的属性,实现数据库的各种访问。 幻灯片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 定义Field对象变量Set ws=DBEngine.Workspace(o) 打开默认工作区Set db=ws.OpenDatabase(数据库的地址与文件名) 打开数据库Set rs=db.OpenRecordSet(表名、查询名或SQL语句) 打开记录集幻灯片14Do While not rs.EOF 循环遍历整个记录集直至记录集末尾 对字段的各种操作rs.MoveNext 记录指针移到下一条Loop 返回到循环开始处rs.close 关闭记录集db.close 关闭数据库set rs=nothing 释放记录集对象变量所占内存空间set db=nothing 释放数据库对象变量所占内存空间幻灯片15l 3用DAO打开数据库的快捷方式 l 如果是本地数据库,定义Workspace对象变量可以省略;将打开工作区和打开数据库两条语句合并为一条语句:Set db = CurrentDb(),这是用DAO打开数据库的快捷方式。 幻灯片16【例10-1】 设计一个窗体,向“学生管理”数据库的“学生信息”表添加一个记录。添加纪录按钮的click事件代码如下:Private sub c1_click() Rem 定义Recoedset对象变量 Dim ws as Dao.Workspace Dim rst as Dao.Recordset Dim db as Dao.Database 打开一个工作区幻灯片17 Set ws=DBEngine.Workspaces(0) Rem 打开一个数据库 Set db=ws.OpenDatabase(“DACCESS学生管理.mdb”) Set rst=db.OPenRecordset(“学生信息”) 创建一条空的记录 Rst.addnew Rem 为新的记录赋值 Rst.fields(“学号”)=”20100105” Rst.fields(“姓名”)=”阳阳” Rst.fields(“性别”)=”女” Rst.fields(“年龄”)=20 Rst.fields(“入学时间”)=#2010/09/12# Rem 刷新表,将记录加入到表中 Rst.Update Rst .Close db.Closeend sub运行窗体,单击“添加记录”命令按钮,即可向“学生信息”表中添加一条记录。幻灯片18例10-2:按职称调整工资,用DAO方法将数据更新到本地数据库的数据表中,代码附加给命令按钮的单击事件,调整后工资增加的总数额显示在文本框中。 Private Sub c1_Click() Dim db 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 定义单精度变量幻灯片19 Set db = CurrentDb() 快捷方式打开数据库 Set rs = db.OpenRecordset(gz) 打开记录集 Set gz = rs.Fields(工资) 字段与字段变量建立连接 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 其他人工资上调5% End Select幻灯片20 sum = sum + gz * rate 累加调整的钱数 gz = gz + gz * rate 工资调整 rs.Update 更新到表中 rs.MoveNext 指针移到下一条记录 Loop 开始下一次循环 rs.Close db.Close Set rs = Nothing Set db = Nothing Text1 = sum 调整工资的总数额显示在文本框中 DoCmd.OpenTable gz 打开更新后的表 End Sub幻灯片21转到窗体视图单击命令按钮。 幻灯片2210.3 用ADO访问数据库 10.3.1 ADO模型结构 ADO对象模型是一系列对象的集合,对象不分级,除Field对象和Error对象之外,其他对象可直接创建。使用时,通过对象变量调用对象的方法、设置对象的属性,实现对数据库的访问。幻灯片2310.3.2 ADO对象简介1Connection对象,建立到数据源的连接。2Command对象,表示一个命令。3RecordSet对象,表示数据操作返回的记录集合。4Field对象,表示记录集中的字段。5Error对象,表示数据提供程序出错时的扩展信息。 Connection对象与RecordSet对象是两个ADO中最重要的对象。RecordSet对象可以分别与Connection对象和Command对象联合使用。 幻灯片24l 10.3.3 用ADO访问数据库的流程l 首先创建对象变量l 然后用对象的方法和属性访问数据库。为了与DAO对象有所区分,ADO对象的前面加前缀“ADODB”。 幻灯片2510.3.4 ADO访问数据库的一般语句和步骤 1RecordSet对与Connection对象联合使用Dim cn as new ADOBD.Connection 建立连接对象Dim rs as new ADOBD.RecordSet 建立记录集对象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 释放记录集对象变量所占内存空间set cn=nothing 释放连接对象变量所占内存空间说明: 对于本地数据库,Access的VBA也给ADO提供了类似于DAO的数据库打开快捷方式,可以将设置数据提供者和打开数据库两条语句用下面一条语句代替: Set cn = CurrentProject.Connection() 幻灯片272RecordSet对与Command对象联合使用Dim cm as new ADOBD.Command 建立命令对象Dim rs as new ADOBD.RecordSet 建立记录集对象cm.ActiveConnection=连接字符串 建立命令对象的活动连接cm.CommandType=查询类型 指定命令对象的查询类型cm.CommandText=查询字符串 建立命令对象的查询字符串rs. Open cm, 其他参数 打开记录集do while not rs.EOF 循环开始 对字段的各种操作rs.movenext 记录指针移到下一条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 = CurrentProject.Connection 建立本地连接rs.ActiveConnection = cnrs.Open Select 教师编号 From 教师 Where 教师编号= +t1+ 幻灯片29If rs.EOF = False Then MsgBox 该编号已存在,不能追加!Else str1 = Insert Into 教师 (教师编号,姓名,性别)“ str

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论