我是用vb和access编的数库查询.
在list1 里显示的是图书编号和书名,用其它文本框显示是详细信息,列表中选中的详细将在文本框吧显示出来.
发现查询中出了这样一个事,如果不选中可多次查询,选中后,文本框能正常显示,但进行下次查询时,编译不过,说是 .movefirst语句出错,希望大虾们帮忙.程序如下:Private Sub Command1_Click()
Frame1.Enabled = True
Dim table As Recordset
Set table = Data1.Recordset  '文本框用data事件连接的.
table.MoveFirst '这句在第二次查询中出错.
  Do
  If InStr(table.Fields(Combo1.Text), Trim(Text1.Text)) Then
     List1.AddItem table.Fields("图书编号") & " " & table.Fields("书名")
  End If
  table.MoveNext
Loop Until table.EOF
End Sub

解决方案 »

  1.   

    其实出错是在清除之后出显的,不知道有没有关系.
    清除程序如下:
    List1.Clear
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    Text4.Text = ""
    Text5.Text = ""
      

  2.   

    试一试函数退出前关闭记录集table.Close
      

  3.   

    第一次循环结束后table这个纪录集处于eof状态,此状态下纪录集将不允许操作。
    如果你用文本框绑定做,应该refresh数据源,并重新打开table。
    多说两句建议,文本框绑定初学时较易上手,但真要做程序不能使用这种方法,应该自己写代码读取数据库并对文本框赋值,而且纪录集打开后应该及时关闭
      

  4.   


     学会使用ado ,用sql操作数据库。