数据库中的数据要最终显示给用户,就要使用数据约束控件,比如前面所使用的文本框以及VB所提供的其他普通约束数据控件,VB中还提供了多种高级约束数据控件,其中包括:高级约束数据网格控件(DBGrid)、高级约束列表控件(DBList)和高级约束组合框控件(DBCombo)。在默认的工具箱中,尚未加入这些控件,要使用它们,首先要先引用它们:右键点击工具箱选择“部件”,点击“MicrosoftDataBoundGridControl”复选框来加入网格控件,点击“MicrosoftDataBoundListControls5.0”加入列表控件和组合框控件。
高级约束数据网格控件(DBGrid)
高级约束数据网格控件显示并允许操作与其相连的记录集对象,DBGrid控件被称为“数据感知”的,即只要将其DataSource属性设置为Data控件(当然Data控件的DatabaseName和RecordSourse属性必须已经被正确设置)就能利用记录集来自动填充控件的网格,并且列头也由记录集对象自动设置。
换句话说,就是通过DBGrid控件所显示的二维网格,实际上可以形象地看到整个记录集的结构和内容。可以在代码中指定当前单元,或用户在运行时用鼠标或单元箭头键改变当前单元,然后进行单元内容的修改,单元可以单独或按行选中。用DBGrid控件的列Columns集合的Count属性和Recordset对象的RecordCount属性可以确定控件中的行和列的数目。
约束数据列表控件(DBList)与
约束数据组合框控件(DBCombo)
DBList与DBCombo控件是和数据相连的控件,它们能在列表中自动显示与之相连的Data控件的字段值,并可以有选择地更新其它的Data控件中相关表的字段。DBList和DBCombo控件的列表是通过简单地设置一些属性由和它们相连的Data控件的Recordset对象中的字段中的数据自动填加数据项,并且控件有能力更新在不同的Data控件的相关的Recordset对象中的字段,即用一个记录集中的某个字段值去更新另一个记录集中指定的一个字段的值。
DBList与DBCombo常用的属性:
·RowSource:作为控件列表区段的项目源使用的一个Data控件名,即用所指定的数据控件中的一个字段内容来填充列表控件的列表区;
·ListField:由RowSource指定的Data控件创建的Recordset中的一个字段名,用于填充列表;
·SelectedItem:由RowSource属性指定的在Recordset中的选定项目的书签(即选定的字段项目所在的记录)。
举例如下:在列表中选定一个人名,则在其它的几个文本框中就显示这个人的所有完整的信息。
开始一个新的工程,在窗体上放置一个Data控件,把它的DatabaseName设为“c:myfile.mdb”,RecordSource设置为“Phone”表;一个DBList控件,把RowSource设置为Data1,ListField设置为“姓名”;三个Text控件,把DataSource都设置为Data1,DataField分别为“姓名”、“电话”、“地址”。现在我们运行程序,就会看到第一条记录中的完整信息,但点击列表来选择其他的项目时则不会发生任何变化,这是因为没有指明列表框控件如何响应Click事件,导致Data不能重定位到记录集中与所点击项目匹配的新的记录,因此要在列表控件的Click事件中加入如下代码:
Data1.RecordSet.Bookmark=DBList1.SelectedItem
Bookmark属性标识记录集中的一行,通过设置这个属性,使Data控件重新定位到特定的行。控件的SelectedItem属性不是控件编辑框中显示的文本,而是所选字段所属的记录书签,这个代码使记录集中的Data控件重新定位,并更新窗体上的文本框约束数据控件。->