VB 可以访问多种关系数据库,如 Access 、 Oracle 等系统的数据库。默认的数据库是 Access97 数据库,扩展名为 .mdb 。
注: Access2000/2002 数据库文件格式与 Access97 数据库不同, VB 不能直接访问它们。使用 “ 数据库实用工具 ” 可以把 Access2000/2002 数据库转换为 Access97 数据库。
可视化数据管理器( VisData )是一个数据库工具。
用于建立、维护和查看数据库。
选择“外接程序”菜单中的“可视化数据管理器”命令。

11.2.1 建立数据库 ( 以建立学生数据库为例 )
1. 创建一个数据库
(1) 在可视化数据管理器的窗口中,选择 “ 文件 ” 菜单中的 “ 新建 ” 命令。
(2) 选择 “Microsoft Access…” 下的 “Version 7.0 MDB 。
(3) 输入要创建的数据库文件名,如 “St.mdb” 。
(4) “ 保存 ”

“ 数据库窗口 ” 和 “SQL 语句 ” 窗口
2. 创建数据表
创建数据表时必须定义表的结构
表结构包括各个字段的名称、类型、长度等

在已建立的数据库中添加 “ 学籍表 ”
(1) 在 “ 数据库窗口 ” 中右击鼠标,从快捷菜单中选择 “ 新建表 ” 命令,弹出 “ 表结构 ” 对话框。
在对话框中,可输入新表的名称并添加字段,也可从表中删除字段,还可以添加索引或删除索引。 输入 “ 学籍表 ” 作为表名。
(2) 单击 “ 添加字段 ” 按钮,弹出 “ 添加字段 ” 对话框。
(3) 输入各个字段的 “ 名称 ” 、数据 “ 类型 ” 和字段 “ 大小 ” (长度),如学号、 Text 、 6 。
(4) 添加一个字段后,单击 “ 确定 ” 按钮。

“ 表结构 ” 对话框中单击 “ 添加索引 ” ,打开 “ 添加索引 ” 对话框
“名称 ” 框:用于输入索引名
“可用字段 ” 列表框:从中选择用来建立索引的字段。
一个索引可以由一个字段建立,也可以由多个字段组合建立。
“主要的 ” 复选框:表示当前建立的索引是主索引( Primary Index )。在一个数据表中可以建立多个索引,但只能有一个主索引。
“唯一的 ” 复选框:设置该字段不会有重复的数据。

“忽略空值 ” 复选框:表示搜索时将忽略空值记录。
当数据表设计完后,单击 “ 表结构 ” 对话框中的 “ 生成表 ” 按钮,就在数据库中添加了一个新的表。

关闭 “ 表结构 ” 对话框后,可从数据库窗口中看到数据表的显示
11.2.2 修改数据表的结构和数据
1. 修改表的结构
在数据库窗口中,右击数据表名称,从快捷菜单中选择 “ 设计 ” 命令,即可修改或打印表结构。
2. 修改表的数据
修改表中现有数据的操作类似于输入数据。
先在记录处理窗口中,通过移动窗口底部的滚动条找到要修改的记录,单击 “ 编辑 ” 按钮后,即可进行有关修改操作。完成修改操作后,单击 “ 更新 ” 按钮,则可保存对数据的更新。
11.2.3 数据查询
1. 使用查询生成器
以查找 11 班全部学生为例
· 打开 “ 查询生成器 ” 对话框
· 选择要查询的表,如 “ 学籍表 ” 。
· 单击 “ 字段名称 ” 框右侧的下箭头,如选择 “ 班号 ” ,在 “ 运算符 ” 框中选择 “=” ,在 “ 值 ” 框中输入 “ 11” 。也可通过单击 “ 列出可能的值 ” 按钮后选择 “ 值 ” 。
· 单击 “ 将 And 加入条件 ” 按钮或 “ 将 Or 加入条件 ” 按钮,可将设置的条件添加到 “ 条件 ” 列表中。
· 选择在查询时需要显示的字段名
· 单击 “ 运行 ” 按钮
· 将查询保存起来

保存查询后,在数据库窗口中就能看到刚建立的查询

以后双击该查询名,即可执行该查询
2 .使用 SQL 语句
SQL(Structure Query Language ,结构化查询语言 ) 是一种用于数据库查询和编程的语言。由于它功能丰富、使用方式灵活、语言简洁易学,已成为关系数据库语言的国际标准。
SQL 语言由一系列 SQL 语句组成。

用户可以直接在 “SQL 语句 ” 窗口中输入 SQL 语句来实现各种功能。
几个常用的 SQL 语句
(1) Select 语句
Select 语句是 SQL 语言中最常用的一个语句 (P259)
Select 字段名列表 From 表名
[Where 查询条件 ]
[Group By 分组项 ]
[Having 分组筛选条件 ]
[Order By 排序字段 [ASC|DESC],…]
功能:从指定的数据表中查找满足条件的记录。
举例 1 :从 “ 学籍表 ” 中查找 11 班所有学生记录,查询结果只包括 “ 学号 ” 、 “ 姓名 ” 和 “ 性别 ” ,采用的 Select 语句如下:
Select 学号 , 姓名 , 性别 From 学籍表 Where 班号 ="11"
可以使用 Sum , Avg , Min , Max , Count 等合计函数,来分别计算某一列的总和,平均值,最小值,最大值和记录个数。
举例 2 :计算各班学生的平均年龄,采用的 Select 语句如下:
Select 班号 , Avg( 年龄 ) From 学籍表 Group By 班号
举例 3 :显示“学籍表”中所有男生的所有信息,查询结果按班号顺序排列,采用的 Select 语句如下:
Select * From 学籍表 Where 性别 =" 男 " Order By 班号
举例 4 :从“学籍表”和“成绩表”中查找 11 班的所有学生记录,查询结果包括“学号”、“姓名”、“英语”和“程序设计”,采用的 Select 语句如下:
Select 学籍表 . 学号 , 学籍表 . 姓名 , 成绩表 . 英语 , 成绩表 . 程序设计
From 成绩表 , 学籍表
Where 成绩表 . 学号 = 学籍表 . 学号 And 学籍表 . 班号 ="11"
举例 5 :查找英语科成绩不及格的学生记录,查询结果包括“学号”、“姓名”、“班号”和“英语”,采用的 Select 语句如下:
Select 学籍表 . 学号 , 学籍表 . 姓名 , 学籍表 . 班号 , 成绩表 . 英语
From 成绩表 , 学籍表
Where 成绩表 . 学号 = 学籍表 . 学号 And 成绩表 . 英语 <60
(2)Insert 语句
用于向数据表中插入一个记录。语句格式:
Insert Into 数据表 ( 字段名列表 ) Values( 字段值 )
例如,在成绩表中插入两个记录,相应的 Insert 语句如下:
Insert Into 成绩表 ( 学号 , 英语 , 程序设计 ) Values("951006", 87, 90)
Insert Into 成绩表 ( 学号 , 英语 , 程序设计 ) Values("951007", 57, 69)
(3)Delete 语句
本语句用于按照指定条件删除数据表中的记录。语句格式:
Delete From 表名 Where 条件
例如,删除学籍表中班号为 “ 31” 的所有记录,相应的 Delete 语句如下:
Delete From 学籍表 Where 班号 ="31"
(4)Update 语句
本语句用于按照指定条件修改数据表中的记录。语句格式:
Update 表名 Set 字段 = 表达式 Where 条件
例如,从成绩表中修改 “ 951003” 学生的英语科的成绩,相应的 Update 语句如下:
Update 成绩表 Set 英语 =99 Where 学号 ="951003"
11.2.4 数据窗体设计器
可视化数据管理器中提供了 “ 数据窗体设计器 ” 工具,利用它可以很容易地创建数据窗体,并添加到当前工程中,这样就可以生成一个用于浏览、修改数据库的应用程序。
选择 “ 实用程序 ” 菜单中的 “ 数据窗体设计器 ” 命令,即可打开 “ 数据窗体设计器 ” 对话框。


例 11.1 生成用于浏览、修改成绩表的应用程序
( 1 )新建一个工程。
( 2 )进入可视化数据管理器,打开数据库 St.mdb 。
( 3 )打开 “ 数据窗体设计器 ” 对话框,在对话框中设定 “ 窗体名称”为 Cj , “ 记录源 ” 为 “ 成绩表 ” ,则在 “ 可用的字段 ” 列表中列出了“成绩表”中的所有字段名,将“学号”、“英语”及“程序设计” 3 个字段选择到 “ 包括的字段 ” 列表框中。
(4) 单击 “ 生成窗体 ” 按钮,完成后单击 “ 关闭 ” 按钮。
此时在 VB 工程资源管理器中可以看到新增了一个名为 frmCj 的窗体。
(5) 在窗体编辑器中打开 frmCj 窗体。
窗体上除显示对应 3 个字段的 3 个文本框控件外,还有 “ 添加 ” 、 “ 删除 ” 、 “ 刷新 ” 、 “ 更新 ” 和 “ 关闭 ”5 个按钮,此外还有 1 个 Data 控件。
打开代码窗口,可以看到 VB 系统已经为该窗体模块生成了相应代码。
(6) 将 frmCj 窗体设置为当前工程的启动对象
运行工程,此时可以使用 Data 控件两端的箭头控制显示各记录内容,也可以通过有关按钮完成相应的功能。 |