打印本文 打印本文  关闭窗口 关闭窗口  
VB基础教程:第九章第三节数据控件
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:46:48  文章录入:杜斌  责任编辑:杜斌

9.3    数据控件

1. 数据控件的建立

  VB工具箱中单击Data控件,在窗体上画出数据控件即可。

2. 数据控件的属性

属性名称

作用

Connect

指定数据控件所要连接的数据库类型,VB默认的是AccessMDB数据库,也可以连接DBFXLSODBC等数据库

DatabaseName

指定具体使用的数据库文件名,包括路径名

RecordSource

指定具体可访问的数据,这些数据构成记录集对象Recordset对象,可以是数据库中的单个表名、一个存储查询,也可以是SQL查询命令

RecordsetType

确定记录集类型,有三种: 0——Table(表); 1——Dynaset(动态,默认的) 2——Snapshot(快照)

BofAction

当记录指针指向记录集的开始时,确定数据控件该采取的操作:

0——控件重定位到第一个记录

1——移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件Validate

EofAction

当记录指针指向记录集的结束时,确定数据控件该采取的操作:

0——控件重定位到最后一个记录

1——移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件Validate

2——向记录集加入新的空记录,可以对新记录进行编辑,移动记录指针新记录写入数据库

  绑定控件、数据控件、数据库之间的关系:

  绑定控件的属性

        DataSource——通过一个有效的数据控件连接到一个数据库上。

        DataField——将数据库中的有效字段连接到绑定控件上。

  除了常规控件外,可以与Data数据控件绑定的控件有:

控件名称

部件名称

常用属性

MSFlexGrid

Microsoft  FlexGrid Control 6.0OLE DB

DataSourse

DBCombo

Microsoft Data Bound List Controls 6.0

DataFieldDataSourceListFieldRowSourceBoundColumn

DBList

DBGrid

Microsoft Data Bound Grid Control 5.0SP3

DataSourse

3.   数据控件的事件  

事件名称

触发时间

Reposition

发生在一条记录成为当前记录后。只要将记录指针从一条记录移动到另一条记录就会触发。

Validate

在一条不同的记录成为当前记录之前,Update 方法之前(用 UpdateRecord 方法保存数据时除外);以及 DeleteUnload Close 操作之前会发生该事件。它检查被数据控件绑定的控件内的数据是否发生变化。

语法:Private Sub Data_Validate(Action As Integer, Save As Integer) …… End Sub

   Validate事迹的 Action参数

Action

描述

Action

描述

0

取消对数据控件的操作

6

Update 操作

1

MoveFirst 方法

7

Delete 方法

2

MovePrevious 方法

8

Find 方法

3

MoveNext 方法

9

设置Bookmark 属性

4

MoveLast 方法。

10

Close 的方法

5

AddNew 方法

11

卸载窗体

4.  数据控件的常用方法

方法名称

作用

示例

Refresh

激活数据控件,使各用户对数据库的操作有效。

Data1.Refresh

UpdateControls

将数据从数据库中重新读到数据控件绑定的控件内,通过它可以终止用户对绑定控件内数据的修改。

放弃修改按钮代码:

Data1. UpdateControls

UpdateRecord

强制数据控件将绑定控件内的数据写入到数据库中,不再触发Validate事件

确认修改按钮代码:

Data1. UpdateRecord

5. 记录集的属性与方法

名称

作用

属性

AbsolutePostion

返回当前指针值,如果是第一条记录,其值为0;是只读属性

Bof / Eof

Bof判断记录指针是否在首记录之前,若是则为TrueEof判断记录指针是否在末记录之后,若是则为True

Bookmark

用于设置或返回当前指针的标签,可以用在在程序中重定位记录集的指针,其值采用字符串类型。

NoMatch

在记录集中进行查找时,如果找到相匹配的记录,则为Falue,找不到则为True

RecordCount

Recordset对象中的记录记数,为了准确起见,在记数前用MoveLast方法将记录指针移到最后一条记录上;是只读属性。

方法

Move

用于移动记录指针,共有5种方法:

MoveFirst——将指针移到第1条记录

MoveLast——将指针移到最后一条记录

MoveNext——将指针移到下一条记录

MovePrevious——将指针移到上一条记录

Move  n——将指针向前或向后移动n条记录

Find

在指定的Dynaset Snapshop类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录,共有4种方法:

FindFirst——从记录集的开始查找满足条件的第1条记录

FindLast——从记录集的尾部向前查找满足条件的第1条记录

FindNext——从当前记录开始查找满足条件的下一条记录

FindPrevious——从当前记录开始查找满足条件的上一条记录

语法格式举例:

Data1.Recordset.FindFirst "课程名='计算机基础' "

Find方法支持通配符,默认情况下忽略大小写,可以添加说明改变默认设置: Option Compare Text (与大小写无关)

       Option Compare Binary (与大小写有关)

如果找不到相匹配的记录,当前记录保持在查找的始发处;如果找到了,则指针定位到该记录。

Seek

使用该方法必需打开表的索引,它在Table表中查找与指定索引规则相符的第一条记录,并使其成为当前记录。

语法格式举例:

Data1.Recordset.Index= "课程名"

Data1.Recordset.Seek "=", "计算机基础"

6. 利用数据控件对数据库进行增、删、改操作

操作项目

操作方法

注意事项

增加记录

1) 调用AddNew方法:Data1.Recordset. AddNew

2) 给各字段赋值:Recordset.Fields("字段名")=值或在绑定控件中直接输入内容

3) 调用Update方法,将缓冲区内的数据写入数据库:

       Data1.Recordset. Update

4) 调用MoveLast方法显示新记录:

     Data1.Recordset. MoveLast

如果缺少第3)步而将指针移动到其他记录或关闭了记录,则所做的输入全部丢失;若没有第4)步。虽然加入了新记录,但记录指针自动返回到添加新记录前的位置上,并不显示新记录。

删除记录

1)    定位被删除记录使之成为当前记录(用MoveFind方法)

2)    调用Delete方法:Data1.Recordset. Delete

3)    调用MoveNext方法移动记录指针

使用Delete方法时,当前记录立即删除,但被数据库约束的绑定控件仍旧显示该记录的内容,故必须用第3)步刷新绑定控件。

修改记录

1) 调用Edit方法:Data1.Recordset. Edit

2) 给各字段赋值:在绑定控件中直接修改

3) 调用Update方法,确定所做的修改:

      Data1.Recordset. Update

如果要放弃对数据的所有修改,可在第3)步之前用Refresh方法,重读数据库,刷新记录。

打印本文 打印本文  关闭窗口 关闭窗口