VB课件
来源:百度文库 编辑:神马文学网 时间:2024/04/29 14:02:22
',1)">
',2)">
第7章 数据库应用程序设计方法
本章以成绩查询系统为例,较系统地介绍了数据库应用程序的开发模式和基本方法。通过本章学习,你应该能够达到如下学习目标:
1.掌握VB数据库应用程序的基本框架,以及SQL操纵数据的方法,能够编写Insert、Update、Delete和Select语句,并将这些语句嵌入到VB程序中。
2.理解使用VB数据库引擎操纵数据库的方法,以及VB数据对象及数据库访问机制,能够运用ADO对象进行程序设计
3.了解使用Excel输出报表的方法。
4.了解“成绩查询”程序的设计过程,能够读懂并完善这类程序的部分语句。
一、相关知识
数据库、数据库管理系统、数据库系统的概念在数据库领域中是比较常见的。所谓数据库是计算机内有组织、可共享的数据的集合。而数据库管理系统是用户与操作系统之间的数据管理软件,数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制。在数据库管理系统之上有应用系统,例如用VB开发数据库应用程序,以供终端用户使用。因此,比较严格的说法是数据库系统由数据库、数据库管理系统、数据库应用系统、数据库管理员和用户构成。但有时数据库管理系统和数据库系统常常混用。
1.关系数据库概念
数据库根据数据组织方式的不同而有所不同,即数据模型不同,较常见的数据模型有层次模型、网状模型、关系模型。根据数据模型的不同,所建立的数据库结构也不同。目前使用最普遍的是关系数据库。所谓关系数据库是把数据组成一张或多张二维表格,即关系表,多张彼此关联的表格群组形成数据库,即关系数据库。
在关系数据库中,数据以数据二维表的形式存在,如表7.1、7.2所示。数据二维表(简称数据表)由行和列组成,数据表中每一行称为一个记录,每一列称为一个字段,如表7.1中有4条记录,每条记录包含5个字段:学号(Sno),姓名(Sname),性别(Sex),年龄(Sage),所在系(Sdept)。关系模型要求每个字段数据类型相同,并且是不可再分的,如果某个字段能唯一地标识这条记录,则这个字段就被称为主关键字或主码(Key),如上表的学号(Sno)。
表7.1 学生基本情况表(Student)
Sno
Sname
Sex
Sage
Sdept
0001
王磊
男
19
计算机科学系
0002
刘进
女
20
中文系
0003
李波
男
21
土建系
0004
张建国
女
20
计算机科学系
表7.2 选课表(sc)
Sno
Cno
grade
0001
001
82
0002
002
76
0003
003
80
0004
002
95
在关系数据库中,我们用到了数据库、数据表、字段、记录等概念,小结如下:
Ø 关系:从用户观点看,一个关系对应通常的一张二维表。
Ø 记录:二维表中的每一行数据为一个记录。如表7.1有4条记录
Ø 字段:每一列称为一个字段,每个字段都有一个名称。如学生姓名是一个字段,它的名称是Sname。
Ø 数据表:记录的集合构成一个二维表格,称为数据表。如表7.1。
Ø 数据库:多个相关的数据表的集合,构成数据库,每个数据库都已文件的形式存储在磁盘上
Ø 主码:如果某个字段能够唯一地标识一条记录,则称此记录为主码,如表7.1中的学号(Sno)。
Ø 索引:索引是对某字段的内容按大小进行排序,然后对该字段索引进行快速检索便可找到相应记录。
2.数据库管理系统概念
数据库管理系统(DBMS)是用户与操作系统之间的数据管理软件系统,对数据库的各种管理与操作都是由数据库管理系统进行的,用户在对数据库进行操作时,只需向DBMS提出“需要做什么”的请求,不必了解“如何做”。DBMS根据用户的请求,完成对数据库的实际操作。主要包括:创建数据库中的各种对象,如创建新表、索引等;对数据表中的数据进行增加、修改和删除等;数据库的事务管理、并发控制、故障恢复、完整性控制及安全控制等。
数据库管理系统与数据库是密不可分的,每一种数据库都由某一特定的数据库管理系统进行管理,所以数据库管理系统也常常被称为数据库系统。常用的数据库系统有Access、SQL Server 、Oracle等。
3.SQL语言
SQL是结构化查询语言(Structure Query Language)的缩写。它是关系数据库的标准语言,简捷易学,功能强大。它可以实现数据查询、数据更新等多种功能。
(1)数据查询
SQL提供SELECT语句进行数据库的查询,其一般格式为:
SELECT字段列表FROM表名WHERE条件GROUP BY 分组字段
HAVING分组条件ORDER BY字段
说明如下:
Ø 字段列表:字段可以是一个字段,也可以是多个字段,若是多个字段,字段之间用逗号分隔,如果要选择某个表中的所有字段,可用“*”代替。
Ø FROM子句:用于指定一个或多个表,如果所选的字段来自不同的表,则字段名前应加表名前缀。
Ø WHERE子句:用于构造查询条件。
Ø GROUP BY与HAVING子句:共同用于对结果集进行分组过滤处理。它能把在指定字段列表中有相同值的记录合并成一条记录。
例1.查询student表(表7.1)中的所有学生的学号与姓名。
分析:查询所有学生的学号与姓名,无查询条件。
SQL语句如下:
SELECT Sno,Sname FROM student
查询结果如表7.3所示。
表7.3 查询结果
Sno
Sname
0001
王磊
0002
刘进
0003
李波
0004
张建国
此操作在关系数据库中称投影操作,投影操作返回二维表格的若干列。
例2.查询student表中所有计算机科学系的学生。
分析:应用WHERE子句构造查询条件,使其满足能够查询Student表中所有计算机科学系的学生。
SQL语句如下:
SELECT * FROM WHERE student.Sdept= '计算机科学系'
查询结果如表7.4所示。
表7.4 查询结果
Sno
Sname
Sex
Sage
Sdept
0001
王磊
男
19
计算机科学系
0004
张建国
女
20
计算机科学系
此操作在关系数据库中称选择操作,选择操作返回二维表格的若干行。
例3.查询选修了002号课程的学生姓名和成绩,并按由高到低排列。
分析:学生姓名在表student中,成绩在表sc中,显然所需信息需要从两个表中获得。按分数由高到低排列需要用关键字DESC,反之,用ASC(默认) 。
SQL语句如下:
SELECT student.Sname,sc.grade
FROM student,sc
WHERE student.Sno=sc.Sno and sc.Cno= "002"
ORDER BY grade DESC
查询结果如表7.5所示。
表7.5查询结果
Sname
grade
张建国
95
刘进
76
此操作在关系数据库中称连接操作,连接操作是通过某个关键字将两个表连接起来。本例中是通过Sno关键字将表student和sc连接起来。在SELECT语句中,特别要指明某个字段来源于哪个表,如student.Sname表示Sname这个字段来源于student表。
(2)数据更新
SQL中数据更新包括插入数据、修改数据和删除数据三种语句。
①插入数据
语句格式为:
INSERT INTO 表名(属性列)VALUES(值列)
例4.在选课表中插入一条选课信息:学号为0005的学生选了003号课程,成绩为85。
SQL语句如下:
INSERT INTO sc(Sno,Cno,grade)VALUES('0005', ' 003', '85')
②修改数据
语句格式为:
UPDATE 表名SET 列名=值,××× WHERE 条件
注意:如果条件为空,则修改所有的字段。
例5.将学生表中学号为0002的学生名字改为赵月,所属系改为“电子信息工程系”。
SQL语句如下:
UPDATE student SET Sname='赵月', Sdept= '电子信息工程系'WHERE Sno= '0002'
③删除数据
语句格式为:
DELETE FROM 表名 WHERE 条件
注意:如果条件为空,则删除所有的记录。
例6.删除学号为0002的同学选002号课的记录。
SQL语句如下:
DELETE FROM sc WHERE sno= '0002'and cno='002'
例7.删除计算机科学系同学所有的选课记录。
在选课表sc中,没有计算机科学系的信息,必须在student表中查询。这时需要用到谓词IN所带的子查询。
SQL语句如下:
DELETE FROM sc WHERE sno IN
(SELECT Sno FROM student WHERE Sdept = '计算机科学系'
二、本章重要知识点
1.三种数据库类型
VB 将数据库分为三种类型:本地数据库、外部数据库、远程数据库
本地数据库:主要指Microsoft Access数据库。
外部数据库:是指采用ISAM的数据库,如dBase,Foxpro,Paradox,Excel等。
远程数据库:指SQL Server Oracle DB2等大型数据库。
2.VB数据库访问机制
VB 通过数据引擎访问数据库
数据引擎:数据库应用程序属于一种非常典型的前后台软件结构,前台是我们的VB程序,后台则是数据库管理系统,如SQI Server。而前后台通信的主要机制称为数据库引擎。
常用的数据库引擎有三种:Jet引擎、ODBC、OLE DB。
3.数据对象
VB采用面向对象技术,将三种数据库引擎封装成三种访问数据库的对象,即DAO、RDO、ADO。
DAO对象:可以使用Jet引擎和ODBC两种方式访问数据库。
RDO对象:一般采用ODBC访问数据库。
ADO对象:主要采用OLE DB访问数据库,也支持ODBC访问,但需要经过OLE DB转接。
4.ADO对象模型
ADO 是一种基本OLE DB 的 模型。
ADO对象模型共包含7个对象。它们是Connection、Command、Recordset、Field、Parameter、Property和 Error。其中最常用的是前4个对象。
5. 数据库应用程序的大致框架
将SQL语句嵌入到VB语言中,采用ADO数据对象模型开发数据库应用程序。
(1) 连接后台数据库
在VB应用程序中主要用Connection对象连接后台数据库,基本方法是:
l 首先声明并创建对象
Dim ADOcn As Connection '声明对象
Set ADOcn = New Connection '创建新对象
或上述两条语句直接写成
Dim ADOcn As New Connection
l 建立数据库连接
一般通过下列语句完成与数据库的连接“
ADOcn.Open 连接字符串
语句中的连接字符串可以通过自动生成“连接字符串 “的方法来实现,见教材184-185页。
(2)对数据库中的数据表进行更新操作
更新操作包括增加、删除和修改,这些语句的特点是没有返回的结果集,它们仅仅向数据库发出一条更新命令。可以利用Connection对象的execute方法来完成。语法如下:
ADOcn.Execute SQL语句字符串
为了提高程序的可读性和易维护性,通常采用如下方法完成上述操作:
'声明一个字符串变量
Dim strSQL As String
'拼写Insert、Delete、Updata结构化查询语句
例如:
strSQL = "Delete From 学生成绩表"
strSQL = strSQL + "Where 学号=" + "'+Combol.Text+'"
'执行SQL语句
ADOcn.Execute strSQL
(3) 对数据表进行查询(Select)操作
记录集Recordset对象是数据表的查询结果,通过使用Recordset进行Select语句的操作。基本使用方法如下:
'声明一个新的Recordset对象
Dim ADOrs As New Recordset
与ADO链接对象建立关联
ADOrs.ActiveConnection = ADOcn
'执行Select操作
ADOrs.Open "Select*From 学生成绩表"
'关闭记录集对象
ADOrs.Close
(4)显示记录集中的数据
①在TextBox中显示
Text1.Text = ADOrs.Fields("学号")
②读取到变量中
Dim strNo As String
strNo = ADOrs.Field("学号")
Text1.Text = strNo
③在Grid控件中以二维表的形式显示
采用MSFlexGrid控件进行显示,一般步骤是:
l 清空数据
l 设置标题栏
l 打开记录集
l 使用循环将记录集中的数据添加到Grid中去。
例8.假设在d盘根目录中存在一个名为“student.mdb”的Access数据库,其中包含一张名为“学生基本情况”的数据表,表中存放了学生的基本信息,如图1所示。
现在要求利用VB编写一个数据库记录增加程序,程序的运行界面如图2所示,基本逻辑是:分别在Text1、Text2、Text3中输入学号、姓名、籍贯信息,然后点击“保存”按钮(Command1)将该记录添加到数据库中。如果数据库中已经存在相同的学号信息,则程序应提示用户“记录已存在,请重新输入”,并将焦点置于Text1上,等待用户修改或重新输入。当点击退出按钮(Command2)时关闭本窗体。
图1用Access创建的学生基本情况数据表
图2 查询程序运行界面
Private ADOcn As New Connection
Private Sub Form_Load()
[1] "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\student.mdb"
End Sub
Private Sub Command1_Click()
Dim strSQL As [2]
Dim ADOrs As New Recordset
ADOrs.ActiveConnection = [3]
strSQL = "Select * from 学生基本情况一览表 Where 学号=" + " ' " + [4]+ " ' "
ADOrs.Open [5]
If Not ADOrs.EOF Then
MsgBox "学号已经存在,请重新输入!", vbOKOnly, "信息提示"
Text1.SetFocus
Else
strSQL = "Insert Into 学生基本情况一览表(学号,姓名,籍贯) "
strSQL = strSQL + " Values ( '" + Text1 + " ','" + Text2 + "','" + Text3 + " ')"
[6] .Execute strSQL
MsgBox "添加成功!", vbOKOnly, "信息提示"
[7]
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
答案:
[1] ADOcn.Open
[2] string
[3] ADOcn
[4] Text1
[5] strSQL
[6] ADOcn
[7] End If
6.数据控件、可视化数据管理器、报表设计的基本概念
见教材。
',2)">
第7章 数据库应用程序设计方法
本章以成绩查询系统为例,较系统地介绍了数据库应用程序的开发模式和基本方法。通过本章学习,你应该能够达到如下学习目标:
1.掌握VB数据库应用程序的基本框架,以及SQL操纵数据的方法,能够编写Insert、Update、Delete和Select语句,并将这些语句嵌入到VB程序中。
2.理解使用VB数据库引擎操纵数据库的方法,以及VB数据对象及数据库访问机制,能够运用ADO对象进行程序设计
3.了解使用Excel输出报表的方法。
4.了解“成绩查询”程序的设计过程,能够读懂并完善这类程序的部分语句。
一、相关知识
数据库、数据库管理系统、数据库系统的概念在数据库领域中是比较常见的。所谓数据库是计算机内有组织、可共享的数据的集合。而数据库管理系统是用户与操作系统之间的数据管理软件,数据库在建立、运行和维护时由数据库管理系统统一管理、统一控制。在数据库管理系统之上有应用系统,例如用VB开发数据库应用程序,以供终端用户使用。因此,比较严格的说法是数据库系统由数据库、数据库管理系统、数据库应用系统、数据库管理员和用户构成。但有时数据库管理系统和数据库系统常常混用。
1.关系数据库概念
数据库根据数据组织方式的不同而有所不同,即数据模型不同,较常见的数据模型有层次模型、网状模型、关系模型。根据数据模型的不同,所建立的数据库结构也不同。目前使用最普遍的是关系数据库。所谓关系数据库是把数据组成一张或多张二维表格,即关系表,多张彼此关联的表格群组形成数据库,即关系数据库。
在关系数据库中,数据以数据二维表的形式存在,如表7.1、7.2所示。数据二维表(简称数据表)由行和列组成,数据表中每一行称为一个记录,每一列称为一个字段,如表7.1中有4条记录,每条记录包含5个字段:学号(Sno),姓名(Sname),性别(Sex),年龄(Sage),所在系(Sdept)。关系模型要求每个字段数据类型相同,并且是不可再分的,如果某个字段能唯一地标识这条记录,则这个字段就被称为主关键字或主码(Key),如上表的学号(Sno)。
表7.1 学生基本情况表(Student)
Sno
Sname
Sex
Sage
Sdept
0001
王磊
男
19
计算机科学系
0002
刘进
女
20
中文系
0003
李波
男
21
土建系
0004
张建国
女
20
计算机科学系
表7.2 选课表(sc)
Sno
Cno
grade
0001
001
82
0002
002
76
0003
003
80
0004
002
95
在关系数据库中,我们用到了数据库、数据表、字段、记录等概念,小结如下:
Ø 关系:从用户观点看,一个关系对应通常的一张二维表。
Ø 记录:二维表中的每一行数据为一个记录。如表7.1有4条记录
Ø 字段:每一列称为一个字段,每个字段都有一个名称。如学生姓名是一个字段,它的名称是Sname。
Ø 数据表:记录的集合构成一个二维表格,称为数据表。如表7.1。
Ø 数据库:多个相关的数据表的集合,构成数据库,每个数据库都已文件的形式存储在磁盘上
Ø 主码:如果某个字段能够唯一地标识一条记录,则称此记录为主码,如表7.1中的学号(Sno)。
Ø 索引:索引是对某字段的内容按大小进行排序,然后对该字段索引进行快速检索便可找到相应记录。
2.数据库管理系统概念
数据库管理系统(DBMS)是用户与操作系统之间的数据管理软件系统,对数据库的各种管理与操作都是由数据库管理系统进行的,用户在对数据库进行操作时,只需向DBMS提出“需要做什么”的请求,不必了解“如何做”。DBMS根据用户的请求,完成对数据库的实际操作。主要包括:创建数据库中的各种对象,如创建新表、索引等;对数据表中的数据进行增加、修改和删除等;数据库的事务管理、并发控制、故障恢复、完整性控制及安全控制等。
数据库管理系统与数据库是密不可分的,每一种数据库都由某一特定的数据库管理系统进行管理,所以数据库管理系统也常常被称为数据库系统。常用的数据库系统有Access、SQL Server 、Oracle等。
3.SQL语言
SQL是结构化查询语言(Structure Query Language)的缩写。它是关系数据库的标准语言,简捷易学,功能强大。它可以实现数据查询、数据更新等多种功能。
(1)数据查询
SQL提供SELECT语句进行数据库的查询,其一般格式为:
SELECT字段列表FROM表名WHERE条件GROUP BY 分组字段
HAVING分组条件ORDER BY字段
说明如下:
Ø 字段列表:字段可以是一个字段,也可以是多个字段,若是多个字段,字段之间用逗号分隔,如果要选择某个表中的所有字段,可用“*”代替。
Ø FROM子句:用于指定一个或多个表,如果所选的字段来自不同的表,则字段名前应加表名前缀。
Ø WHERE子句:用于构造查询条件。
Ø GROUP BY与HAVING子句:共同用于对结果集进行分组过滤处理。它能把在指定字段列表中有相同值的记录合并成一条记录。
例1.查询student表(表7.1)中的所有学生的学号与姓名。
分析:查询所有学生的学号与姓名,无查询条件。
SQL语句如下:
SELECT Sno,Sname FROM student
查询结果如表7.3所示。
表7.3 查询结果
Sno
Sname
0001
王磊
0002
刘进
0003
李波
0004
张建国
此操作在关系数据库中称投影操作,投影操作返回二维表格的若干列。
例2.查询student表中所有计算机科学系的学生。
分析:应用WHERE子句构造查询条件,使其满足能够查询Student表中所有计算机科学系的学生。
SQL语句如下:
SELECT * FROM WHERE student.Sdept= '计算机科学系'
查询结果如表7.4所示。
表7.4 查询结果
Sno
Sname
Sex
Sage
Sdept
0001
王磊
男
19
计算机科学系
0004
张建国
女
20
计算机科学系
此操作在关系数据库中称选择操作,选择操作返回二维表格的若干行。
例3.查询选修了002号课程的学生姓名和成绩,并按由高到低排列。
分析:学生姓名在表student中,成绩在表sc中,显然所需信息需要从两个表中获得。按分数由高到低排列需要用关键字DESC,反之,用ASC(默认) 。
SQL语句如下:
SELECT student.Sname,sc.grade
FROM student,sc
WHERE student.Sno=sc.Sno and sc.Cno= "002"
ORDER BY grade DESC
查询结果如表7.5所示。
表7.5查询结果
Sname
grade
张建国
95
刘进
76
此操作在关系数据库中称连接操作,连接操作是通过某个关键字将两个表连接起来。本例中是通过Sno关键字将表student和sc连接起来。在SELECT语句中,特别要指明某个字段来源于哪个表,如student.Sname表示Sname这个字段来源于student表。
(2)数据更新
SQL中数据更新包括插入数据、修改数据和删除数据三种语句。
①插入数据
语句格式为:
INSERT INTO 表名(属性列)VALUES(值列)
例4.在选课表中插入一条选课信息:学号为0005的学生选了003号课程,成绩为85。
SQL语句如下:
INSERT INTO sc(Sno,Cno,grade)VALUES('0005', ' 003', '85')
②修改数据
语句格式为:
UPDATE 表名SET 列名=值,××× WHERE 条件
注意:如果条件为空,则修改所有的字段。
例5.将学生表中学号为0002的学生名字改为赵月,所属系改为“电子信息工程系”。
SQL语句如下:
UPDATE student SET Sname='赵月', Sdept= '电子信息工程系'WHERE Sno= '0002'
③删除数据
语句格式为:
DELETE FROM 表名 WHERE 条件
注意:如果条件为空,则删除所有的记录。
例6.删除学号为0002的同学选002号课的记录。
SQL语句如下:
DELETE FROM sc WHERE sno= '0002'and cno='002'
例7.删除计算机科学系同学所有的选课记录。
在选课表sc中,没有计算机科学系的信息,必须在student表中查询。这时需要用到谓词IN所带的子查询。
SQL语句如下:
DELETE FROM sc WHERE sno IN
(SELECT Sno FROM student WHERE Sdept = '计算机科学系'
二、本章重要知识点
1.三种数据库类型
VB 将数据库分为三种类型:本地数据库、外部数据库、远程数据库
本地数据库:主要指Microsoft Access数据库。
外部数据库:是指采用ISAM的数据库,如dBase,Foxpro,Paradox,Excel等。
远程数据库:指SQL Server Oracle DB2等大型数据库。
2.VB数据库访问机制
VB 通过数据引擎访问数据库
数据引擎:数据库应用程序属于一种非常典型的前后台软件结构,前台是我们的VB程序,后台则是数据库管理系统,如SQI Server。而前后台通信的主要机制称为数据库引擎。
常用的数据库引擎有三种:Jet引擎、ODBC、OLE DB。
3.数据对象
VB采用面向对象技术,将三种数据库引擎封装成三种访问数据库的对象,即DAO、RDO、ADO。
DAO对象:可以使用Jet引擎和ODBC两种方式访问数据库。
RDO对象:一般采用ODBC访问数据库。
ADO对象:主要采用OLE DB访问数据库,也支持ODBC访问,但需要经过OLE DB转接。
4.ADO对象模型
ADO 是一种基本OLE DB 的 模型。
ADO对象模型共包含7个对象。它们是Connection、Command、Recordset、Field、Parameter、Property和 Error。其中最常用的是前4个对象。
5. 数据库应用程序的大致框架
将SQL语句嵌入到VB语言中,采用ADO数据对象模型开发数据库应用程序。
(1) 连接后台数据库
在VB应用程序中主要用Connection对象连接后台数据库,基本方法是:
l 首先声明并创建对象
Dim ADOcn As Connection '声明对象
Set ADOcn = New Connection '创建新对象
或上述两条语句直接写成
Dim ADOcn As New Connection
l 建立数据库连接
一般通过下列语句完成与数据库的连接“
ADOcn.Open 连接字符串
语句中的连接字符串可以通过自动生成“连接字符串 “的方法来实现,见教材184-185页。
(2)对数据库中的数据表进行更新操作
更新操作包括增加、删除和修改,这些语句的特点是没有返回的结果集,它们仅仅向数据库发出一条更新命令。可以利用Connection对象的execute方法来完成。语法如下:
ADOcn.Execute SQL语句字符串
为了提高程序的可读性和易维护性,通常采用如下方法完成上述操作:
'声明一个字符串变量
Dim strSQL As String
'拼写Insert、Delete、Updata结构化查询语句
例如:
strSQL = "Delete From 学生成绩表"
strSQL = strSQL + "Where 学号=" + "'+Combol.Text+'"
'执行SQL语句
ADOcn.Execute strSQL
(3) 对数据表进行查询(Select)操作
记录集Recordset对象是数据表的查询结果,通过使用Recordset进行Select语句的操作。基本使用方法如下:
'声明一个新的Recordset对象
Dim ADOrs As New Recordset
与ADO链接对象建立关联
ADOrs.ActiveConnection = ADOcn
'执行Select操作
ADOrs.Open "Select*From 学生成绩表"
'关闭记录集对象
ADOrs.Close
(4)显示记录集中的数据
①在TextBox中显示
Text1.Text = ADOrs.Fields("学号")
②读取到变量中
Dim strNo As String
strNo = ADOrs.Field("学号")
Text1.Text = strNo
③在Grid控件中以二维表的形式显示
采用MSFlexGrid控件进行显示,一般步骤是:
l 清空数据
l 设置标题栏
l 打开记录集
l 使用循环将记录集中的数据添加到Grid中去。
例8.假设在d盘根目录中存在一个名为“student.mdb”的Access数据库,其中包含一张名为“学生基本情况”的数据表,表中存放了学生的基本信息,如图1所示。
现在要求利用VB编写一个数据库记录增加程序,程序的运行界面如图2所示,基本逻辑是:分别在Text1、Text2、Text3中输入学号、姓名、籍贯信息,然后点击“保存”按钮(Command1)将该记录添加到数据库中。如果数据库中已经存在相同的学号信息,则程序应提示用户“记录已存在,请重新输入”,并将焦点置于Text1上,等待用户修改或重新输入。当点击退出按钮(Command2)时关闭本窗体。
图1用Access创建的学生基本情况数据表
图2 查询程序运行界面
Private ADOcn As New Connection
Private Sub Form_Load()
[1] "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\student.mdb"
End Sub
Private Sub Command1_Click()
Dim strSQL As [2]
Dim ADOrs As New Recordset
ADOrs.ActiveConnection = [3]
strSQL = "Select * from 学生基本情况一览表 Where 学号=" + " ' " + [4]+ " ' "
ADOrs.Open [5]
If Not ADOrs.EOF Then
MsgBox "学号已经存在,请重新输入!", vbOKOnly, "信息提示"
Text1.SetFocus
Else
strSQL = "Insert Into 学生基本情况一览表(学号,姓名,籍贯) "
strSQL = strSQL + " Values ( '" + Text1 + " ','" + Text2 + "','" + Text3 + " ')"
[6] .Execute strSQL
MsgBox "添加成功!", vbOKOnly, "信息提示"
[7]
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
答案:
[1] ADOcn.Open
[2] string
[3] ADOcn
[4] Text1
[5] strSQL
[6] ADOcn
[7] End If
6.数据控件、可视化数据管理器、报表设计的基本概念
见教材。