关于recordset.find问题

hhlyjx_79 2002-04-19 03:42:47
为什么我查询老是查不到底一个记录????我把find最后面的1为0又会出现乱七八遭的问题~~~~~~~~
If (Command4.Caption = "查 询") Then
Adodc2.Recordset.Find strfind, 1, , 1
If (Adodc2.Recordset.EOF) Then
MsgBox ("没有找到符合条件的人!")
Command4.Caption = "查 询"
Exit Sub
End If
Command4.Caption = "下一个"
Else
Adodc2.Recordset.MoveNext
Adodc2.Recordset.Find strfind
If (Adodc2.Recordset.EOF) Then
MsgBox ("已经没有符合条件的人了!")
Command4.Caption = "查 询"
Exit Sub
End If
End If
...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
年糕 2002-04-19
  • 打赏
  • 举报
回复
最好用ado记录集(rs.filter strfind)
wuwu_7 2002-04-19
  • 打赏
  • 举报
回复
Adodc2.Recordset.Find strfind, 1, , 1
其中的第二个参数是控制在开始搜索之前跳过多少记录。你设置为1。
hhlyjx_79 2002-04-19
  • 打赏
  • 举报
回复
UP
hhlyjx_79 2002-04-19
  • 打赏
  • 举报
回复
strfind是正确的
除了第一条,其它的全部可以正确的查询到,不需要向前向后,每次都是从第一条记录开始向下查询
问题是出在第一条记录~~~~~
valiant 2002-04-19
  • 打赏
  • 举报
回复
strFind的格式,比如:
strFind ="state = 'WA'"
rexyudl 2002-04-19
  • 打赏
  • 举报
回复
Adodc2.Recordset.Find strfind, 1, , 1
试试更换成下面的语句!
Adodc2.Recordset.Filter="字段名='数据'"
Filter是过滤出数据库内符合条件的内容.
inforum 2002-04-19
  • 打赏
  • 举报
回复
给一个单选框让用户选择向前,向后查找
向前
Adodc2.Recordset.Find strfind, , adSearchForward
向后
Adodc2.Recordset.Find strfind, , adSearchBackward
nebular 2002-04-19
  • 打赏
  • 举报
回复
STRFIND是否正确
hhlyjx_79 2002-04-19
  • 打赏
  • 举报
回复
有没有人啊~~~~help
Option Explicit Dim Bupdata As Boolean Dim i As Integer Private Sub Cmbdegree_Click() If Cmbdegree.Text = "定制" Then FrmTable.Show Cmbdegree.ListIndex = 0 End If End Sub Private Sub Cmbdepart_Click() If Cmbdepart.Text = "定制" Then FrmTable.Show Cmbdepart.ListIndex = 0 End If End Sub Private Sub CmdAddNew_Click() If CmdAddNew.Caption = "添加" Then CmdAddNew.Caption = "确认" CmdDel.Enabled = False CmdOK.Enabled = False DataA.ReadOnly = False For i = 1 To 12 If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next i DataA.Recordset.AddNew Txt(0).Locked = False If FrmMain.cutable = "employee" Then DataA.Recordset.Fields(13) = frmLogin.EmploID DataA.Recordset.Fields(14) = Now If Opsex(0) Then DataA.Recordset.Fields(4) = "男" Else DataA.Recordset.Fields(4) = "女" End If DataA.Recordset.Fields(7) = Cmbdegree.Text DataA.Recordset.Fields(8) = Cmbdepart.Text ElseIf FrmMain.cutable = "leave" Then DataA.Recordset.Fields(8) = frmLogin.EmploID DataA.Recordset.Fields(9) = Now Else DataA.Recordset.Fields(13) = frmLogin.EmploID DataA.Recordset.Fields(14) = Now End If Txt(0).SetFocus Else 'OK If Txt(0).Text = "" Then MsgBox "不可以为空" Txt(0).SetFocus Exit Sub End If For i = 1 To 12 If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next i If FrmMain.cutable = "employee" Then DataB.Recordset.FindFirst "职工编号=" + Txt(0).Text If Not DataB.Recordset.NoMatch Then MsgBox "职员编号重复" Txt(0).Text = "" Txt(0).SetFocus Exit Sub End If ElseIf FrmMain.cutable = "leave" Then DataB.Recordset.FindFirst "假条编号=" + Txt(0).Text If Not DataB.Recordset.NoMatch Then MsgBox "假条编号重复" Txt(0).Text = "" Txt(0).SetFocus Exit Sub End If Else For i = 4 To 10 If Not IsNumeric(Txt(i).Text) Then MsgBox "not a number" Txt(i).SetFocus Exit Sub End If Next i DataB.Recordset.FindFirst "工资编号=" + Txt(0).Text If Not DataB.Recordset.NoMatch Then MsgBox "工资编号重复" Txt(0).Text = "" Txt(0).SetFocus Exit Sub End If End If DataA.Recordset.Update DataA.Recordset.MoveLast FrmMain.DataA.Refresh FrmMain.DataB.Refresh DataB.Refresh CmdAddNew.Caption = "添加" CmdDel.Enabled = True CmdOK.Enabled = True End If End Sub Private Sub CmdCacel_Click() If CmdAddNew.Caption = "确认" Then DataA.Recordset.CancelUpdate End If FrmMain.Enabled = True FrmMain.SetFocus Unload Me FrmMain.DataA.Refresh If FrmMain.cutable = "employee" Then FrmMain.DBGA.Columns("性别").Button = True FrmMain.DBGA.Columns("学历").Button = True FrmMain.DBGA.Columns("部门").Button = True End If End Sub Private Sub CmdDel_Click() DataA.ReadOnly = False DataA.Recordset.Delete DataA.Recordset.MoveNext If DataA.Recordset.EOF Then DataA.Recordset.MoveLast End If FrmMain.DataA.Refresh End Sub Private Sub cmdOK_Click() If Txt(0).Text = "" Then MsgBox "不可以为空" Txt(0).SetFocus Exit Sub End If Bupdata = False DataA.Recordset.Edit If FrmMain.cutable = "leave" Then DataA.Recordset.Fields(8) = frmLogin.EmploID DataA.Recordset.Fields(9) = Now ElseIf FrmMain.cutable = "employee" Then DataA.Recordset.Fields(13) = frmLogin.EmploID DataA.Recordset.Fields(14) = Now If Opsex(0) Then DataA.Recordset.Fields(4) = "男" Else DataA.Recordset.Fields(4) = "女" End If DataA.Recordset.Fields(7) = Cmbdegree.Text DataA.Recordset.Fields(8) = Cmbdepart.Text DataA.Recordset.Fields(13) = frmLogin.EmploID DataA.Recordset.Fields(14) = Now Else For i = 4 To 10 If Not IsNumeric(Txt(i).Text) Then MsgBox "not a number" Txt(i).SetFocus Exit Sub End If Next i DataA.Recordset.Fields(13) = frmLogin.EmploID DataA.Recordset.Fields(14) = Now End If For i = 1 To 12 If Txt(i).Text = "" Then Txt(i).Text = 0 'DataA.Recordset.Fields(i) = 0 Next i DataA.Recordset.Update FrmMain.DataA.Refresh DataB.Refresh End Sub Private Sub DataA_Validate(Action As Integer, Save As Integer) If Action = 11 And Bupdata Then Save = 0 End If End Sub Private Sub Lab_Click(Index As Integer) End Sub Private Sub Txt_KeyPress(Index As Integer, KeyAscii As Integer) If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And Index = 0 Then KeyAscii = 0 Exit Sub End If If FrmMain.cutable = "leave" And Index = 1 Then If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack Then KeyAscii = 0 Exit Sub End If End If If FrmMain.cutable = "salary" Then If Index <= 3 Then If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack Then KeyAscii = 0 Exit Sub End If End If If Index = 13 Then Exit Sub If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> vbKeyBack And KeyAscii <> 46 Then KeyAscii = 0 Exit Sub End If End If End Sub Private Sub Txt_change(Index As Integer) If Bupdata = False Then Bupdata = True If FrmMain.cutable = "salary" Then If Txt(Index).Text = "" Then Exit Sub If Index >= 4 And Index <= 6 Then Txt(7).Text = Val(Txt(4).Text) + Val(Txt(5).Text) + Val(Txt(6).Text) Txt(12).Text = Val(Txt(7).Text) - Val(Txt(11).Text) End If If Index >= 8 And Index <= 10 Then Txt(11).Text = Val(Txt(8).Text) + Val(Txt(9).Text) + Val(Txt(10).Text) Txt(12).Text = Val(Txt(7).Text) - Val(Txt(11).Text) End If End If End Sub Private Sub Form_Load() DataA.DatabaseName = App.Path + "\sm.mdb" DataB.DatabaseName = App.Path + "\sm.mdb" DataA.Caption = FrmMain.cutable DataA.RecordSource = "select * from " + FrmMain.cutable DataB.RecordSource = "select * from " + FrmMain.cutable DataA.Refresh Txt(0).Locked = True 'If FrmMain.DBGA.Row = 0 Then Exit Sub If FrmMain.cutable = "employee" Then 'employee For i = 0 To 12 Lab(i).Caption = DataA.Recordset.Fields(i).Name Next i Txt(0).DataField = DataA.Recordset.Fields(0).Name Txt(1).DataField = DataA.Recordset.Fields(1).Name Txt(2).DataField = DataA.Recordset.Fields(2).Name Txt(3).DataField = DataA.Recordset.Fields(3).Name Txt(4).Visible = False Txt(5).DataField = DataA.Recordset.Fields(5).Name Txt(6).DataField = DataA.Recordset.Fields(6).Name Txt(7).Visible = False Txt(8).Visible = False Txt(9).DataField = DataA.Recordset.Fields(9).Name Txt(10).DataField = DataA.Recordset.Fields(10).Name Txt(11).DataField = DataA.Recordset.Fields(11).Name Txt(12).DataField = DataA.Recordset.Fields(12).Name Txt(13).DataField = DataA.Recordset.Fields(15).Name If FrmMain.cuAp > -1 Then DataA.Recordset.Move (FrmMain.cuAp) Else DataA.Recordset.MoveFirst End If If DataA.Recordset.Fields(4) = "男" Then Opsex(0).Value = True Else Opsex(1).Value = True End If '设置lsdegree的显示项 For i = 0 To FrmMain.LsDegree.ListCount - 2 Cmbdegree.AddItem FrmMain.LsDegree.List(i) If FrmMain.LsDegree.List(i) = DataA.Recordset.Fields(7) Then Cmbdegree.ListIndex = i End If Next i If Cmbdegree.ListIndex = -1 Then Cmbdegree.AddItem DataA.Recordset.Fields(7) Cmbdegree.ListIndex = Cmbdegree.ListCount - 1 End If Cmbdegree.AddItem "定制" '设置lsdepart的显示项 For i = 0 To FrmMain.LsDepart.ListCount - 2 Cmbdepart.AddItem FrmMain.LsDepart.List(i) If FrmMain.LsDepart.List(i) = DataA.Recordset.Fields(8) Then Cmbdepart.ListIndex = i End If Next i If Cmbdepart.ListIndex = -1 Then Cmbdepart.AddItem DataA.Recordset.Fields(8) Cmbdepart.ListIndex = Cmbdepart.ListCount - 1 End If Cmbdepart.AddItem "定制" '设置完毕 ElseIf FrmMain.cutable = "leave" Then 'leave Txt(7).Visible = True Cmbdegree.Visible = False Cmbdepart.Visible = False Frame1.Visible = False For i = 8 To 12 Lab(i).Visible = False Txt(i).Visible = False Next i For i = 0 To 7 Lab(i).Caption = DataA.Recordset.Fields(i).Name Txt(i).DataField = DataA.Recordset.Fields(i).Name Next i Txt(13).DataField = DataA.Recordset.Fields(10).Name If FrmMain.cuAp > -1 Then DataA.Recordset.Move (FrmMain.cuAp) Else DataA.Recordset.MoveFirst End If Else 'salary Frame1.Visible = False Cmbdegree.Visible = False Cmbdepart.Visible = False For i = 0 To 12 Lab(i).Caption = DataA.Recordset.Fields(i).Name Txt(i).DataField = DataA.Recordset.Fields(i).Name Next i Txt(13).DataField = DataA.Recordset.Fields(15).Name Txt(7).Locked = True Txt(11).Locked = True Txt(12).Locked = True If FrmMain.cuAp > -1 Then DataA.Recordset.Move (FrmMain.cuAp) Else DataA.Recordset.MoveFirst End If End If End Sub Private Sub Form_Unload(Cancel As Integer) FrmMain.Enabled = True FrmMain.SetFocus Unload Me FrmMain.DataB.Refresh End Sub Option Explicit Const MxUser = 100 Public EmploID As Integer Public CurUser As String Public CurId As String Public CurPsw As String Dim user(MxUser), pws(MxUser), state(MxUser), Emplo(MxUser) As String Private Sub Form_Load() Dim i As Integer If App.PrevInstance Then MsgBox ("程序已经运行,不能再次装载。"), vbExclamation Unload Me End If '本段代码用于判定本程序是否已经装载于内存中,以避免程序的多重启动 i = 0 Open App.Path + "\user.ini" For Input As #1 Do While Not EOF(1) Input #1, user(i), pws(i), state(i), Emplo(i) If state(i) = "A" Then Combo1.AddItem user(i) End If i = i + 1 Loop Close #1 Combo1.ListIndex = 1 '在窗口装载阶段读取用户设置文件获取用户信息 并装载于用户列表框中 End Sub Private Sub CmdCancel_Click() Unload Me End End Sub Private Sub cmdOK_Click() If txtPassword = pws(Combo1.ListIndex) Then CurId = Combo1.ListIndex EmploID = Emplo(CurId) CurUser = user(CurId) CurPsw = pws(CurId) Me.Hide 'Load FrmMain FrmMain.Show Else MsgBox "Invalid Password, try again!", , "Login" txtPassword.SetFocus SendKeys "{Home}+{End}" End If End Sub Private Sub Form_Unload(Cancel As Integer) Unload Me End

7,787

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧