数据控件
1. 数据控件的建立
从VB工具箱中单击Data控件,在窗体上画出数据控件即可。 2. 数据控件的属性 属性名称 作用 指定数据控件所要连接的数据库类型,VB默认的是Access的MDBConnect 数据库,也可以连接DBF、XLS、ODBC等数据库 DatabaseName 指定具体使用的数据库文件名,包括路径名 指定具体可访问的数据,这些数据构成记录集对象Recordset对RecordSource 象,可以是数据库中的单个表名、一个存储查询,也可以是SQL查询命令 确定记录集类型,有三种: 0——Table(表); 1——DynasetRecordsetType (动态,默认的) ;2——Snapshot(快照) 当记录指针指向记录集的开始时,确定数据控件该采取的操作: BofAction 0——控件重定位到第一个记录 1——移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件Validate 当记录指针指向记录集的结束时,确定数据控件该采取的操作: 0——控件重定位到最后一个记录 EofAction 1——移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件Validate 2——向记录集加入新的空记录,可以对新记录进行编辑,移动记录指针新记录写入数据库 绑定控件、数据控件、数据库之间的关系:
绑定控件的属性:DataSource——通过一个有效的数据控件连接到一个数据库上。
DataField——将数据库中的有效字段连接到绑定控件上。 除了常规控件外,可以与Data数据控件绑定的控件有:
控件名称 部件名称 常用属性 MSFlexGrid Microsoft FlexGrid Control 6.0(OLE DataSourse DB) DBCombo Microsoft Data Bound List Controls DataField、DataSource、6.0 ListField、RowSource、DBList 第 2 页 共 4 页
BoundColumn DBGrid Microsoft Data Bound Grid Control DataSourse 5.0(SP3) 3. 数据控件的事件
触发时间 发生在一条记录成为当前记录后。只要将记录指针从一条记录移动Reposition 到另一条记录就会触发。 在一条不同的记录成为当前记录之前,Update 方法之前(用 UpdateRecord 方法保存数据时除外);以及 Delete、Unload 或 Close 操作之前会发生该事件。它检查被数据控件绑定的控件内的Validate 数据是否发生变化。 语法:Private Sub Data_Validate(Action As Integer, Save As Integer) …… End Sub Validate事迹的 Action参数 Action值 描述 0 取消对数据控件的操作 1 MoveFirst 方法 2 MovePrevious 方法 3 MoveNext 方法 4 MoveLast 方法。 5 AddNew 方法 4. 数据控件的常用方法
作用 示例 激活数据控件,使各用户对数据库的操作有Refresh Data1.Refresh 效。 放弃修改按钮代码: 将数据从数据库中重新读到数据控件绑定UpdateControls 的控件内,通过它可以终止用户对绑定控件Data1. 内数据的修改。 UpdateControls 确认修改按钮代码: 强制数据控件将绑定控件内的数据写入到UpdateRecord Data1. 数据库中,不再触发Validate事件 UpdateRecord 5. 记录集的属性与方法 方法名称 Action值 6 7 8 9 10 11 描述 Update 操作 Delete 方法 Find 方法 设置Bookmark 属性 Close 的方法 卸载窗体 事件名称 第 3 页 共 4 页
作用 返回当前指针值,如果是第一条记录,其值为0;是只读AbsolutePostion 属性 Bof判断记录指针是否在首记录之前,若是则为True;EofBof / Eof 判断记录指针是否在末记录之后,若是则为True 用于设置或返回当前指针的标签,可以用在在程序中重定Bookmark 属性 位记录集的指针,其值采用字符串类型。 在记录集中进行查找时,如果找到相匹配的记录,则为NoMatch Falue,找不到则为True。 对Recordset对象中的记录记数,为了准确起见,在记数RecordCount 前用MoveLast方法将记录指针移到最后一条记录上;是只读属性。 用于移动记录指针,共有5种方法: MoveFirst——将指针移到第1条记录 MoveLast——将指针移到最后一条记录 Move MoveNext——将指针移到下一条记录 MovePrevious——将指针移到上一条记录 Move n——将指针向前或向后移动n条记录 在指定的Dynaset或 Snapshop类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录,共有4种方法: FindFirst——从记录集的开始查找满足条件的第1条记录 FindLast——从记录集的尾部向前查找满足条件的第1条记录 Find FindNext——从当前记录开始查找满足条件的下一条记录 FindPrevious——从当前记录开始查找满足条件的上一条记录 语法格式举例: Data1.Recordset.FindFirst \"课程名='计算机基础' \" Find方法支持通配符,默认情况下忽略大小写,可以添加说明改变默认设置: Option Compare Text (与大小名称 方法 第 4 页 共 4 页
写无关) Option Compare Binary (与大小写有关) 如果找不到相匹配的记录,当前记录保持在查找的始发处;如果找到了,则指针定位到该记录。 使用该方法必需打开表的索引,它在Table表中查找与指定索引规则相符的第一条记录,并使其成为当前记录。 Seek 语法格式举例: Data1.Recordset.Index= \"课程名\" Data1.Recordset.Seek \"=\计算机基础\" 6. 利用数据控件对数据库进行增、删、改操作 操作项目 操作方法 1) 调用AddNew方法:Data1.Recordset. AddNew 注意事项 如果缺少第3)步而将指2) 给各字段赋值:Recordset.Fields(\"字段针移动到其他记录或关闭了记录,则所做的输名\")=值或在绑定控件中直接输入内容 入全部丢失;若没有第增加记录 3) 调用Update方法,将缓冲区内的数据写4)步。虽然加入了新记入数据库:Data1.Recordset. Update 录,但记录指针自动返回到添加新记录前的位4) 调用MoveLast方法显示新记录: 置上,并不显示新记录。 Data1.Recordset. MoveLast 1) 定位被删除记录使之成为当前记录(用使用Delete方法时,当Move或Find方法) 前记录立即删除,但被数据库约束的绑定控件删除记录 2) 调用Delete方法:Data1.Recordset. 仍旧显示该记录的内Delete 容,故必须用第3)步刷新绑定控件。 3) 调用MoveNext方法移动记录指针 1) 调用Edit方法:Data1.Recordset. Edit 如果要放弃对数据的所2) 给各字段赋值:在绑定控件中直接修改 有修改,可在第3)步之修改记录 前用Refresh方法,重3) 调用Update方法,确定所做的修改: 读数据库,刷新记录。 Data1.Recordset. Update
因篇幅问题不能全部显示,请点此查看更多更全内容