您现在的位置:首页 >> 网络教学 >> 数据库应用 >> 内容

数据控件

时间:2009-6-19 10:06:06 点击:3314

数据控件

现代计算机应用系统中,大多数信息存放于一个或多个中央数据库中,用户通过访问这些数据库来获取所需数据。 Visual Basic 提供了多种数据访问控件,可以访问多数流行的数据库,如 Microsoft Access SQL 服务器。

一、Data控件

数据控件(Data)是VB访问数据库最常用的工具之一,提供了一种方便地访问数据库中数据的方法,使用数据控件无须编写代码就可以对VB所支持的各种类型的数据库执行大部分数据访问操作。

Data控件属于VB的内部控件,可以直接在标准工具箱中找到它。在同一工程甚至同一窗体中可以添加多个Data控件,让每个控件连接到不同数据库或同一数据库的不同表,以实现多表访问。它还可以和代码一起查询满足SQL语句的表的记录。

使用Data控件可以访问多种数据库,包括Microsoft AccessMicrosoft FoxPro等。也可以使用Data控件访问Microsoft ExcelLotus 1-2-3及标准的ASCII文本文件。此外,Data控件还可以访问和操作远程的开放式数据库连接(ODBC)数据库,如Microsoft SQL ServerOracle等。

数据控件本身不能显示和直接修改记录,只能在与数据控件相关联的数据约束控件配合显示。可以作数据约束控件的标准控件有以下8种:文本框、标签、图片框、图像框、检查框、列表框、组合框、OLE控件。

二、Data控件的主要属性

1Connect属性

Connect属性用来指定该数据控件所要链接的数据库格式,默认值为Access,其他还包括dBASEFoxProExcel等。其可识别的数据库有:MDB文件、DBF文件、DB文件、DF文件和ODBC数据库

2DatabaseName属性

DatabaseName属性是用于确定数据控件使用的数据库的完整路径。如果链接的Access 数据库,就可单击按钮定位.mdb文件。例如,选择“C:\dbbook.mdb”数据库文件。

3RecordSource属性

RecordSource属性用于指定数据控件所链接的记录来源,可以是数据表名,也可以是查询名。在属性窗口中单击下拉箭头在列表中选出数据库中的记录来源。例如,选择学生信息表“Student”;如果只需要访问所有男生信息,则RecordSource可指定为SQL语句:

SELECT * FROM student WHERE 性别=‘男’

4RecordSetType属性

RecordSetType属性用于指定数据控件存放记录的类型,包含表类型记录集、动态集类型记录集和快照类型记录集,默认为动态集类型。

l        表类型记录集(Table):包含实际表中所有记录,这种类型可对记录进行添加、删除、修改、查询等操作,直接更新数据。其VB常量为VbRSTypeTable,值为0

l        动态集类型记录集(Dynaset):可以包含来自于一个或多个表中记录的集合,即能从多个表中组合数据,也可只包含所选择的字段。这种类型可以加快运行的速度,但不能自动更新数据。其VB常量为VbRSType Dynaset,值为1

l        快照类型记录集(Snapshot):与动态集类型记录集相似,但这种类型的记录集只能读不能更改数据。其VB常量为VbRSType Snapshot,值为2

5BOFActionEOFAction属性

在程序运行时,用户可以通过单击数据控件的指针按钮来前后移动记录。BOFAction属性是指示当用户移动到表开始时的动作,EOFAction指示在用户移动到结尾时的动作。

BOFAction属性值为0MoveFirst)是将第一条记录作为当前记录;为1BOF),则将当前定位在第一条记录之前(即记录的开头),同时,记录集的BOF值为True,并触发数据控件的Validate事件。

EOFAction属性值为0Move Last)是将最后一条记录作为当前记录;为1EOF)将当前定位在第一条记录之前(即记录的末尾),同时,记录集的EOF值为True,并触发数据控件的Validate事件;为2AddNew)时,若RecordSetType设置为Table Dynaset,则移动到记录末尾并自动添加一条新记录,此时可对新记录进行编辑,当再次移动记录指针时新记录被写入数据库,否则显示不支持“AddNew”操作的提示。

要使关联控件能被数据库约束,即让关联控件显示表内容,必须对控件的两个属性进行设置:

l        DataSource属性:通过指定一个有效的数据控件连接一个数据库。

l        DataField属性:设置数据库有效的字段。

[9-6]利用Data控件及文本框显示Student表中的记录信息。

首先,在窗体上放置一名为Data1Data控件,并设置DatabaseName为指定的Access数据库和RecordSource属性设置为“Student”,接着放置几个用于显示字段值的文本框,把它们的DataSource属性设置为“Data1”,DataField属性设置为有关的字段。程序运行结果如图9-12所示。

9-12 Data控件的使用

此程序没有编写一行代码就实现了数据的显示,说明了VB数据控件在数据处理方面的便捷性。

三、Data控件的主要事件

1Reposition事件

Reposition事件是当某一个新记录成为当前记录之后触发。通常利用该事件对当前记录的数据内容进行计算,触发该事件有以下几种原因:

l        单击数据控件的某个按钮,进行了记录的移动。

l        使用Move方法群组。

l        使用Find方法群组。

l        其他可改变当前记录的属性或方法。

例:在[9-6]中增加一个名为txtCsnf用于显示出生年份的文本框,由于Student表中没有“出生年份”字段,所以可按以下代码编写Data1Reposition事件来计算出生年份。

Private Sub Data1_Reposition()

    txtCsnf = Year(Now) - Val(txtNl)

End Sub

2Validate事件

Validate事件与Reposition事件不同,是当某一记录成为当前记录之前,或是在UpdateDeleteUnloadClose操作之前触发。事件的定义如下:

Private Sub Data1_Validate Action As Integer ,Save As Integer

其中:

l        Action:用来指示引发这种事件的操作,其设置值如表9-4所示。

l        Save:用来指定被连接的数据是否已修改。

9-4 Validate事件的Action参数

常数

描述

vbDataActionCancel

0

Sub 退出时取消操作。

vbDataActionMoveFirst

1

MoveFirst 方法。

vbDataActionMovePrevious

2

MovePrevious 方法

vbDataActionMoveNext

3

MoveNext 方法

vbDataActionMoveLast

4

MoveLast 方法。

vbDataActionAddNew

5

AddNew 方法

vbDataActionUpdate

6

Update 操作(不是 UpdateRecord

vbDataActionDelete

7

Delete 方法

vbDataActionFind

8

Find 方法

vbDataActionBookmark

9

Bookmark 属性已被设置。

vbDataActionClose

10

Close 的方法

vbDataActionUnload

11

窗体正在卸载。

[9-7]Validate事件触发时确定记录内容是否修改,如果不修改则恢复:

Private Sub Data1_Validate(Action As Integer, Save As Integer)

    Dim Msg

    If Save = True Then

        Msg = MsgBox("要保存修改吗?", vbYesNo)

        If Msg = vbNo Then

            Save = False

            Data1.UpdateControls ′恢复原先内容

        End If

    End If

End Sub

四、Data控件的主要方法

1Refresh方法

如果DatabaseNameReadOnlyExclusiveConnect属性的设置值发生改变,可以使用Refresh方法打开或重新打开数据库,以更新数据控件的集合内容。

2UpdateRecord方法

当约束控件的内容改变时,如果不移动记录指针,则数据库中的值不会改变,可通过调用UpdateRecord方法来确认对记录的修改,将约束控件中的数据强制写入数据库中。

3UpdateControls方法

UpdateControls方法可以从数据控件的记录集中再取回原先的记录内容,即恢复原先值(如[9-7]所示)。当在与数据控件绑定的控件中修改了记录内容,可以用UpdateControls方法使这些控件显示恢复原来的值。

4Close方法

Close方法主要用于关闭数据库或记录集,并将该对象设置为空。一般来说,在关闭之前要使用Update方法更新数据库或记录集中的数据,以保证数据的正确性。

作者:Admin  
相关文章
  • 没有相关文章
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4