第10章 VB与数据库 237
图10.15 DBGrid控件的“属性页”
“属性”窗口显示整个DBGrid控件的属性。要设置单个的Column对象的属性,必须把DBGrid控件置为活动状态。将鼠标置于DBGrid控件区域,按下鼠标右键,再从DBGrid控件的弹出菜单中选择“Edit”(编辑)。使用弹出菜单来插入或删除列,或者剪切和粘贴列,或者追加新列,以此来调整列的设置。
在弹出菜单中选择属性可得到属性对话框,里面有不同题目的选项卡。每一个DBGrid控件都有属性页,每个Column对象也有它自己的选项卡。可以使用这些选项卡交互地设置作为一个整体的DBGrid控件或者单个选定的列属性。
· “General”选项卡显示出应用于整个DBGrid控件的属性并且在设计时可以确定取值。
· “Columns”选项卡显示出单个列的属性。如果选定多列,则Columns选项卡中最左边的列先被选择。设置Column对象属性不影响整体的DBGrid控件的属性。
· “颜色”选项卡允许选择所有DBGrid控件的颜色。Column对象的颜色不会受这些设置的影响。
· “字体”选项卡允许选择所有DBGrid控件和标题的字体。Column对象的字体不会受这些设置的影响。 如果一个单元格的文本太长,在单元格中显示不下,此文本会自动地在同一单元格折到下一行。要显示被折叠的文本,可以加宽单元格的Column对象的Width属性或DBGrid控件本身的RowHeight属性。
238 Visual Basic程序设计导学 10.4.3 DBGrid控件的运行操作
在运行时,DBGrid控件从基本Recordset对象中显示记录。即使在DBGrid控件中有多行被选中,也总是只有一个当前记录。此当前记录相应于Data控件的当前记录,可以用DBGrid控件的Bookmark属性对它进行设置或者检索。Bookmark属性提供了对基本Recordset对象的当前记录的访问。
正如其他的数据绑定控件,当在DBGrid控件中改变一个记录(或者一个记录中的任何字段)时,则基本记录集就会在移动到一个新记录(行)时被更新,假设它可以更新并且DBGrid控件的AllowUpdate属性设置为True。否则,就会出现一个可捕获的错误。
如果RecordSelectors属性为True,则通过单击该行的记录选择器图标可以选择一整行。 当选择一个单元格时,Col和Row属性就被设置了。该Column对象的Text与Value属性引用当前单元格的内容。可用SelStartCol和SelEndCol属性返回一个选定范围的起始列和结束列。
10.4.4 DBGrid控件的应用例子
本应用程序设计一个窗体,其如图10.16所示,窗体中包含的各控件及其属性设置如表10.3所列。
图10.16 DBGrid控件应用例子设计界面
表10.3 控件及其属性设置
控件名字 Command1 Command2 Data1
属性 Caption Caption Caption Connect DatabaseName DefaultCursorType DefaultType
设置值 \删除\\关闭\\\
\0 '默认游标 2 '使用 ODBC
第10章 VB与数据库 239 DBGrid1
Exclusive ReadOnly RecordsetType RecordSource AllowAddNew AllowDelete AllowUpdate DataSource DataMode HeadLines
0 'False 0 'False 1 'Dynaset \学生表\True True True data1 0-Bound 2
本例的执行界面如图10.17所示,将记录移动到第一个记录的下方时,便可以输入一个新记录了。如果将一个记录的所有字段值都删除,便可删除该记录,这样比较麻烦,为此,提供了一个删除记录命令按钮,当指向一个记录,然后单击该命令按钮便删除该记录。
图10.17 DBGrid控件应用例子执行界面
本例窗体上设计的事件过程如下:
Private Sub Command1_Click() Data1.Recordset.Delete End Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Data1_Reposition() Screen.MousePointer = vbDefault On Error Resume Next
Data1.Caption = \记录:\End Sub
240 Visual Basic程序设计导学 10.5 ADO Data控件
ADO Data控件(有时简称为ADO控件)与VB固有的Data控件相似。使用ADO Data控件,可以利用Microsoft ActiveX Data Objects(ADO)快速建立数据绑定控件和数据提供者之间的连接。
ADO Data控件可以实现以下功能:
· 连接一个本地数据库或远程数据库。
· 打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、存储过程或该数据库中的表的视图的记录集合。
· 将数据字段的数值传递给数据绑定控件,可以在这些控件中显示或更改这些数值。 · 添加新的记录,或根据更改显示在绑定的控件中的数据来更新一个数据库。 要使用ADO Data控件,单击“工程”菜单上的“部件”选项,并在“部件”对话框中选择“Microsoft ADO Data Control 6.0”,如图10.18所示。单击“确定”按钮,就可以在VB中的控件工具箱内看见它。通过数据控件可以直接对记录集进行访问,移动记录指针,不需要编写代码即可实现对数据库的操作。
图10.18 “工程”菜单的“部件”对话框
10.5.1 ADO Data控件的属性
ADO Data控件的常用属性如下:
第10章 VB与数据库 241 1. Align属性
用来把数据控件摆放在窗体的特定位置,有5个可选的位置。 · vbAlignNone 可以用鼠标指针拖动控件到窗口的任何位置。 · vbAlignTop 将控件放到窗口的顶端。 · vbAlignBottom 将控件放到窗口的底部。 · vbAlignLeft 将控件放到窗口的最左边。 · vbAlignRight 将控件放到窗口的最右边。 2. BOFAction和EOFAction属性
当移动数据库记录指针时,如果记录指针移动到BOF或EOF位置后,再向前或向后移动记录指针将发生错误。BOFAction和EOFAction属性指定当发生上述错误时,数据控件采取什么样的操作。BOFAction属性有两个可选常量:
· adDoMoveFirst:移动记录指针到第一个记录。
· adStayBOF:移动记录指针到记录的开始。记录指针移动到记录的开始位置时将引发数据控件的Validate事件和Reposition事件,这时可编写程序代码确定要执行的操作。 EOFAction属性有三个可选常量:
· adDoMoveLast:移动记录指针到最后一个记录。
· adStayEOF:移动记录指针到记录的结尾,同样可利用它所引发的事件编写程序代
码。
· adDoAddNew:当记录指针移动到文件尾部时,引发数据控件的Validate事件,然
后自动执行AddNew方法添加新记录,并在新记录上引发Reposition事件。 3. ConnectionString属性
ConnectionString属性用来建立到数据源的连接的信息。由于VB的ADO对象模型可以链接不同类型的数据库,所以在使用ADO Data控件时也能够通过ConnectionString属性来设置要链接的数据库。
在设计时,可以首先将ConnectionString属性设置为一个有效的连接字符串,也可以将ConnectionString属性设置为定义连接的文件名。该文件是由“数据链接”对话框产生的。
设置ConnectionString属性的步骤如下: (1)单击ADOData控件,并在“属性”窗口中单击ConnectionString属性的“...”按钮,出现如图10.19所示的“属性页”对话框。