代码如下: 这段代码是有错误的,我每次找到的都是符合条件的第一条记录 我想找到所有符合条件的记录该怎么找 大家帮我看一下
Private Sub Command1_Click()
Dim names As String
dim rec as new adodb.recordset
Dim i As Integer
i = 0names = Form1.Text2.Text
 
rec.Open "select * from pinfo where dir like '%" & sname & "%'", con, adOpenKeyset, adLockOptimistic
z:
If Not rec.EOF And rec.RecordCount <> 0 Then
i = 1
 
List1.AddItem rec("pname")
rec.Close
rec.Open "select * from pinfo where dir like '%" & sname & "%'", con, adOpenKeyset, adLockOptimistic
GoTo z:
 
Else
If i = 0 Then '如果一条没找到
MsgBox "没有找到符合条件的照片,请重新输入", vbOKOnly, "查找照片"
End If
 
rec.Close
Exit Sub
End If

解决方案 »

  1.   

    记录集下移有什么用啊
    每次打开的时候不都直接select了吗\
      

  2.   

    一select不就到第一条吗 下移也没用啊
      

  3.   

    If Not rec.EOF And rec.RecordCount <> 0 Then
    i = 1
     do while not rec.eof
      List1.AddItem rec("pname")
      rec.movenext
     loop
    rec.Close
      

  4.   

    Private Sub Command1_Click() Dim names As String
    dim rec as new adodb.recordset
    Dim i As Integer
    i = 0 names = Form1.Text2.Text
             rec.CursorLocation = adUseClient
    rec.Open "select * from pinfo where dir like '%" & sname & "%'", con, adOpenKeyset, adLockOptimistic'z:
    if rec.recordcount<>0 then
    do while not rec.eof

    'If Not rec.EOF And rec.RecordCount <> 0 Then
    ' i = 1
     
    List1.AddItem rec("pname")
    rec.movenext
    loop
    ' rec.Close
    ' rec.Open "select * from pinfo where dir like '%" & sname & "%'", con, adOpenKeyset, adLockOptimistic
    ' GoTo z:
     
    Else
    'If i = 0 Then '如果一条没找到
    MsgBox "没有找到符合条件的照片,请重新输入", vbOKOnly, "查找照片"
    End If
     
    rec.Close
    'Exit Sub
    End If你这样试试!!!
      

  5.   

    搞不懂你所說的所有記錄和想要的記錄是什麼意思?看你的代碼也沒有對打開的記錄集再進行一個判斷,然後再AddItem啊。我覺得applekiller() 的辦法是能實現你的效果的,照你的代碼來看,你要的東西就是這樣。
      

  6.   

    hr88rong(阿榕) 这样还是有问题啊,关闭recordset后,再一次查找还是找到上一次找到的记录啊,你给的方法仍然没有解决啊
    ling242a()  是这样的 好比说我想找"pname"字段中含"names"的记录 然后把找到的所有记录添加的list中
    对了 这么定义的的那个names错了 应该是sname对了 select的语句是只找到一个记录吗?还是找出所有的
    我就想找到这个表中所有"pname"字段中含"names"的记录 该怎么写select呢
      

  7.   

    pname是表中的字段名吗?如是你为什么写SQL的时候要用dir like啊。下面是我根据我的理解写出来的,pname是字段名,sname是要查询的值。
    Private Sub Command1_Click()
    Dim sname As String
    dim rec as new adodb.recordset
    Dim i As Integer
    i = 0sname = Form1.Text2.Text
     
    rec.Open "select * from pinfo where pname like '%" & sname & "%'", con, adOpenKeyset, adLockOptimistic
    do until rec.eof
       list1.additem rec("pname")
       rec.movenext
    loop 
    rec.Close
    End Sub
      

  8.   

    结帖 原来我以为select语句执行一次只找到一条符合条件的记录呢 原来所有的都可以找到
    而且movenext是移动找到的记录 不是顺序移动记录 明白了