VB考试教程:使用Recordset对象

文章作者 100test 发表时间 2007:03:26 17:25:51
来源 100Test.Com百考试题网


三、使用Recordset对象

Recordset(记录集)对象代表你在程序中使用的数据。

在上面的程序中,曾使用一个名为RecordsetType(记录集类型)的数据属性指明数据库信息为一个表。在Visual Basic中,Recordset(记录集)是一个代表你正在程序中使用的数据库部分的对象。当把数据控件的RecordSource属性设置为表或查询的名称时,就定义了一个新的名为Recordset的对象。Recordset对象有它自己的一套特殊属性和方法,使你能查找、排序、添加和删除记录。

在下面的练习中,将使用Recordset对象在zgda.mdb数据库中按编号查找项目,并将它们显示出来。

1、在zgda.mdb中查找数据

在修改程序之前,为保护原始程序,请先以新文件名将它存盘。

1) 在文件菜单中,单击另存为窗体、另存为工程菜单项。以MyFindRec.frm、MyFindRec.vbp为文件名分别保存窗体和工程。

2)在窗体的左下方创建两个命令按钮对象,Caption属性分别设置为“查找”、“结束”。

3)添加代码。

Option Explicit
Dim prompt As String, searchSearchStr As String
Private Sub Command1_Click()
prompt$ = "输入要查找的编号:"
searchSearchStr$ = InputBox(prompt$, "搜索记录")
Data1.Recordset.Index = "Primarykey" 使用类名
Data1.Recordset.Seek "=", searchSearchStr 进行搜索。Seek方法可以查找匹配的记录。
If Data1.Recordset.NoMatch Then 如果不匹配
Data1.Recordset.MoveFirst 则取第1课记录
End If
End Sub

程序说明:

该事件过程显示一个查找对话框,以便用户能输入编号(SearchStr$)。接下来它使用Seek方法从头至尾对数据库“编号”字段进行搜索,直至找到匹配项或者搜索到表的结尾。如果未找到匹配项,Visual Basic将显示一条信息“No current record”,并且在第一个文本框中显示Recordset(记录集)的第一条记录。该事件过程所使用的Recordset属性和方法如下表所示:

Recordset属性或方法

说明
Index 用于定义查找和排序过程中所使用的数据库字段的属性
Seek 用于查找记录的方法。除=以外,关系运算符>=、>、<=和<也可用来将所查找的字符串与数据库中的文本进行比较
NoMatch 该属性的值为True时表示未查找到匹配项
MoveFirst 使Recordset的第一条记录成为当前记录的一个方法

2、向zgda.mdb数据库添加记录

在向数据库添加新记录时,应在设计模式下将数据对象的ReadOnly(只读)属性设定为False(假),然后使用事件过程中的AddNew(添加新记录)方法在数据库中添加新记录。当窗体中出现空白记录时,用户就可以在需要的字段中填写内容了,添加完毕后,将当前记录移动到数据库中的其它记录即可。用户移动到不同记录的较简单的方法是单击数据对象的一个按钮。当用户移动到其它记录时,新的记录就按字母顺序被插入数据库中了。下面的练习演示了如何使用ReadOnly属性和AddNew方法在数据库中插入新记录。在该过程中,InputBox函数为用户提供了一些可视化反馈信息。

注:AddNew方法用来向数据库添加一条新记录。

让用户向数据库中添加记录在修改程序之前,为保护原始程序,请先以新文件名保存原始程序。

1) 在File(文件)菜单中,单击Save MyFindRec.frm As(MyFindRec.frm另存为)菜单项。将MyFindRec窗体另存为MyAddRec.frm。使用Save Project As(工程另存为)菜单项将该工程另存为MyAddRec.vbp。

2)将Data1对象的ReadOnly属性设定为False。

3)在窗体的Find按钮右边再创建一个命令按钮对象Command3,并设置“Caption”属性为“添加”。

4)双击“添加”按纽,编写代码。

Private Sub Command3_Click()
Dim reply
prompt$ = "Enter the new record, and then click the left arrow button."
reply = MsgBox(prompt$, vbOKCancel, "Add Record")
If reply = vbOK Then if the user clicks OK
Text3.SetFocus move cursor to Title box
Data1.Recordset.AddNew and get new record
End If
End Sub

该过程首先向用户显示一个包含数据输入提示的对话框。MsgBox函数使用vbOKCancel参数(由Visual Basic定义的数字型常量)显示一个含有OK(是)和Cancel(取消)按钮的对话框。如果用户单击OK,AddNew方法将创建一条新记录。如果用户单击Cancel,则操作被取消。该事件过程还使用SetFocus方法使Text3文本框中得到输入焦点。SetFocus方法可用来激活任何一个可以得到输入焦点的对象。

现在你就可以使用“添加”按钮向数据库添加新记录了。

运行:单击“添加”按钮,程序显示Add Record对话框,单击OK按钮,窗体中出现新的空记录。按顺序输入新记录信息(按Tab键在字段间切换)。你可以使用“添加”铵钮向zgda.mdb数据库中添加任意条记录。


相关文章


VB考试教程:用FlexGrid控件来操纵数据
VB考试教程:探索ActiveX数据对象(ADO)
从一道测试题分析java中的方法重载(overload)
半斤八两(一个有趣的java题)
VB考试教程:使用Recordset对象
计算机等级考试二级JAVA题:JAVA代码查错
2006新版JAVA题解(JAVA简单数据类型)
VB考试教程:修改数据库
VB考试教程:使用数据对象浏览MicrosoftAccess数据库
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛