Access实例教程.

Slides:



Advertisements
Similar presentations
第五章 通用网关接口 CGI 简介 Htm l Html + CGI Html + asp 网页可以处理动态的信息.
Advertisements

主讲:史治平 地址:四川电大计算机教研室 电话:
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
第13章 数据库的基本应用 Visual Basic 程序设计教程.
Access数据库程序设计 总复习.
第7章 数据库基础知识 SQL常用命令使用方法 (1) 数据记录筛选: sql="select * from 数据表
文科计算机小公共课规划教材 Access 程序设计.
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
VBA应用开发与实例 李 辉 微软课程培训讲师. VBA应用开发与实例 李 辉 微软课程培训讲师.
第 11 章 資料庫應用與 ADO物件 製作.
資料庫程式設計 VB資料庫設計簡介 週次:4 建國科技大學 資管系 饒瑞佶.
Hadoop I/O By ShiChaojie.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
課程名稱:資料庫系統 授課老師:李春雄 博士
班級:博、碩子一甲 授課老師:鐘國家 助教:陳國政
第2章 ADO.NET 2.0概述.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第14章 ADO数据库编程 ADO数据库编程是目前最为流行的一种数据库编程方案。因为,使用ADO,可以很容易的与各种类型的数据库连接,而且其数据存取功能也是包罗万象,吸取了各种数据库访问对象的精华部分。本章将介绍ADO数据库编程方面的内容。
课程设计 归纳总结 4 知识目标 1 讲授新课 2 任务操作 3 布置作业 5.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
SQL Injection.
走进编程 程序的顺序结构(二).
辅导课程六.
第六单元 ADO.net数据库操作 劳动和社会保障部全国计算机信息高新技术考试指定教材——ASP.NET.
第12章 VBA模块设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
PCR300 (13.56MHz) Reader RS232/USB.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Pocket Access.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
SQL 范引娣.
第二章、第三章错题分析.
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
分裂对象模型 C++ otcl.
项目二:HTML语言基础.
Web安全基础教程
数据库系统与应用实验 基于SQL Server 2005.
VB与数据库 数据库连接与查询.
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
第八讲 第8章数据库连接与查询(2).
Delphi 7.0开发示例.
HOOK和数据库访问 主讲人:孙鑫
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
VB与Access数据库的连接.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
程序调试与错误处理.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

Access实例教程

ACCESS实例教程 ——数据库编程(第9章)

本章要点: 1,用ADO访问数据库 2,用DAO访问数据库 3,程序运行错误处理

9.1 VBA数据库访问接口 VBA数据库访问接口是指VBA与后台数据库的连接部分,也就是VBA与Access数据库连接的方法。 9.1.1 三种数据库访问接口 1.ODBC(Open Database Connectivity), ODBC称为“开放式数据库连接”,是一种关系数据源的接口界面。ODBC基于SQL(Structured Qurey Language),把SQL作为访问数据库的标准,一个应用程序通过一组通用代码访问不同的数据库管理系统。ODBC可以为不同的数据库提供相应的驱动程序。

2.DAO(Data Access Objects) DAO称为“数据访问对象”,是一种面向对象的界面接口,提供一个访问数据库的对象模型,用其中定义的一系列数据访问对象,实现对数据库的各种操作。使用DAO的程序编码非常简单。 3.ADO(ActiveX Data Objects) ADO称为“Active数据对象”,是基于组件的数据库编程接口。ADO实际是一种提供访问各种数据类型的连接机制,是一个与编程语言无关的COM(Component Object Model)组件系统。ADO设计为一种极简单的格式,可以方便地连接任何符合ODBC标准的数据库。

数据库引擎是一组动态链接库DLL(Dynamic Link Library),在程序运行时被连接到VBA,实现对数据库的数据访问功能。是应用程序与物理数据库之间的桥梁。 VBA通过DAO和数据引擎可以识别3类数据库: 1.本地数据库:即Access数据库。 2.外部数据库:所有索引顺序访问方法(ISAM)数据库,如VFP。也可以访问文本文件数据库和Microsoft Excel或Lotus1-2-3电子表格。 3.ODBC数据库:符合ODBC标准的C/S数据库,如SQL Server、Oracle。

9.2 用DAO访问数据库 9.2.1 DAO模型结构 DAO模型是设计关系数据库系统结构的对象类的集合,它们提供了管理关系型数据库系统所需的全部操作的属性和方法,这其中包括创建数据库、定义表、字段和索引、建立表之间的关系、定位和查询数据库等。

3.2 统配符、运算符与常用函数 9.2.2 DAO对象简介 1.DBEngine对象,处于最顶层,表示数据库引擎,是模型中惟一不被其他对象所包含的对象,它包含并控制DAO模型中其他全部对象。 2.Workspace对象,表示工作区,可以使用隐含的workspace对象。 3.Database对象,代表到数据库的连接,表示操作的数据库对象。 4.RecordSet对象,代表一个数据记录的集合,该集合的记录来自于一个表、一个查询或一个SQL语句的运行结果。 5.Field对象,表示记录集中的字段。 6.QueryDef对象,表示数据库查询信息。 7.Error对象,表示数据提供程序出错时的扩展信息。

9.2.3 用DAO访问数据库 用DAO访问数据库时,先在程序中设置对象变量,然后通过对象变量调用访问对象的方法、设置访问对象的属性,从而实现对数据库的各种访问。定义DAO对象要在对象前面加上前缀“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语句) ' 打开记录集

Do While not rs.EOF ' 循环遍历整个记录集直至记录集末尾 …… ' 对字段的各种操作 rs.MoveNext ' 记录指针移到下一条 Loop ' 返回到循环开始处 rs.close ' 关闭记录集 db.close ' 关闭数据库 set rs=nothing ' 释放记录集对象变量所占内存空间 set db=nothing ' 释放数据库对象变量所占内存空间 说明: 如果是本地数据库,可以省略定义Workspace对象变量,打开工作区和打开数据库两条语句用下面一条语句代替: Set db = CurrentDb() 该语句是Access的VBA给DAO提供的数据库打开快捷方式。

例:用DAO访问数据库 (1)在窗体建2个文本框→名称分别为t1和t2→附加标签的标题分别为“姓名”和“工资”。 (2)在窗体页眉添加标签→标题为“工资增加10%”。 (3)在窗体页脚建命令按钮→名称为c1→标题为“显示第一条记录”。

(4)给命令按钮的单击事件写代码如下: Dim db as DAO.Database '定义Database对象变量 Dim rs as DAO.Recordset '定义Recordset对象变量 Dim fd as DAO.Field '定义Field对象变量 Set db = CurrentDb() '建立与当前数据库的连接 Set rs = db.OpenRecordset("gz") '建立与gz表的连接 Set fd = rs.Fields("工资") '设置对“工资”字段的引用 Do While Not rs.EOF '如果指针没有到最后就执行循环体 rs.Edit '使rs处于可编辑状态 fd = fd + fd * 0.1 '给指定字段值增加10% rs.Update '更新表

rs.MoveNext '向下移动指针 Loop '返回到循环开始处 rs.MoveFirst '指针移到第一条记录 t1 = rs.Fields("姓名") '将姓名字段的值显示在t1中 t2 = rs.Fields("工资") '将工资字段的值显示在t2中 rs.Close db.Close Set rs = Nothing Set db = Nothing

(5)转到窗体视图→单击命令按钮,可以看到t2文本框中显示第一条记录更新后的工资值。

9.3 用ADO访问数据库 9.3.1 ADO模型结构 ADO对象模型是一系列对象的集合,对象不分级,除Field对象和Error对象之外,其他对象可直接创建。使用时,通过对象变量调用对象的方法、设置对象的属性,实现对数据库的访问。

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

9.3.3 用ADO访问数据库 首先创建对象变量,然后用对象的方法和属性访问数据库。为了与DAO中同名对象有所区分,ADO对象的前面要加上前缀“ADODB”。用ADO访问数据库的一般语句和步骤: 1.RecordSet对与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 '记录指针移到下一条

loop '返回到循环开始处 rs.close '关闭记录集 cn.close '关闭连接 set rs=nothing '释放记录集对象变量所占内存空间 set cn=nothing '释放连接对象变量所占内存空间 说明: 对于本地数据库,Access的VBA也给ADO提供了类似于DAO的数据库打开快捷方式,可以将设置数据提供者和打开数据库两条语句用下面一条语句代替: Set cn = CurrentProject.Connection()

2.RecordSet对与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 '释放记录集对象变量所占内存空间

例:用ADO访问数据库 (1)在窗体建3个文本框→名称分别为t1、t2和t3。 (2)在窗体页眉添加标签→标题为“工员增加”。 (3)在窗体页脚建命令按钮→名称为c1→标题为“追加到表中”。

(4)命令按钮c1的单击事件代码: Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim str1 As String Set cn = CurrentProject.Connection ' 建立本地连接 rs.ActiveConnection = cn rs.Open "Select 教师编号 From 教师 Where 教师编号=' "+t1+" ' " If rs.EOF = False Then MsgBox "该编号已存在,不能追加!" Else str1 = "Insert Into 教师 (教师编号,姓名,性别)“ str1 = str1 + "Values('"+t1+" ',' "+t2+" ',' "+t3+" ')" cn.Execute str1 ' 执行指定的SQL语句

MsgBox "添加成功,请继续!" End If rs.Close cn.Close Set rs = Nothing Set cn = Nothing 说明: · 在程序中,用 "+t1+" 取得文本框t1中的值,原来用双引号定界的地方改为单引号。两个相同的引号不能连着写。 · Execute 是Command 对象和Connection对象的方法,执行指定的查询,并将执行产生的结果存储在 Recordset 对象中。

(5)转到窗体视图,如果输入的编号与表中的编号有重复,单击命令按钮后显示消息框,输入的信息不能追加到表中。

(6)如果输入的编号与表中的编号不重复,单击命令按钮后显示消息框,输入的信息被追加表中。 图1-15 层次模型

9.4 VBA程序错误处理 VBA提供了On Error语句,用来控制当有错误发生时程序的处理,启动一个错误处理程序并指定该子程序在一个过程中的位置。 一个错误处理程序不是 Sub 过程或 Function 过程,它是一段用行号标记的代码。 9.4.1 On Error语句的语法 On Error语句的语法通常有3种样式:

1.On Error GoTo 行号 启动错误处理程序,如果发生一个运行时错误,控件会转到行号所指位置,执行其中的代码。指定的行号必须在一个过程中,这个过程与 On Error 语句所在的过程相同。 例如: On Error GoTo aa '如果发生错误转到aa处 …… aa: '行号aa 错误处理程序代码 '处理错误 功能:当程序发生错误,跳转到aa位置执行。

2.On Error Resume Next 当一个运行错误发生时,不考虑错误,继续执行下一条语句。访问对象时要使用这种形式而不使用 On Error GoTo语句。 3.On Error GoTo 0 关闭错误处理,禁止当前过程中任何已启动的错误处理程序。

9.4.2 了解错误信息 1.Err对象 Err是一个含有运行时错误信息的对象,Err对象的number属性返回错误代码。用Err.Source可以帮助确定是哪个对象产生错误,用 Err.Number 可以帮助确定是哪个对象将错误代码放在其中。 Err 是全局范围的固有对象,在代码中不必建立这些对象的实例。 2.Rrror函数 格式:Rrror(错误号) Rrror函数的自变量是一个有效的错误号,函数返回与已知错误号对应的错误信息。如果不是有效的错误号,会导致错误发生。错误号是可选项,如果省略,将返回与最近一次运行错误对应的消息。如果没有发生运行错误,或者错误号是 0,则 Error函数 返回一个长度为零的字符串 ("")。

例:错误处理练习 (1)建文本框→名称为t1→建立命令按钮→名称为c1。 (2)命令按钮c1的单击事件代码: Private Sub c1_Click() On Error GoTo aa '如发生错误转到行号aa Dim s1 As String s1 = t1 DoCmd.OpenQuery s1, acViewNormal, acEdit '打开查询 bb: '行号bb Exit Sub '退出过程 aa: '行号aa MsgBox "没有此查询,请重新输入!" Resume bb '转到行号bb End Sub

(3)转到窗体视图,在文本框输入“男讲师”,单击命令按钮,显示名为“男讲师”的查询。

(4)在文本框输入“女讲师”,单击命令按钮,调用错误处理机制,用消息框提示错误。