Visual Basic 程序设计甘肃农业大学信息科学技术学院
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
Visual Basic具有强大的数据库操作功能,
提供包含数据管理器( Data Manager)、
数据控件( Data Control)以及 ADO
( Active Data Object)等功能强大的工具。
Visual Basic能够将 Windows的各种先进性与数据库有机地结合在一起,可以很好地实现数据库的存取界面,开发出实用便利的数据库应用程序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
10.1 数据库概述
10.2 Data控件
10.3 ADO数据对象访问技术
10.4 制作报表
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1 数据库概述
10.1.1 数据库的基本概念
10.1.2 结构化查询语言 SQL
10.1.3 数据库管理器
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.1 数据库的基本概念
数据库( Data Base)
– 数据库是以一定的组织方式存储在计算机的外存储器中的、相互关联的数据的集合。数据库为满足某一组织中多个用户的多种应用而建立。
– 数据库具有数据的共享性、数据的独立性、数据的完整性和数据冗余少等特点。
– 数据库管理系统( DBMS)是管理和维护数据库的软件系统,用户通过 DBMS存取数据库。数据库管理系统具有数据定义、数据存取、数据库运行管理以及数据库的建立、维护和数据库通信等功能。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.1 数据库的基本概念
数据库按其结构可分为层次数据库、网状数据库和关系数据库。其中关系数据库是目前应用最广泛的一种数据库。
– 关系数据库可采用现代数学理论和方法对数据进行处理,提供了结构化查询语言 SQL。
– 支持关系数据库的数据库管理系统称为关系型数据库管理系统。
– 目前比较流行的大中型的关系型数据库管理系统有
Oracle,Sybase,Informix,Microsoft SQL Server等,
它们功能强大、性能稳定,应用十分广泛。
– 在 Windows环境下 Visual FoxPro,Microsoft Access等小型桌面数据库管理系统应用比较普遍。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.1 数据库的基本概念
关系数据库
– 关系数据库是根据表、记录和字段之间的关系进行组织和访问的一种数据库,它通过若干个表( Table)来存储数据,并且通过关系( Relation)将这些表联系在一起。
– 数据表是由行和列组成的数据集合,类似于工作单表。
– 数据表中的列称为字段( Field),行称为记录
( Record)。
– 多个相互关联的数据表组成一个数据库( Database)。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1 数据库概述
10.1.1 数据库的基本概念
10.1.2 结构化查询语言 SQL
10.1.3 数据库管理器
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
SQL( Structure Query Language)语言,
即结构化查询语言,是一种用于数据库查询和编程的非过程化高级语言。
– 在查询数据时,只需指出“要什么”,而不需要指出如何实现的过程。由于它功能丰富、使用方式灵活、语言简洁易学,现已成为关系数据库语言的国际标准。
– 使用 SQL可以完成定义关系模式,录入数据,
建立数据库,查询、更新、维护数据库,数据库重构,数据库安全控制等一系列的操作要求。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
SQL语言由若干个 SQL语句组成,用于操作数据及数据表数据。
常用的 SQL语句有:
– 数据定义语句
CREATE TABLE 创建一个新数据表。
CREATE INDEX 为表创建一个索引。
CREATE VIEW 创建视图,即由一个或几个表定义的虚表。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 数据查询语句
Select语句,从现有的数据库中一个表或多个关系中检索数据,它是所有 SQL语句中最常用的一个,
格式为:
Select <字段名列表 >
Form <表名 〉
Where <条件 >
[Group By <列名 > [Having <条件 >]]
[Order By <列名 > [ASC | Desc}
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 数据查询语句
其中,“字段名列表”可以是一个,也可以是多个,
多个字段名之间用逗号分开,当要查询表中所有列时,则可用,*”代表。“条件”是一个逻辑表达式,
SQL条件运算符除了 AND,OR,NOT逻辑运算符以及 =,<,<=,>,>=,<>比较运算符外,还可以使用 BETWEEN(指定运算值范围),LIKE(格式相符)和 IN(指定记录)。 Group 为分组,Order
为排序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 数据操纵语句
INSERT语句 用于向数据表中添加一个或多个记录。
DELETE语句 用来按照指定条件删除表中的记录。
UPDATE语句 用来按照指定条件修改表中的记录。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 控制语句
GRANT语句 将一种或多种权限授予一个或多个用户。
REVOKE语句 从一个或多个用户收回权限。
COMMIT语句 提交一个事务。
ROLLBACK语句 撤销一个事务。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1 数据库概述
10.1.1 数据库的基本概念
10.1.2 结构化查询语言 SQL
10.1.3 数据库管理器
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.3 数据库管理器
可视化数据管理器( Visual Data Manager),是 Visual
Basic提供的一个有关数据库操作的实用工具,用它可以方便地进行建立数据库,对数据进行增、删、修改等操作,
而不需要编写任何代码。但它不适合应用于大型数据库中。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.3 数据库管理器
Visual Basic默认的数据库是 Access数据库,
可以用数据管理器直接创建 Access数据库等。
– 选择“外接程序”菜单的“可视化数据管理器”
命令可启动数据管理器,进入数据库设计界面,
– 也可以不进入 Visual Basic环境,直接运行
Visual Basic安装目录下的 VisData.exe来启动可视化数据管理器。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
10.1 数据库概述
10.2 Data控件
10.3 ADO数据对象访问技术
10.4 制作报表
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2 Data控件
10.2.1 常用属性、方法和事件
10.2.2 用控件显示数据
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件的属性有些可用于其他控件,有些则是
Data控件所特有的。下表列出了 Date控件的一些常用属性属 性 说 明
Connect 指定链接的数据库的类型,默认值为 Access
DatabaseName 用于确定数据控件使用的数据库的完整路径
RecordSource 指定数据控件所链接的记录来源,可以是数据表名,也可以是查询名
RecordsetType 指定数据控件存放记录集的类型,默认为 Dynaset
BofAction 当移动到记录开始时程序将执行的操作
EofAction 当移动到记录结尾时程序将执行的操作
ReadOnly 控制能否对记录集进行写操作。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 1) AddNew方法:用于添加一个新记录,新记录的每个字段如果有默认值,则以默认值表示,如果没有则为空白。
– ( 2) Delete方法:用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 3) Find方法:用于在记录集中查找符合条件的记录。
如果条件符合,则记录指针将定位在找到的记录上。
Find方法包括:
FindFirst方法:查找符合条件的第一条记录。
FindLast方法:查找符合条件的最后一条记录。
FindPrevious方法:查找符合条件的上一条记录。
FindNext方法:查找符合条件的下一条记录。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 4) Move方法:可以使不同的记录成为当前记录,常用于浏览数据库中的数据。 Move方法包括,Move,
MoveFirst,MoveLast,MovePrevious和 MoveNext
方法。
如果 Data控件定位在记录集的最后一条记录上,这时继续向后移动记录,就会使得记录集的 EOF属性值变为 True,不能再使用 MoveNext方法向下移动记录,否则会产生错误。从而在使用 MoveNext方法移动记录时应该先检测一下记录集的 EOF属性:
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 5) Refresh方法:主要用来建立或重新显示与 Data
控件相连接的数据库记录集。
如果在程序运行过程中修改了数据控件的 DatabaseName,
ReadOnly,Exclusive或 Connect属性的设置值,就必须用该方法来刷新记录集:
Data1.Refresh
– ( 6) Update方法:用于将修改的记录内容保存到数据库中。
– ( 7) UpdateControls方法:可以从数据控件的记录集中再取回原先的记录内容,即恢复原先的值,取消修改。
其格式为:
Data1.UpdateControls
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件的事件
– 除具有标准控件所具有的事件之外,Data控件还具有几个与数据库访问有关的特有事件,Reposition事件和
Validate事件。
( 1) Reposition事件:当用户单击 Data控件上某个箭头按钮,
或者在应用程序中使用了某个 Move或 Find方法时,一个新记录成为当前记录,均会触发 Reposition事件。
( 2) Validate事件:当某一记录成为当前记录之前,或是在
Update,Delete,Unload或 Close操作之前触发该事件。
Validate事件的格式为:
Private Sub Data1_Validate( Action As Integer,Save As
Integer)
– 其中,Action用来指示引发这种事件的操作,Save用来指定被连接的数据是否进行了修改。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2 Data控件
10.2.1 常用属性、方法和事件
10.2.2 用控件显示数据
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.2 用控件显示数据
Visual Basic中可与数据控件关联(或绑定)的控件有 PictureBox,Label,TextBox,CheckBox,
Image,ListBox和 ComBox控件等。
与 Data控件绑定的控件也称为数据感知控件。
– 数据感知控件的 DataSource属性用于指定数据控件名,
DataField属性用于在下拉列表中选择要显示的字段名称。在设置了 DataSource和 DataField属性之后,当用户用该控件来在 Recordset中访问记录时,就会自动显示出指定字段的内容。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.2 用控件显示数据
【 例 10-1】 创建一个学生基本情况录入界面,如图所示。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.1 ADO对象模型
在 Visual Basic中,提供了 Access/Jet,
ODBC,Oracle以及 SQL Server等 OLE DB
数据源,ADO访问数据是通过 OLE DB来实现的,它是连接应用程序和 OLE DB数据源之间的一座桥梁,提供的编程模型可以完成几乎所有的访问和更新数据源的操作。
ADO对象模型定义了一个可编程的分层的对象集合,它支持部件对象模型和 OLE DB
数据源。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.1 ADO对象模型
ADO对象模型主要包括:
– Connection对象
Connection对象用于建立与数据源的连接。连接是交换数据所必需的环境,通过连接,可使应用程序访问数据源。
– Command对象
Command对象描述将对数据源执行的命令。在建立
Command后,可以发出命令操作数据源。一般情况下,命令可以在数据源中添加、删除或更新数据,或者在表中查询数据。
– Recordset对象等。
Recordset对象只代表记录集,是基于某一连接的表或是
Command对象的执行结果。 Recorset对象是在行中检查和修改数据最主要的方法,常用于指定行、移动行,添加、删除或更改行。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
由于 ADO Data控件属于 ActiveX控件,每次创建工程时都应选择“部件”中的
,Microsoft ADO Data Control
( OLEDB)”复选框,则 ADO Data控件的图标就会出现在工具箱中。双击 ADO Data
控件的图标,或者单击后在窗体上画出控件,都可以在窗体上添加 ADO Data控件,
其外观与 Data控件的外观相似,默认名称为 Adodc1。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
ADO Data控件的属性属 性 说 明
ConnectonString 设置到数据源的连接信息,可为 OLE DB文件(,udl),ODBC数据源(,dsn)或连接字符串。
RecordSource 返回或设置一个记录集的查询,用于决定从数据库中查询什 么信息。
CommnadType 设置或返回 RecordSource的类型。
Mode 设定对数据的操作范围。
UserName 用户名称,当数据库受密码保护时,需要指定该属性。
Password 设置 Recordset对象创建过程所使用的口令,当访问一个受保护的数据库时是必需的。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
ADO Data控件的属性
– ADO Data控件的大多数属性可以通过“属性页”对话框设置。
– 要使用 ADO数据控件,首先需要连接数据源,也就是设置 ConnectionString属性值。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
ADO Data控件的方法、事件
– ADO Data控件对数据的操作主要由 Recordset对象的属性与方法来实现。
– ADO数据控件的常用事件主要有:
WillMove,WillChangeField,FieldChangeComplete,
WillChangeRecord,RecordChangeComplete事件等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
【 例 10-2】 利用 ADO Data控件重新编写学生基本情况的输入程序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
在 Visual Basic中,任何具有 DataSourec属性的控件都可以绑定到一个数据控件上作为数据感知控件,除了 TextBox,
ComboBox控件等可与数据库关联的控件外,
Visual Basic还提供了一些高级约束数据控件
– 如 DataList,DataCombo,DataGrid,
RichTextBox,FlexGrid,MonthView等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
在 Visual Basic中,任何具有 DataSourec属性的控件都可以绑定到一个数据控件上作为数据感知控件,除了 TextBox,ComboBox控件等可与数据库关联的控件外,Visual Basic还提供了一些高级约束数据控件,如 DataList,DataCombo,
DataGrid,RichTextBox,FlexGrid,MonthView
等。
– 加入这些控件的方法是:使用“工程”菜单中的“部件”命令,然后选择 Microsoft DataGrid Control及
Microsoft DataList Control等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
使用 DataGrid控件
– DataBrid控件是一种类似于表格的数据绑定控件,可以通过行和列来显示 Recordset对象的记录和字段,用于浏览和编辑完整的数据库表和查询。 DataGrid控件为部件中的,Microsoft
DataGrid Control ( OLEDB)”。
– DataGrid控件的常用事件有
RowColChange和 ButtonClick事件。
单击当前单元的内置按钮时触发 ButtonClick事件,
RowColChange事件是在当前单元改变为其他不同单元时触发。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
使用 DataList和 DataCombo控件
– DataList控件,DataCombo控件所在的部件名为,Microsoft DataList Controls
( OLEDB)”。二者与列表框( ListBox)和组合框( ComboBox)相似,所不同的是这两个控件不再是用 AddItem方法来填充列表项,
而是由这两个控件所绑定的数据字段自动填充,
而且还可以有选择地将一个选定的字段传递给第二个数据控件。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
DataList控件和 DataCombo控件的常用属性有:
– DataSource:设置所绑定的数据控件。
– DataField:由 DataSource属性所指定用于更新记录集的字段,是控件所绑定的字段。
– RowSource:设置用于填充下拉列表的数据控件。
– ListField:表示 RowSource属性所指定的记录集中用于填充下拉列表的字段。
– BoundColumn:表示 RowSource属性所指定的记录集中的一个字段,当在下拉列表中选择回传到 DataField,
必须与用于更新列表的 DataField的类型相同。
– BoundText,BoundColumn字段的文本值。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
【 例 10-3】 输入姓名查询成绩信息,如图所示。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.4 数据窗体向导
数据窗体向导是 ADO Data控件提供的将一组控件绑定到某个数据源的简单方法,包括了用户界面和所需要的程序代码。
使用数据窗体向导的步骤如下:
– ( 1)添加数据窗体向导
– ( 2)单击外接程序菜单中出现的“数据窗体向导”,打开数据窗体向导第一屏“介绍”。
单击“下一步”按钮,在第二屏“数据库类型”
中选择 Access。
– ( 3)在第三屏“数据库”中指定数据库名称
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.4 数据窗体向导
使用数据窗体向导的步骤如下:
– ( 4)在,Form”窗口上确定窗体名称、布局和绑定类型。
– ( 5)在“记录源”窗口中选择记录源,如所需要显示的字段。
– ( 6)在“控件选择”窗口内选择所需要的控件后,单击“完成”按钮,就会自动生成窗体,且这个窗体是完全可以运行的。
在使用数据窗体向导创建好一个窗体后,用户可以根据需要修改窗体的布局以及程序代码,然后再运行应用程序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
10.1 数据库概述
10.2 Data控件
10.3 ADO数据对象访问技术
10.4 制作报表
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.1 数据环境设计器
数据环境设计器为数据库应用程序的开发提供了一个交互式的、在设计时使用的环境,能够可视化地创建和修改表、表集和报表的数据环境,为建立连接和定义命令提供了很好的图形接口。
Data Environment设计器保存在,dsr文件中。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.1 数据环境设计器
在工程菜单中,选择“更多 ActiveX设计器”下级菜单中的,Data Environment”,就会打开数据环境设计器,同时添加了一个数据环境
DataEnvironment1,并包含一个连接对象
Connection1,如图所示。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.1 数据环境设计器
创建连接
– 数据环境中的 Connection对象用于管理到数据库的连接,在 Data
Environment设计器中定义一个 Connection对象的方法与 ADO
Data控件的 ConnectingString属性的设置相同。
定义命令
– Command对象定义了有关数据库数据的详细信息,它可以建立在数据表、视图,SQL查询基础上,也可在命令对象之间建立一定的关系,从而获得一系列相关的数据集合。命令对象必须与连接 对象结合在一起使用。
使用数据环境
– 在数据环境设计器中创建好了一个数据环境对象以后,就可以利 用该数据环境对象访问数据库了。
另外,也可用代码来编辑和创建自己的 Data Environment
对象。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
在工程菜单中选择“添加 Data Report”,即可在工程中添加一个 DataReport对象,并同时打开数据报表设计器,如图所示。
数据报表设计器由 DataReport对象,Section对象和 Data Report控件三部分组成
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
DataReport对象
– DataReport对象与 Visual Basic窗体类似,同时具有一个可视的设计器和一个代码模块。可以使用设计器创建报表的布局,也可以向设计器的代码模块添加代码,可以采用编程方式调整设计器中包含的控件或部分格式。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
Section对象
– 数据报表设计器的每一部分由 Section对象表示。设计时,每一个
Section对象由一个窗格表示,可以单击窗格以选择“页标头”,
也可以在窗格中放置和定位控件。还可以在程序中,对 Section对象及其属性进行动态配置。
报表标头:指显示在一个报表开始处的文本,如报表标题、作者或数据库名等。一个报表最多只能有一个报表标头,而且出现在数据报表的最上面。
页标头:指在每一页顶部出现的信息,如报表的标题、页数和时间等。
分组标头 /脚注:用于分组的重复部分,每一个分组标头与一个分组注脚相匹配。
细节:指报表的最内部的重复部分(记录),与数据环境中最底层的
Command对象相关联。
页注脚:指在每一页底部出现的信息,如页数据、时间等。
报表注脚:报表结束时出现的文本,如摘要信息、一个地址或联系人姓名等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
Data Report控件
– 在一个工程中添加了一个数据报表设计器以后,
Visual Basic将自动创建一个名为“数据报表”
的工具箱,工具箱中列出 6个控件的功能 如下表所示控 件 描 述
RptLabel 用于在报表上放置标签、标识字段或 Section
RptTextBox 显示所有在运行过程中应用程序通过代码或命令提供的数据
RptImage 用于在报表上放置图形,该控件不能被绑定到数据字段
RptLine 用于在报表上绘制直线,可用于进一步区分 Section
RptShape 用于在报表上放置矩形、三角形、圆形或椭圆
RptFunction 是一个特殊的文本,用于在报表生成时计算数值,如在分组数据的合计等
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.3 设计报表
数据报表设计器的主要功能就是将数据从数据库表中提取出来,经过组织后生成一张报表。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.3 设计报表
下面通过学生成绩报表的设计说明数据报表设计器的使用方法。
– 指定数据源
在工程中添加一个数据环境 Students,打开数据环境设计器,
创建连接对象 ConnSt与命令对象 CommStID,并通过
CommStID属性页指定数据源为学生数据表。
– 添加 DataReport
打开数据报表设计器,将 DataReport对象的 Name属性设置为
DataReportSt,DataSource属性为数据环境对象 Students
(这时数据环境设置器必须是打开的),设置 DataMember属性为 CommStID对象。
– 设计报表界面
可以使用报表设计器中的工具栏来设计报表中的数据项。不过更快捷的方法是直接将数据环境中的各数据字段拖放到 DataReportSt对象的相应区域中。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.3 设计报表
数据报表设计器的使用方法。
– 分组与合计
为了能够按院系进行成绩统计,可先建立一个查询表,然后进行分组计算、设计报表。
– 报表打印
可以使用两种方法打印一个数据报表,一种方法是在预览数据报表时单击“打印”按钮,另一种方法则是在程序中调用
PrintReport方法打印报表。
在程序中使用代码打印数据报表时,既可以在显示打印对话框后打印报表,也可以不显示打印对话框而直接打印报表。使用
PrintReport方法的格式为:
对象,PrintReport(是否显示打印对话框,页面范围,起始页,终止页)
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.4 学生成绩管理系统的设计
管理信息系统( MIS,Management
Information System)是一个由人、计算机、
数据和文档等组成的能进行信息收集、传递、存储、加工、维护和使用的信息系统。
它的开发是一个复杂的系统工程,包括需求分析、软件设计、编程、测试及维护多个阶段,这里的学生成绩管理系统仅是一个简单的实例。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.4 学生成绩管理系统的设计
学生成绩管理系统的设计,包括数据库设计、主界面设计、菜单设计和功能设计。功能包括输入、
查询、图表和打印:
– 输入:包括学生基本情况、学生成绩单的输入、修改。
– 查询:通过查询,将满足查询条件的信息显示在窗体上。即可对某个学生进行查询,也可针对院系、某门课程进行分类查询、汇总,并将查询结果写入随机文件。
– 图表:将满足分析条件的数据用图表显示出来。
– 打印:可以将查询的结果数据通过报表输出,也可打印输出。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.4 学生成绩管理系统的设计
数据库采用 Access数据库
– 使用可视化数据管理器( VisData)或在 Access环境中创建数据库
Students.mdb文件。包括学生基本情况数据表、学生成绩数据表、
学生数据表,以及通过某些查询建立的表。
进入系统后应先启动展示屏幕,以显示系统名称、图标、
作者和版本等,并打开数据库文件,然后进入系统的主界面,通过主界面的菜单进入其他模块。
– 为了方便用户使用,可将主界面中的常用菜单项设计为工具栏,
如输入学生基本情况、输入学生成绩单、启动查询、显示图表等。
各功能模块的界面设计及代码编写,可参考有关内容。
另外,读者可以为输入模块添加用户身份的验证,还可运用多媒体技术进行背景音乐的播放等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社学完本章你应能够:
了解数据库的基本概念;
掌握数据控件的使用;
掌握利用 ADO访问数据库;
理解报表的制作技术;
了解 Visual Basic数据库编程技术。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社思 考 题
1,怎样理解数据库的概念?用数据库管理数据和用文件管理数据相比有什么优点?
2,说明数据库中的记录、字段、数据表、数据库的含义。
3,如何使用可视化数据库管理器创建一个数据库?
4,在 Visual Basic 中,访问数据库的方法有哪些?
5,结合本课的学习,编写一个简单的图书管理系统。
– 要求使用数据库,并提供以下功能:
( 1)图书书目管理功能(包括入库、出库、查询等);
( 2)图书管理功能(包括借阅、还书、预借、查询等)。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
Visual Basic具有强大的数据库操作功能,
提供包含数据管理器( Data Manager)、
数据控件( Data Control)以及 ADO
( Active Data Object)等功能强大的工具。
Visual Basic能够将 Windows的各种先进性与数据库有机地结合在一起,可以很好地实现数据库的存取界面,开发出实用便利的数据库应用程序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
10.1 数据库概述
10.2 Data控件
10.3 ADO数据对象访问技术
10.4 制作报表
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1 数据库概述
10.1.1 数据库的基本概念
10.1.2 结构化查询语言 SQL
10.1.3 数据库管理器
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.1 数据库的基本概念
数据库( Data Base)
– 数据库是以一定的组织方式存储在计算机的外存储器中的、相互关联的数据的集合。数据库为满足某一组织中多个用户的多种应用而建立。
– 数据库具有数据的共享性、数据的独立性、数据的完整性和数据冗余少等特点。
– 数据库管理系统( DBMS)是管理和维护数据库的软件系统,用户通过 DBMS存取数据库。数据库管理系统具有数据定义、数据存取、数据库运行管理以及数据库的建立、维护和数据库通信等功能。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.1 数据库的基本概念
数据库按其结构可分为层次数据库、网状数据库和关系数据库。其中关系数据库是目前应用最广泛的一种数据库。
– 关系数据库可采用现代数学理论和方法对数据进行处理,提供了结构化查询语言 SQL。
– 支持关系数据库的数据库管理系统称为关系型数据库管理系统。
– 目前比较流行的大中型的关系型数据库管理系统有
Oracle,Sybase,Informix,Microsoft SQL Server等,
它们功能强大、性能稳定,应用十分广泛。
– 在 Windows环境下 Visual FoxPro,Microsoft Access等小型桌面数据库管理系统应用比较普遍。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.1 数据库的基本概念
关系数据库
– 关系数据库是根据表、记录和字段之间的关系进行组织和访问的一种数据库,它通过若干个表( Table)来存储数据,并且通过关系( Relation)将这些表联系在一起。
– 数据表是由行和列组成的数据集合,类似于工作单表。
– 数据表中的列称为字段( Field),行称为记录
( Record)。
– 多个相互关联的数据表组成一个数据库( Database)。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1 数据库概述
10.1.1 数据库的基本概念
10.1.2 结构化查询语言 SQL
10.1.3 数据库管理器
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
SQL( Structure Query Language)语言,
即结构化查询语言,是一种用于数据库查询和编程的非过程化高级语言。
– 在查询数据时,只需指出“要什么”,而不需要指出如何实现的过程。由于它功能丰富、使用方式灵活、语言简洁易学,现已成为关系数据库语言的国际标准。
– 使用 SQL可以完成定义关系模式,录入数据,
建立数据库,查询、更新、维护数据库,数据库重构,数据库安全控制等一系列的操作要求。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
SQL语言由若干个 SQL语句组成,用于操作数据及数据表数据。
常用的 SQL语句有:
– 数据定义语句
CREATE TABLE 创建一个新数据表。
CREATE INDEX 为表创建一个索引。
CREATE VIEW 创建视图,即由一个或几个表定义的虚表。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 数据查询语句
Select语句,从现有的数据库中一个表或多个关系中检索数据,它是所有 SQL语句中最常用的一个,
格式为:
Select <字段名列表 >
Form <表名 〉
Where <条件 >
[Group By <列名 > [Having <条件 >]]
[Order By <列名 > [ASC | Desc}
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 数据查询语句
其中,“字段名列表”可以是一个,也可以是多个,
多个字段名之间用逗号分开,当要查询表中所有列时,则可用,*”代表。“条件”是一个逻辑表达式,
SQL条件运算符除了 AND,OR,NOT逻辑运算符以及 =,<,<=,>,>=,<>比较运算符外,还可以使用 BETWEEN(指定运算值范围),LIKE(格式相符)和 IN(指定记录)。 Group 为分组,Order
为排序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 数据操纵语句
INSERT语句 用于向数据表中添加一个或多个记录。
DELETE语句 用来按照指定条件删除表中的记录。
UPDATE语句 用来按照指定条件修改表中的记录。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.2 结构化查询语言 SQL
常用的 SQL语句有:
– 控制语句
GRANT语句 将一种或多种权限授予一个或多个用户。
REVOKE语句 从一个或多个用户收回权限。
COMMIT语句 提交一个事务。
ROLLBACK语句 撤销一个事务。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1 数据库概述
10.1.1 数据库的基本概念
10.1.2 结构化查询语言 SQL
10.1.3 数据库管理器
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.3 数据库管理器
可视化数据管理器( Visual Data Manager),是 Visual
Basic提供的一个有关数据库操作的实用工具,用它可以方便地进行建立数据库,对数据进行增、删、修改等操作,
而不需要编写任何代码。但它不适合应用于大型数据库中。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.1.3 数据库管理器
Visual Basic默认的数据库是 Access数据库,
可以用数据管理器直接创建 Access数据库等。
– 选择“外接程序”菜单的“可视化数据管理器”
命令可启动数据管理器,进入数据库设计界面,
– 也可以不进入 Visual Basic环境,直接运行
Visual Basic安装目录下的 VisData.exe来启动可视化数据管理器。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
10.1 数据库概述
10.2 Data控件
10.3 ADO数据对象访问技术
10.4 制作报表
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2 Data控件
10.2.1 常用属性、方法和事件
10.2.2 用控件显示数据
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件的属性有些可用于其他控件,有些则是
Data控件所特有的。下表列出了 Date控件的一些常用属性属 性 说 明
Connect 指定链接的数据库的类型,默认值为 Access
DatabaseName 用于确定数据控件使用的数据库的完整路径
RecordSource 指定数据控件所链接的记录来源,可以是数据表名,也可以是查询名
RecordsetType 指定数据控件存放记录集的类型,默认为 Dynaset
BofAction 当移动到记录开始时程序将执行的操作
EofAction 当移动到记录结尾时程序将执行的操作
ReadOnly 控制能否对记录集进行写操作。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 1) AddNew方法:用于添加一个新记录,新记录的每个字段如果有默认值,则以默认值表示,如果没有则为空白。
– ( 2) Delete方法:用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 3) Find方法:用于在记录集中查找符合条件的记录。
如果条件符合,则记录指针将定位在找到的记录上。
Find方法包括:
FindFirst方法:查找符合条件的第一条记录。
FindLast方法:查找符合条件的最后一条记录。
FindPrevious方法:查找符合条件的上一条记录。
FindNext方法:查找符合条件的下一条记录。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 4) Move方法:可以使不同的记录成为当前记录,常用于浏览数据库中的数据。 Move方法包括,Move,
MoveFirst,MoveLast,MovePrevious和 MoveNext
方法。
如果 Data控件定位在记录集的最后一条记录上,这时继续向后移动记录,就会使得记录集的 EOF属性值变为 True,不能再使用 MoveNext方法向下移动记录,否则会产生错误。从而在使用 MoveNext方法移动记录时应该先检测一下记录集的 EOF属性:
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件和 Recordset对象的方法
– ( 5) Refresh方法:主要用来建立或重新显示与 Data
控件相连接的数据库记录集。
如果在程序运行过程中修改了数据控件的 DatabaseName,
ReadOnly,Exclusive或 Connect属性的设置值,就必须用该方法来刷新记录集:
Data1.Refresh
– ( 6) Update方法:用于将修改的记录内容保存到数据库中。
– ( 7) UpdateControls方法:可以从数据控件的记录集中再取回原先的记录内容,即恢复原先的值,取消修改。
其格式为:
Data1.UpdateControls
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.1 常用属性、方法和事件
Data控件的事件
– 除具有标准控件所具有的事件之外,Data控件还具有几个与数据库访问有关的特有事件,Reposition事件和
Validate事件。
( 1) Reposition事件:当用户单击 Data控件上某个箭头按钮,
或者在应用程序中使用了某个 Move或 Find方法时,一个新记录成为当前记录,均会触发 Reposition事件。
( 2) Validate事件:当某一记录成为当前记录之前,或是在
Update,Delete,Unload或 Close操作之前触发该事件。
Validate事件的格式为:
Private Sub Data1_Validate( Action As Integer,Save As
Integer)
– 其中,Action用来指示引发这种事件的操作,Save用来指定被连接的数据是否进行了修改。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2 Data控件
10.2.1 常用属性、方法和事件
10.2.2 用控件显示数据
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.2 用控件显示数据
Visual Basic中可与数据控件关联(或绑定)的控件有 PictureBox,Label,TextBox,CheckBox,
Image,ListBox和 ComBox控件等。
与 Data控件绑定的控件也称为数据感知控件。
– 数据感知控件的 DataSource属性用于指定数据控件名,
DataField属性用于在下拉列表中选择要显示的字段名称。在设置了 DataSource和 DataField属性之后,当用户用该控件来在 Recordset中访问记录时,就会自动显示出指定字段的内容。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.2.2 用控件显示数据
【 例 10-1】 创建一个学生基本情况录入界面,如图所示。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.1 ADO对象模型
在 Visual Basic中,提供了 Access/Jet,
ODBC,Oracle以及 SQL Server等 OLE DB
数据源,ADO访问数据是通过 OLE DB来实现的,它是连接应用程序和 OLE DB数据源之间的一座桥梁,提供的编程模型可以完成几乎所有的访问和更新数据源的操作。
ADO对象模型定义了一个可编程的分层的对象集合,它支持部件对象模型和 OLE DB
数据源。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.1 ADO对象模型
ADO对象模型主要包括:
– Connection对象
Connection对象用于建立与数据源的连接。连接是交换数据所必需的环境,通过连接,可使应用程序访问数据源。
– Command对象
Command对象描述将对数据源执行的命令。在建立
Command后,可以发出命令操作数据源。一般情况下,命令可以在数据源中添加、删除或更新数据,或者在表中查询数据。
– Recordset对象等。
Recordset对象只代表记录集,是基于某一连接的表或是
Command对象的执行结果。 Recorset对象是在行中检查和修改数据最主要的方法,常用于指定行、移动行,添加、删除或更改行。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
由于 ADO Data控件属于 ActiveX控件,每次创建工程时都应选择“部件”中的
,Microsoft ADO Data Control
( OLEDB)”复选框,则 ADO Data控件的图标就会出现在工具箱中。双击 ADO Data
控件的图标,或者单击后在窗体上画出控件,都可以在窗体上添加 ADO Data控件,
其外观与 Data控件的外观相似,默认名称为 Adodc1。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
ADO Data控件的属性属 性 说 明
ConnectonString 设置到数据源的连接信息,可为 OLE DB文件(,udl),ODBC数据源(,dsn)或连接字符串。
RecordSource 返回或设置一个记录集的查询,用于决定从数据库中查询什 么信息。
CommnadType 设置或返回 RecordSource的类型。
Mode 设定对数据的操作范围。
UserName 用户名称,当数据库受密码保护时,需要指定该属性。
Password 设置 Recordset对象创建过程所使用的口令,当访问一个受保护的数据库时是必需的。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
ADO Data控件的属性
– ADO Data控件的大多数属性可以通过“属性页”对话框设置。
– 要使用 ADO数据控件,首先需要连接数据源,也就是设置 ConnectionString属性值。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
ADO Data控件的方法、事件
– ADO Data控件对数据的操作主要由 Recordset对象的属性与方法来实现。
– ADO数据控件的常用事件主要有:
WillMove,WillChangeField,FieldChangeComplete,
WillChangeRecord,RecordChangeComplete事件等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.2 使用 ADO Data控件
【 例 10-2】 利用 ADO Data控件重新编写学生基本情况的输入程序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
在 Visual Basic中,任何具有 DataSourec属性的控件都可以绑定到一个数据控件上作为数据感知控件,除了 TextBox,
ComboBox控件等可与数据库关联的控件外,
Visual Basic还提供了一些高级约束数据控件
– 如 DataList,DataCombo,DataGrid,
RichTextBox,FlexGrid,MonthView等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
在 Visual Basic中,任何具有 DataSourec属性的控件都可以绑定到一个数据控件上作为数据感知控件,除了 TextBox,ComboBox控件等可与数据库关联的控件外,Visual Basic还提供了一些高级约束数据控件,如 DataList,DataCombo,
DataGrid,RichTextBox,FlexGrid,MonthView
等。
– 加入这些控件的方法是:使用“工程”菜单中的“部件”命令,然后选择 Microsoft DataGrid Control及
Microsoft DataList Control等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
使用 DataGrid控件
– DataBrid控件是一种类似于表格的数据绑定控件,可以通过行和列来显示 Recordset对象的记录和字段,用于浏览和编辑完整的数据库表和查询。 DataGrid控件为部件中的,Microsoft
DataGrid Control ( OLEDB)”。
– DataGrid控件的常用事件有
RowColChange和 ButtonClick事件。
单击当前单元的内置按钮时触发 ButtonClick事件,
RowColChange事件是在当前单元改变为其他不同单元时触发。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
使用 DataList和 DataCombo控件
– DataList控件,DataCombo控件所在的部件名为,Microsoft DataList Controls
( OLEDB)”。二者与列表框( ListBox)和组合框( ComboBox)相似,所不同的是这两个控件不再是用 AddItem方法来填充列表项,
而是由这两个控件所绑定的数据字段自动填充,
而且还可以有选择地将一个选定的字段传递给第二个数据控件。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
DataList控件和 DataCombo控件的常用属性有:
– DataSource:设置所绑定的数据控件。
– DataField:由 DataSource属性所指定用于更新记录集的字段,是控件所绑定的字段。
– RowSource:设置用于填充下拉列表的数据控件。
– ListField:表示 RowSource属性所指定的记录集中用于填充下拉列表的字段。
– BoundColumn:表示 RowSource属性所指定的记录集中的一个字段,当在下拉列表中选择回传到 DataField,
必须与用于更新列表的 DataField的类型相同。
– BoundText,BoundColumn字段的文本值。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.3 高级数据约束控件
【 例 10-3】 输入姓名查询成绩信息,如图所示。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3 ADO数据对象访问技术
10.3.1 ADO对象模型
10.3.2 使用 ADO Data控件
10.3.3 高级数据约束控件
10.3.4 数据窗体向导
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.4 数据窗体向导
数据窗体向导是 ADO Data控件提供的将一组控件绑定到某个数据源的简单方法,包括了用户界面和所需要的程序代码。
使用数据窗体向导的步骤如下:
– ( 1)添加数据窗体向导
– ( 2)单击外接程序菜单中出现的“数据窗体向导”,打开数据窗体向导第一屏“介绍”。
单击“下一步”按钮,在第二屏“数据库类型”
中选择 Access。
– ( 3)在第三屏“数据库”中指定数据库名称
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.3.4 数据窗体向导
使用数据窗体向导的步骤如下:
– ( 4)在,Form”窗口上确定窗体名称、布局和绑定类型。
– ( 5)在“记录源”窗口中选择记录源,如所需要显示的字段。
– ( 6)在“控件选择”窗口内选择所需要的控件后,单击“完成”按钮,就会自动生成窗体,且这个窗体是完全可以运行的。
在使用数据窗体向导创建好一个窗体后,用户可以根据需要修改窗体的布局以及程序代码,然后再运行应用程序。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社第 10章 Visual Basic数据库编程
10.1 数据库概述
10.2 Data控件
10.3 ADO数据对象访问技术
10.4 制作报表
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.1 数据环境设计器
数据环境设计器为数据库应用程序的开发提供了一个交互式的、在设计时使用的环境,能够可视化地创建和修改表、表集和报表的数据环境,为建立连接和定义命令提供了很好的图形接口。
Data Environment设计器保存在,dsr文件中。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.1 数据环境设计器
在工程菜单中,选择“更多 ActiveX设计器”下级菜单中的,Data Environment”,就会打开数据环境设计器,同时添加了一个数据环境
DataEnvironment1,并包含一个连接对象
Connection1,如图所示。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.1 数据环境设计器
创建连接
– 数据环境中的 Connection对象用于管理到数据库的连接,在 Data
Environment设计器中定义一个 Connection对象的方法与 ADO
Data控件的 ConnectingString属性的设置相同。
定义命令
– Command对象定义了有关数据库数据的详细信息,它可以建立在数据表、视图,SQL查询基础上,也可在命令对象之间建立一定的关系,从而获得一系列相关的数据集合。命令对象必须与连接 对象结合在一起使用。
使用数据环境
– 在数据环境设计器中创建好了一个数据环境对象以后,就可以利 用该数据环境对象访问数据库了。
另外,也可用代码来编辑和创建自己的 Data Environment
对象。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
在工程菜单中选择“添加 Data Report”,即可在工程中添加一个 DataReport对象,并同时打开数据报表设计器,如图所示。
数据报表设计器由 DataReport对象,Section对象和 Data Report控件三部分组成
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
DataReport对象
– DataReport对象与 Visual Basic窗体类似,同时具有一个可视的设计器和一个代码模块。可以使用设计器创建报表的布局,也可以向设计器的代码模块添加代码,可以采用编程方式调整设计器中包含的控件或部分格式。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
Section对象
– 数据报表设计器的每一部分由 Section对象表示。设计时,每一个
Section对象由一个窗格表示,可以单击窗格以选择“页标头”,
也可以在窗格中放置和定位控件。还可以在程序中,对 Section对象及其属性进行动态配置。
报表标头:指显示在一个报表开始处的文本,如报表标题、作者或数据库名等。一个报表最多只能有一个报表标头,而且出现在数据报表的最上面。
页标头:指在每一页顶部出现的信息,如报表的标题、页数和时间等。
分组标头 /脚注:用于分组的重复部分,每一个分组标头与一个分组注脚相匹配。
细节:指报表的最内部的重复部分(记录),与数据环境中最底层的
Command对象相关联。
页注脚:指在每一页底部出现的信息,如页数据、时间等。
报表注脚:报表结束时出现的文本,如摘要信息、一个地址或联系人姓名等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.2 报表设计器
Data Report控件
– 在一个工程中添加了一个数据报表设计器以后,
Visual Basic将自动创建一个名为“数据报表”
的工具箱,工具箱中列出 6个控件的功能 如下表所示控 件 描 述
RptLabel 用于在报表上放置标签、标识字段或 Section
RptTextBox 显示所有在运行过程中应用程序通过代码或命令提供的数据
RptImage 用于在报表上放置图形,该控件不能被绑定到数据字段
RptLine 用于在报表上绘制直线,可用于进一步区分 Section
RptShape 用于在报表上放置矩形、三角形、圆形或椭圆
RptFunction 是一个特殊的文本,用于在报表生成时计算数值,如在分组数据的合计等
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.3 设计报表
数据报表设计器的主要功能就是将数据从数据库表中提取出来,经过组织后生成一张报表。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.3 设计报表
下面通过学生成绩报表的设计说明数据报表设计器的使用方法。
– 指定数据源
在工程中添加一个数据环境 Students,打开数据环境设计器,
创建连接对象 ConnSt与命令对象 CommStID,并通过
CommStID属性页指定数据源为学生数据表。
– 添加 DataReport
打开数据报表设计器,将 DataReport对象的 Name属性设置为
DataReportSt,DataSource属性为数据环境对象 Students
(这时数据环境设置器必须是打开的),设置 DataMember属性为 CommStID对象。
– 设计报表界面
可以使用报表设计器中的工具栏来设计报表中的数据项。不过更快捷的方法是直接将数据环境中的各数据字段拖放到 DataReportSt对象的相应区域中。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.3 设计报表
数据报表设计器的使用方法。
– 分组与合计
为了能够按院系进行成绩统计,可先建立一个查询表,然后进行分组计算、设计报表。
– 报表打印
可以使用两种方法打印一个数据报表,一种方法是在预览数据报表时单击“打印”按钮,另一种方法则是在程序中调用
PrintReport方法打印报表。
在程序中使用代码打印数据报表时,既可以在显示打印对话框后打印报表,也可以不显示打印对话框而直接打印报表。使用
PrintReport方法的格式为:
对象,PrintReport(是否显示打印对话框,页面范围,起始页,终止页)
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4 制作报表
10.4.1 数据环境设计器
10.4.2 报表设计器
10.4.3 设计报表
10.4.4 学生成绩管理系统的设计
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.4 学生成绩管理系统的设计
管理信息系统( MIS,Management
Information System)是一个由人、计算机、
数据和文档等组成的能进行信息收集、传递、存储、加工、维护和使用的信息系统。
它的开发是一个复杂的系统工程,包括需求分析、软件设计、编程、测试及维护多个阶段,这里的学生成绩管理系统仅是一个简单的实例。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.4 学生成绩管理系统的设计
学生成绩管理系统的设计,包括数据库设计、主界面设计、菜单设计和功能设计。功能包括输入、
查询、图表和打印:
– 输入:包括学生基本情况、学生成绩单的输入、修改。
– 查询:通过查询,将满足查询条件的信息显示在窗体上。即可对某个学生进行查询,也可针对院系、某门课程进行分类查询、汇总,并将查询结果写入随机文件。
– 图表:将满足分析条件的数据用图表显示出来。
– 打印:可以将查询的结果数据通过报表输出,也可打印输出。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社
10.4.4 学生成绩管理系统的设计
数据库采用 Access数据库
– 使用可视化数据管理器( VisData)或在 Access环境中创建数据库
Students.mdb文件。包括学生基本情况数据表、学生成绩数据表、
学生数据表,以及通过某些查询建立的表。
进入系统后应先启动展示屏幕,以显示系统名称、图标、
作者和版本等,并打开数据库文件,然后进入系统的主界面,通过主界面的菜单进入其他模块。
– 为了方便用户使用,可将主界面中的常用菜单项设计为工具栏,
如输入学生基本情况、输入学生成绩单、启动查询、显示图表等。
各功能模块的界面设计及代码编写,可参考有关内容。
另外,读者可以为输入模块添加用户身份的验证,还可运用多媒体技术进行背景音乐的播放等。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社学完本章你应能够:
了解数据库的基本概念;
掌握数据控件的使用;
掌握利用 ADO访问数据库;
理解报表的制作技术;
了解 Visual Basic数据库编程技术。
Vis
ua
l B
as
ic
P
ro
gr
am
mi
ng
中国科学技术出版社思 考 题
1,怎样理解数据库的概念?用数据库管理数据和用文件管理数据相比有什么优点?
2,说明数据库中的记录、字段、数据表、数据库的含义。
3,如何使用可视化数据库管理器创建一个数据库?
4,在 Visual Basic 中,访问数据库的方法有哪些?
5,结合本课的学习,编写一个简单的图书管理系统。
– 要求使用数据库,并提供以下功能:
( 1)图书书目管理功能(包括入库、出库、查询等);
( 2)图书管理功能(包括借阅、还书、预借、查询等)。