配色: 字号:
《Visual Basic程序设计教程(第3版)》第12章 数据库编程
2023-05-25 | 阅:  转:  |  分享 
  
VB与数据库 数据库 Access数据库 Excel工作表 等等 FoxPro数据库 VB也可以建立
Access97数据库VB数据库接口Data控件ADO数据对象VB应用程序 本章主要内
容第12章 数据库编程退出数据库的基本概念ADO控件的使用ADO对象的使用SQL语句 12.1.1 关系数据库
数据库(DataBase,DB)是按一定结构存储在一起的相互关联的数据的集合。 可以通过结构化查询语言SQL实现对
数据的操作。 Oracle、SQL Server、Sybase、Microsoft Access等都是关系数据库管理
系统。 关系实质上就是一个二维数据表(Table) 1.表(Table) 表是一组相关
的数据按行和列排列的二维表,通常用来描述一个实体集。 例如,学生数据库st.mdb有 “学生表”和“成绩表”两个表。
12.1 数据库的基本概念 2. 字段(Field) 表中的每一列称为一个字段,字段具有字段名、数据类
型、字段长度等属性。同一字段中的数据类型必须相同。 3. 记录(Record) 表中的每一
行称为一条记录。 4.主键(Primary Key) 在一张表中,如果某个字段值(可以是一个字段,也可以
是多个字段的组合)能够唯一确定一条记录,则可以把它作为主键(或称主关键字)。 例如,在学生表中,“学号”可以是表的主
键,因为每名学生都有唯一的学号,使用学号能够唯一标识一条记录。 5.索引(Index) 为了提高搜索数据库
记录的速度,需要将表中的某些字段设置为索引,通过索引可以实现按索引字段进行排序,从而可以快速地找到特定的记录。 例如
,在学生表中,如果以“姓名”为索引字段建立索引,则可按“姓名”快速检索。 6.表与表之间的关系 通常一个数据
库有多个表,各表之间存在着某种关系。例如,一个学生数据库由学生表和成绩表组成,这两个表中的记录可以通过“学号”字段关联起来,以找到
特定学生的基本信息和成绩信息。 数据库表1 数据库表2 ………… 12.1.2 建立数据库 VB所支持的
不同类型的数据库可以通过相关的数据库管理系统来建立。例如,通过Access2003(或Access2000)创建学生数据库st.m
db;通过Access2007(或Access2010)来创建学生数据库,数据库文件名为st.accdb。 VB默认的数据
库是Access数据库。 数据库是由表组成的,创建表时必须定义表的结构,表结构包括各个字段的名称、数据类型、长度等属性。
12.1.3 使用SQL语句 SQL(Structure Query Language,结构化查询语言)是一种用于数
据库查询和编程的语言。由于它功能丰富、使用方式灵活、语言简洁易学,已成为关系数据库语言的国际标准。 SQL语言由一系
列SQL语句组成。 用户可以直接在Access的“SQL视图”窗口中输入SQL语句来实现各种功能。 1.
Select语句 Select语句是SQL语言中最常用的一个语句 (P242) Selec
t 字段名列表 From 表名 [Where 查询条件] [Gro
up By 分组项] [Having 分组筛选条件] [Order B
y 排序字段 [ASC|DESC],…] 功能:从指定的数据表中查找满足条件的记录。 (1)简单查询 ①
查询指定字段 示例1:查询“学生表”中的所有学生记录,查询结果只包括“学号”、“姓名”和“班级”等字段 Sel
ect 学号, 姓名, 班级 From 学生表几个常用的SQL语句 ② 查询全部字段 示例2:查询“学生表”
中所有学生的详细资料 Select From 学生表 ③ 消除重复的记录 使用D
istinct子句可从查询结果中消除重复的记录。 示例3:查询“学生表”中有哪几个班(查询结果如下图 )
Select Distinct 班级 From 学生表 ④ 查询计算结果 示例4:查询“学生表”中所有学
生的姓名及年龄 Select 姓名, year(Date())-Year(出生日期) As 年龄 From 学生表
“As”短语用来指定字段表达式的别名 (2)条件查询 使用Where子句可以查询指定表的符合条件的记录。
举例5:从“学生表”中查找“10计算机”班的所有学生记录,查询结果只包括“学号”及“姓名” Select
学号, 姓名 From 学生表 Where 班级="10计算机" 示例6:查询“成绩表”中成绩在60~80之间的记录
Select From 成绩表 Where 成绩 Between 60 And 80 其中“成绩 Between 6
0 And 80”等价于 “成绩<=60 And 成绩>=80” (3)使用合计函数 可以使用Sum、Avg、Min、
Max、Count等合计函数来分别计算某一字段的总和、平均值、最小值、最大值和记录个数。 示例7:查询“成绩表”中成绩的总
平均分 Select Avg(成绩) As 总平均分 From 成绩表 示例8:查询“成绩表”中成绩不及格的
人次数 Select count() As 不及格人次 From 成绩表 Where 成绩<60 (4)排
序 示例9:查询“成绩表”中“VB程序设计”课程的成绩,按成绩降序显示 Select From 成绩表
Where 课程="VB程序设计" Order By 成绩 Desc (5)数据分组 示例10:按班级统计学生人
数 Select 班级, Count() As 班人数 From 学生表 Group By 班级 示例
11:查询平均分在85分以上的所有记录,显示学号及平均分 Select 学号, Avg(成绩) From 成绩表 Gro
up By 学号 Having Avg(成绩)>=85 (6)多表查询 若查询的数据分布在多个表中,则需要进行多表关
联查询,表间的关联条件必须在Where子句中指定,格式为: Select 字段列表 From 表1,表2 Where 表
1.字段=表2.字段 在指定字段名时需要在其前面加上表名作为前缀,格式为:表名.字段名。 示例12:查询成绩
不及格的学生,显示这些学生的学号、姓名及成绩,使用的语句为: Select 学生表.学号, 学生表.姓名,成绩表.
成绩 From 学生表,成绩表 Where 学生表.学号=成绩表.学号 And
成绩表.成绩<60 示例13:查询“10电子”班的成绩不及格的学生,显示这些学生的学号及成绩,使用的语句为:
Select 学生表.学号,成绩表.成绩 From 学生表,成绩表 Where 学生表.学号=成绩表.学号 And
成绩表.成绩<60 And 学生表.班级="10电子" 2. Insert语句 用于向数据表
中插入一个记录。语句格式: Insert Into 数据表(字段名列表) Values(字段值)
示例14:在成绩表中插入1个记录 Insert Into 成绩表(学号,课程,成绩,学
分) Values("101001","网络工程",70
,5) 3. Delete语句 用于按照指定条件删除数据表中的记录。语句格式:
Delete From 表名 Where 条件 示例15:删除学生表中班级为“10通信”的所有记录
Delete From 学生表 Where 班级="10通信" 4. Update语句
用于按照指定条件修改表中的记录。语句格式: Update 表名 Set 字段=表达式 Where 条件
示例16:从成绩表中修改“101003”学生的“电子工程”科的成绩,把成绩改为88,使用的Update语句为:
Update 成绩表 Set 成绩=88 Where 学号="101003" And 课程="电子工程"VB数据库编程
12.2 ADO控件的使用 12.2.1 ADO简介 VB有三种数据对象访问接口: 数
据访问对象(DAO) 远程数据对象(RDO) ActiveX数据对象(ADO):最新的数据
访问技术,,有更广的适应性 使用ADO数据库访问技术有两种途径,一是使用ADO数据控件(ADODC,简称ADO控件,)访问
数据库,二是在应用程序中直接使用ADO对象访问数据库。 ADO控件是一种ActiveX控件,它实际上是把ADO的多个功能结合
在一个可视化的控件中。使用该控件操作数据库,可以不用像ADO对象那样需要编写许多代码,在可视化的环境上就可以直接完成许多操作。12
.2.2 ADO控件 ADO控件不是VB的标准控件,因此在使用之前必须将其添加到工具箱中。 1.ADO控件的
常用属性 (1) ConnectionString属性:是一个字符串,用于设置ADO控件与数据源连接的连接信息,可为O
LEDB文件(.udl)、ODBC数据源(.dsn)或OLEDB连接字符串。 (2) RecordSource属性:设
置可操作的数据源,即记录集的内容。根据CommandType属性指定的类型,其值可为一个数据表名、一条SQL语句或一个存储过程名。
ADO控件 (3) CommandType 属性:指定RecordSource属性的取值范围(类型)。
ADO控件的大部分属性可以通过“属性页”对话框设置。 【例12.1】假设在本地计算机中有一个Access 2003数据库
“D:\st.mdb”,数据库中包含“学生表”和“学籍表”两个表,建立ADO控件与该数据库的连接步骤如下: (1)在窗体上创建
一个Adodc1对象.。 (2)在快捷菜单中选择“ADODC属性”命令,打开“属性页”对话框。 (3)在“通用”选项卡的“
连接资源”框中选中“使用连接字符串”,然后单击“生成”按钮,打开“数据链接属性”对话框;在“提供程序”选项卡中选择合适的OLE D
B数据源,因为要连接的数据库D:\st.mdb属于Access 2003数据库,则选择“Microsoft Jet 4.0 OLE
DB Provider”选项。 (4)在“连接”选项卡的“选择或输入数据库名称”中指定数据库文件“D:\st.mdb” 此时在
“使用连接字符串”文本框中已经生成完整的连接字符串:Provider=Microsoft.Jet.OLEDB.4.0; Data
Source = D:\st.mdb;Persist Security Info=False。 (5)在“记录源”选项卡中,可以
选择命令类型、表或存储过程名称,本例选择“命令类型”为“2 - adCmdTable”,再选择相应的表“学生表”。例12.1
2.ADO控件的主要方法 Refresh方法用于激活或刷新ADO控件的连接属性,并重新建立记录集。 3
.ADODC的主要事件 ADO控件可响应的事件,除MouseDown,MouseUp,MouseMove等常用事
件外,还有一组反映数据库变动的特殊事件,如WillMove、MoveComplete、WillChangField事件等。 12
.2.3 数据绑定 ADO控件可以使应用程序与数据库联系起来,并操作数据库中的数据,但它本身却不能直接显示
记录集中的数据,必须通过能与其绑定的控件来实现。 ADO数据绑定控件可以是标签、文本框、列表框等标准控件,也可以是
专门与ADO控件绑定的ActiveX控件,如数据列表控件(DataList)、数据组合框控件(DataCombo)、数据网格控件(
DataGrid)等等。 DataGrid控件是一种类似于表格的数据绑定控件,用于浏览和编辑完整的数据表或查询。
DataGrid控件可以绑定到整个记录集,而DataList和DataCombo两个控件只能绑定到记录集的某一个字段
。1. 简单数据绑定控件 最常用的简单数据绑定控件是标签、文本框、、图片框等,每个简单数据绑定控件仅显示记录集中的一个字段
值。 要使数据绑定控件连接到记录集并显示某个字段的值,需对这些控件的两个属性进行设置: (1) DataSource
属性:通过指定一个ADO控件将数据绑定控件连接到数据源。 (2) DataField属性:指定记录集中的字段,使数据绑定控件
与其建立联系。 例12.2 浏览“学生表”的记录信息。前面例12.1已经建立了ADO控件与数据库“D:\st.mdb”的连接
,并设置记录源为“学生表”,本例在例12.1的基础上,在窗体上添加5个文本框Text1~Text5,分别绑定“学生表”的5个字段,
并通过ADO控件来控制显示表中各个记录的信息。 (1) 在窗体上添加5个文本框Text1~Text5。 (2)文本框(
Text1~Text5)作为数据绑定控件 DataSource属性设定为Adodc1 DataField属性分别为:学号、姓名、性
别、出生日期和班级 (3)本例利用ADO控件和数据绑定控件实现简单的查询功能,不需要编写任何程序代码。 运行该工程后自
动显示如图12.10所示。5个文本框分别显示“学生表”中的学号、姓名、性别、出生日期和班级5个字段的内容 单击ADO控件的
4个箭头按钮可分别移动到首记录、上一记录、下一记录和末记录,使其成为当前记录。还可以编辑数据。如果改变某个字段的值,只要移动记录,
所作的修改便存入数据库中。例12.22. 高级数据绑定控件 VB提供了一些高级数据绑定控件DataList(数据列表控件
)、DataCombo(数据组合框控件)、DataGrid(数据网格控件)等,这些控件具有很强的数据操作功能。
DataList和DataCombo两个控件只能绑定到记录集的某一个字段,而DataGrid控件可以绑定到整个记录集。
(1)DataList和DataCombo控件 常用属性见p249 (2)D
ataGrid控件 常用属性见p249 例12.3 本例在例12.1的基础上,添加1个Data
Grid控件,以表格形式显示“学生表”中的记录信息,并使之具有数据编辑功能。 (1) 在“部件”对话框的“控件”选项卡中,
选中“Microsoft DataGrid Comtrol 6.0(OLEDB)”,将DataGrid控件添加到工具箱。 (
2)在窗体上建立一个DataGrid控件对象,并将DataGrid控件调整到适当的大小。如图12.11所示, (3) 设置D
ataGrid控件的属性。 ①设置DataSource属性为Adodc1,即可在DataGrid控件提供的表格上显示记录集
的全部数据。 ②将AllowAddNew、AllowDelete、AllowUpdate 3个属性都设置为True,即可对
“学生表”进行添加、删除与与修改数据操作。 (4)本例利用ADO控件和DataGrid控件实现记录集的查询、编辑功能,不需要编
写任何程序代码。 运行该工程后显示如图12.12所示。DataGrid控件以表格形式自动显示“学生表”中的数据,表格的列标题
显示表对应的字段名 单击ADO控件的4个箭头按钮,或拖动DataGrid控件的垂直滚动条或水平滚动条,可浏览记录集中的全部
记录。 除了可以浏览表中的记录外,还可以编辑数据。 例12.312.2.4 记录集对象 程序运行时,VB会根据
ADO控件设置的属性确定了可以访问的数据,这些数据就构成了记录集Recordset。 记录集表示的是来自基本表或SQ
L命令执行的结果所形成的数据集合,其结构与表类似。ADO控件对数据库的操作实际上都是通过Recordset对象完成的。
1. 记录集对象的常用属性 (1) AbsolutePosition属性:指定Recordset对象当前记录
的序号位置。序号从0开始,即第一个记录的AbsolutePosition值为0。 (2) BOF、EOF属性:如果记
录指针位于Recordset对象的最后一个记录之后(记录结束标志),则EOF值为True,否则为False。如果记录指针位于Rec
ordset对象的第一个记录之前(记录开始标志),则BOF值为True,否则为False。 (3) RecordCount
属性:表示Recordset对象中记录的总数。 (4) Fields属性:返回当前记录的指定字段的值。引用Field
s属性,常用以下之一种格式: ① 记录集对象名.Fields(字段序号) 字段序号从0开始,如:Ado
dc1.Recordset.Fields(1)。 ② 记录集对象名. Fields("字段名") 如
:Adodc1.Recordset.Fields(“姓名”) (可简写成: Adodc1.Rec
ordset("姓名")) ③记录集对象名![字段名](可简写成:记录集对象名!字段名) 如:Ado
dc1.Recordset![姓名] (或Adodc1.Recordset!姓名) 2. 记录集
对象的常用方法 (1) Move方法:移动记录集中的记录指针。 MovedFirst 移至第一个记
录 MoveLast 移至最后一个记录 MovePrevious 移至上一
个记录 MoveNext 移至下一个记录 Move [n] 向前或
向后移动n个记录 (2) AddNew方法:添加一条新记录。 (3) Delete方法:删除当前记录。 (4) Upd
ate方法:将修改后的记录内容保存到数据库中。 (5) CancelUpdate方法:取消数据更新。 (6) Find方法
:在记录集中查找符合指定条件的第一条记录 常用语法格式如下:Recordset.Find 条件字符串 示例
1:Adodc1.Recordset.find "学号=''104001''" 表示在Adodc1的记录
集中查找学号为104001的记录。 示例2:Adodc1.Recordset.find "学号=''" & xh
& "''" 表示在Adodc1的记录集中查找学号为xh(字符串变量)的记录。 【例12.4】
用4个命令按钮分别替代ADO控件上4个箭头按钮的操作功能,浏览“学生表”中的学生信息,并增加一个“查找”按钮,使用Find方法根据
学号来查找记录。 (1)在窗体上添加1个ADO控件Adodc1,设置5个文本框Text1~Text5用于显示学号、姓名、性
别、出生日期和班级等字段内容,设置5个命令按钮Command1~Command5用于执行“首记录”、“上一条”、“下一条”、“末记
录”、“查找”等功能。 (2)利用ADO控件的“属性页”对话框为Adodc1控件设置: Connection
String属性设定为学生数据库的路径及名称(D:\st.mdb) CommandType属性设定为2-adCmd
Table RecordSource属性设定为“学生表” 在“属性窗口”中将Adodc1控件的visible
属性设置为False,运行时将其隐藏。 文本框Text1~Text5作为数据绑定控件,其属性设置为: DataS
ource属性设定为Adodc1 DataField属性分别为学号、姓名、性别、出生日期和班级 Private Su
b Command1_Click() ''“首记录”按钮的事件过程 Adodc1.Recordset.Move
First ''移至第一条记录End SubPrivate Sub Command2_Click() ''
“上一条”按钮的事件过程 Adodc1.Recordset.MovePrevious ''移至上一条记录 If A
dodc1.Recordset.BOF Then ''若处于BOF,则定位第一条记录 Adodc1.Recor
dset.MoveFirst End IfEnd SubPrivate Sub Command3_Click()
''“下一条”按钮的事件过程 Adodc1.Recordset.MoveNext ''移至下一条记录
If Adodc1.Recordset.EOF Then ''若处于EOF,则定位最后一条记录 Adodc1.R
ecordset.MoveLast End IfEnd SubPrivate Sub Command4_Click()
''“末记录”按钮的事件过程 Adodc1.Recordset.MoveLast ''移至最后一条记录
End SubPrivate Sub Command5_Click() ''“查找”按钮的事件过程 Dim xh
As String xh = InputBox("输入学号") Adodc1.Recordset.MoveFirst
''定位于记录集的首记录处 Adodc1.Recordset.Find "学号=''" & xh & "''"
''查找指定的学号 If Adodc1.Recordset.EOF
Then ''若找不到,显示“无此学号” MsgB
ox "无此学号!" End IfEnd Sub例12.4 【例12.5】在例12.4的基础上,添加“新增”、“删除”
、“更新”、“撤消”和“结束”5个按钮,如图12.15所示,编写程序实现相应的功能。 新添加的5个按钮的Click事件过程如下
: Private Sub Command6_Click() ''“新增” Adodc1.Record
set.AddNew ''添加一条空记录 End Sub例12.5Private Sub Command7_
Click() ''“删除” Dim y As String y = MsgBox("要删除
该记录吗 ? ", vbYesNo, "删除记录") If y = vbYes Then
''选择Yes按钮 Adodc1.Recordset.Delete ''删除记录
Adodc1.Recordset.MoveNext ''显示下一记录 If Adodc1.Rec
ordset.EOF Then Adodc1.Recordset.MoveLast End If
End IfEnd SubPrivate Sub Command8_Click() ‘“更新”
Adodc1.Recordset.Update ''调用Update方法End SubPrivate S
ub Command9_Click() ''“撤消” Adodc1.Recordset.Canc
elUpdate ''调用ancelUpdate方法End Sub 【例12.6】利用ADO控件、DataGrid控
件和DataCombo控件,设计一个学生成绩查询程序。程序提供4种查询方式,即查询所有成绩信息、按学号查询、按班级查询和按课程查询
。 (1) 在窗体上添加2个ADO控件Adodc1和Adodc2,1个DataGrid1控件,1个DataCombo1控件,1
个框架控件Frame1,框架内设置1个单选按钮组(Option1(0)~Option1(3)。例12.6(2)各控件的作用如下:
①DataCombo1控件提供查询值列表(如学号列表),供用户从中选取。 ②DataGrid1控件用于显示成绩查询结果。
③DataCombo1控件和DataGrid1控件分别绑定到Adodc1控件和Adodc2控件上。 ④2个A
DO控件与数据库连接,为绑定控件提供数据源。 ⑤单选按钮控件数组Option1提供4种查询方式的选择。 (3)编写
程序代码 主要由两个事件过程Option1_Click() [单选按钮控件数组的单击事件过程]和Command1_Click
() [“查询”按钮的单击事件过程] 组成。 Option1_Click()过程的作用是根据不同的查询方式,使DataCom
bo1控件提供相应的检索项列表(如学号列表、班级列表、课程名列表)。 Command1_Click()过程的作用是根据不同
的查询方式和用户选取定的检索项,通过SQL语句来变动Adodc1控件的记录源,使DataGrid1控件显示出相应的查询结果。
Dim ind As Integer ‘ind表示单选按钮数组的选中项下标
‘ 即哪一种查询方式) Private Sub Form_Load() ind = 0
Option1(0).Value = True ‘开始时设置单选按钮组
''的第1项被选中 End SubPrivate Sub Option1_Click(Index As Int
eger) ''单选按钮控件数组的单击过程 ind = Index
''保存选中项的下标 DataCombo1.Text = “” ‘DataCombo1的文本
框内容 Select Case Index Case 0
‘查询所有成绩信息 Case 1 ‘按学号查询
Adodc2.RecordSource = "select 学号 from 学生表" ''设置记录源 Adod
c2.Refresh ''刷新与Adodc2控件相连接的记录集 DataCombo1.L
istField = "学号" ''设置列表项来自学生表的学号 Case 2
‘按班号查询 Adodc2.RecordSource = "Select Distinct
班级 From 学生表“ Adodc2.Refresh DataCombo1.ListField
= "班级" Case 3 ‘按课程查询
Adodc2.RecordSource = "Select Distinct 课程 From 成绩表" Adod
c2.Refresh DataCombo1.ListField = "课程" End SelectEnd Sub
Private Sub Command1_Click() ''"查询" Select Case ind
''根据查询方式(选中项的下标)进行判断 Case 0 ‘查询所有成绩信
息 Adodc1.RecordSource = "select from 成绩表" ''设置记录源
Case 1 ‘按学号查询 Adodc1.RecordSource = "s
elect from 成绩表 where " & _ "学号=''" & DataCombo1.Te
xt & "''" Case 2 ‘按班号查询 Adodc1.RecordSource=
"select 成绩表. from 成绩表,学生表 where " & _ "成绩表.学号=学生表.学号 and 班
级=''" & DataCombo1.Text & "''" Case 3 ‘按课程查询
Adodc1.RecordSource="select 成绩表. from 成绩表,学生表 where " & _
"成绩表.学号=学生表.学号 and 课程=''" _ & DataCombo1.Text & "''" End
Select Adodc1.Refresh ‘刷新End Sub12.3 ADO对象的使用
在应用程序中使用ADO对象也可以访问数据库。ADO对象是一个面向对象的数据库编程接口,它提供了若干个对象,每个对象都有相应的属性和
方法,通过这些对象来实现各种数据操作功能。 12.3.1 ADO对象模型 ADO对象模型定义了一个可编程的分层对
象集合,主要由三个对象成员Connection、Recordset和Command对象等组成。 (1)连接(Connectio
n)对象 Connection对象用于建立与数据源的连接。 (2)命令(Command)对象 Command对
象用于定义要对数据源执行的命令,主要用于提供一个通过SQL命令来操纵数据库的功能。 (3)记录集(Recordset)对象
Recordset对象代表记录集,它与Data的Recordset对象的功能及作用是一样的,同样可以进行数据记录的移动、搜
索、添加、更改、删除等。 要在VB程序中使用ADO对象时,必须选择“工程”菜单中的“引用”命令,为当前工程引用ADO的对象
库。 12.3.2 ADO对象变量的声明 使用ADO对象实现对数据库访问时,要先创建各种对象,再通过对象方法和属性来进
行操作。 声明对象变量的语句格式: Dim 对象变量名称As ADODB.对象类型 与数据
库有关的常用对象有DataBase对象、Table对象、RecordSet对象、Field对象、Index对象等。例如: Dim
cnnt As New ADODB.Connection ''声明一个连接对象变量cnnt Dim rst As New ADOD
B.Recordset ''声明一个记录集对象变量rst Dim fid As ADODB.Fields
''声明一个字段对象变量fid 例12.7 打开数据库“D:\st.mdb”,显示学生表中的所有记录信息。先向当前工程添加ADO
的对象库,然后编写代码:Private Sub Form_Load() Dim cnn As New ADODB.Connec
tion ''声明cnn为Connection对象 Dim rst As New ADODB.Records
et ''声明rst为Recordset对象 Dim strcnt As String, strsqlr
As String ''声明字符串变量 strcnt = "provider=microsoft.Jet.OLEDB.4.0
;data source=D:\st.mdb" cnn.Open strcnt
''打开数据库 strsqlr = "Select From 学生表" rst.Open strsqlr, cnn
''打开一个由SQL语句指定的记录集 Show rst.MoveFirst
''移动到记录集的第一条记录 Do While Not rst.EOF
''把记录集中的所有记录读完 Print rst!学号, rst!姓名, rst!性别, rs
t!出生日期, rst!班级 ‘显示各字段
值 rst.MoveNext ''移动到记录集的下一条记录 Loo
p rst.Close ''关闭记录集 cnn.Close
''断开数据库连接 Set cnn = Nothing
''释放对象变量End Sub例12.7 例12.8 打开数据库“D:\st.mdb”
,显示指定学生的所有成绩信息。 向当前工程添加ADO的对象库,并在窗体上设置“查询”和“结束”两个命令按钮。 Dim
cnn As New ADODB.Connection ''声明cnn为Connection对象 Dim rst A
s New ADODB.Recordset ‘声明rst为Recordset对象 Private Sub Form_Load() Dim strcnt As String chrs = "provider=microsoft.Jet.OLEDB.4.0;data " _ " source = D:\St.mdb" cnn.Open chrs ''打开数据库 End Sub Private Sub Command2_Click() ''“结束” cnn.Close ''断开数据库连接 Set cnn = Nothing ''释放对象变量 End End SubPrivate Sub Command1_Click() ''“查询” Dim xh As String,strsqlr As String Cls xh = InputBox("请输入学号") strsqlr = "Select From 成绩表 Where 学号=''" & _ xh & "''" rst.Open strsqlr,cnn ''打开一个由SQL语句指定的记录集 If rst.EOF Then ''找不到记录 MsgBox "查不该生成绩!" GoTo Exit_Sub ''转移到标号Exit_Sub指定的行 End If Show rst.MoveFirst ''移动到记录集的第一条记录 Do While Not rst.EOF ''一直把记录集中的所有记录读完 Print rst!学号, rst!课程, rst!成绩, rst!学分 rst.MoveNext ''移动到记录集的下一条记录 LoopExit_Sub: ''标号 rst.Close ''关闭记录集End Sub例12.8
献花(0)
+1
(本文系大高老师原创)