我在写了一个信息查询的小系统,通出输入姓名来查询,但是查询完了以后原有的数据也随之更改了,把数据都搞乱了!下面是我整个程序的代码,请大家指点一下!小弟多谢了!
Dim db As Database
Dim re As RecordsetPrivate Sub Command1_Click()
Data1.Recordset.AddNew
End SubPrivate Sub Command2_Click()Dim i
i = MsgBox("真的要删除当前记录吗?", vbYesNo + vbQuestion, "重要提示")
Select Case i
Case vbYes
Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MovePrevious
End If
Case vbNo
Data1.UpdateControls
End Select
End SubPrivate Sub Command3_Click()
Data1.UpdateControls
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
MsgBox "已经是第一个记录了!", vbInformation, "注意"
Data1.Recordset.MoveFirst
End If
End SubPrivate Sub Command4_Click()
Data1.UpdateControls
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
MsgBox "已经是最后一个记录了!", vbInformation, "注意"
Data1.Recordset.MoveLast
End If
End SubPrivate Sub Command5_Click()
Dim s
s = MsgBox("真的要修改数据吗!", vbYesNo + vbQuestion, "重要提示")
Select Case s
Case vbYes
Data1.UpdateRecord
Case vbNo
Data1.UpdateControls
End Select
End SubPrivate Sub Command6_Click()
Dim o
o = MsgBox("真的要退出系统吗?", vbYesNo + vbQuestion, "重要提示")
If o = vbYes Then
Unload Me
End If
End SubPrivate Sub Command7_Click()
On Error GoTo OOPS
Dim p
p = Trim(Text1.Text)
Set db = DBEngine.Workspaces(0).OpenDatabase("D:\职工休养\name.mdb")
Set re = db.OpenRecordset("select * from 职工休养表 where 姓名='" + p + "'", dbOpenDynaset)
If re.RecordCount > 0 Then
re.MoveLast
Text2.Item(0) = re("姓名")
Text2.Item(1) = re("年龄")
Text2.Item(2) = re("性别")
Text2.Item(3) = re("职务")
Text2.Item(4) = re("政治面貌")
Text2.Item(5) = re("民族")
Text2.Item(6) = re("所在单位")
Text2.Item(7) = re("荣誉称号")
Text2.Item(8) = re("备注")
Text1.Text = ""
OOPS:
MsgBox "找到了一条记录!", vbInformation, "查询结果"
End If
If re.RecordCount = 0 Then
MsgBox "没有找到您要找的记录!", vbInformation, "查询结果"
Text1.Text = ""
End If
End SubPrivate Sub Form_Load()
'Text1.Text.SetFocus
Dim str As String '定义
str = App.Path
If Right(str, 1) <> "\" Then
str = str + "\"
End If
Data1.DatabaseName = str & "\name"
Data1.RecordSource = "职工休养表"
Data1.Refresh
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 ThenCommand7_cilck
End If
End Sub
Dim db As Database
Dim re As RecordsetPrivate Sub Command1_Click()
Data1.Recordset.AddNew
End SubPrivate Sub Command2_Click()Dim i
i = MsgBox("真的要删除当前记录吗?", vbYesNo + vbQuestion, "重要提示")
Select Case i
Case vbYes
Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MovePrevious
End If
Case vbNo
Data1.UpdateControls
End Select
End SubPrivate Sub Command3_Click()
Data1.UpdateControls
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
MsgBox "已经是第一个记录了!", vbInformation, "注意"
Data1.Recordset.MoveFirst
End If
End SubPrivate Sub Command4_Click()
Data1.UpdateControls
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
MsgBox "已经是最后一个记录了!", vbInformation, "注意"
Data1.Recordset.MoveLast
End If
End SubPrivate Sub Command5_Click()
Dim s
s = MsgBox("真的要修改数据吗!", vbYesNo + vbQuestion, "重要提示")
Select Case s
Case vbYes
Data1.UpdateRecord
Case vbNo
Data1.UpdateControls
End Select
End SubPrivate Sub Command6_Click()
Dim o
o = MsgBox("真的要退出系统吗?", vbYesNo + vbQuestion, "重要提示")
If o = vbYes Then
Unload Me
End If
End SubPrivate Sub Command7_Click()
On Error GoTo OOPS
Dim p
p = Trim(Text1.Text)
Set db = DBEngine.Workspaces(0).OpenDatabase("D:\职工休养\name.mdb")
Set re = db.OpenRecordset("select * from 职工休养表 where 姓名='" + p + "'", dbOpenDynaset)
If re.RecordCount > 0 Then
re.MoveLast
Text2.Item(0) = re("姓名")
Text2.Item(1) = re("年龄")
Text2.Item(2) = re("性别")
Text2.Item(3) = re("职务")
Text2.Item(4) = re("政治面貌")
Text2.Item(5) = re("民族")
Text2.Item(6) = re("所在单位")
Text2.Item(7) = re("荣誉称号")
Text2.Item(8) = re("备注")
Text1.Text = ""
OOPS:
MsgBox "找到了一条记录!", vbInformation, "查询结果"
End If
If re.RecordCount = 0 Then
MsgBox "没有找到您要找的记录!", vbInformation, "查询结果"
Text1.Text = ""
End If
End SubPrivate Sub Form_Load()
'Text1.Text.SetFocus
Dim str As String '定义
str = App.Path
If Right(str, 1) <> "\" Then
str = str + "\"
End If
Data1.DatabaseName = str & "\name"
Data1.RecordSource = "职工休养表"
Data1.Refresh
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 ThenCommand7_cilck
End If
End Sub
解决方案 »
- 关于webbrowser的一个小问题,请教大家
- 用comm口与血压模块进行数据传输
- 打包问题求助:在有office2003的机器打包,客户机是office2000,可以吗
- 如何用vb实现一个打字练习的功能?
- 如何在TRUE Dbgrid表格中进行编辑及从下拉列表中选择?
- 怎样判断一个文件是否存在?怎样彻底删除一个文件?
- *******关于数据录入的讨论******在线等候,答者有分*********
- 如何实现vb6自动调试
- 在ado中,rs.moveprevious的使用有什么要求吗?好像默认的情况下不能moveprevious?
- 重分悬赏!!!!-----用什么方法可以跳过x个字节开始读随机文件?
- 请大家帮我解决一个问题!!!
- 如何控制数据在MSHFlexGrid控件中的显示
我想你还是改用ADO比较好一点.
If re.RecordCount > 0 Then
re.MoveLast
Text2.Item(0) = re("姓名")
Text2.Item(1) = re("年龄")
Text2.Item(2) = re("性别")
Text2.Item(3) = re("职务")
Text2.Item(4) = re("政治面貌")
Text2.Item(5) = re("民族")
Text2.Item(6) = re("所在单位")
Text2.Item(7) = re("荣誉称号")
Text2.Item(8) = re("备注")
Text1.Text = ""
我主要不知道查到数据以后怎么把它显示在TEXT的控件上,因为VB没有指针,不知道怎么定位在找到的记录上,听别个说可以定义游标,但我不知道怎么定义,能不能帮小弟讲解一下!还有就是请问有没有通用的查询代码?谢谢了!