看你象个初学者,在数据库中查找最好不用循环的方法,数据库本身都提供快速的查询方法的。去学学SQL语句吧。

解决方案 »

  1.   

    在我的印象里,sql语句通常都是"select * from 表"的格式,它能达到我的目的吗?是不是用
    ado1.recordsource="select * from 表 while 条件"选出记录,然后再对ado1.recordset(字段)进行操作即可?这样速度会提高吗?
      

  2.   

    sigh...
    你真的要好好看看SQL语句的书了,
    select * from 表 where a = 1  and/or ....
    可以这样嘛。。
      

  3.   

    你确实该好好学学SQL,这方面的书到处都是
      

  4.   

    to tarkey:您的方法就是我前一条的方法吧?谢谢。
      

  5.   

    sigh...
    怎么说呢,你的哪一条方法里面有where?
    我只看到一个while.
    使用这种方法显然比你的那个循环的方法效率要高。
    由于数据库里面的数据排列是已经排序好的。
    所以在搜索的时候就可以使用折半查找等较好的算法,你的那种从头循环到尾的搜索
    方法实在不是个访问数据库的好方法:P
      

  6.   

    如果你用循环的方法,速度会有不可想象的慢,这在数据少时还看不出来。我以前还不会用SQL的时候就用循环,到用户那里后做一个回收数据的过程,大约需要半个小时到1个小时,后来用SQL语句只用了1分钟。想想差距有多大。
      

  7.   

    for i=0 to rs.recount-1
        if .. then
              执行动作
              exit for 
        end if
       rs.movenext
    next
            
      

  8.   

    可以这样:
    with rs
     .findfirst "fieldname=" & fieldvalue
     if not .nomatch then
       ...找到了,处理
     end if 
    end with
            while not rs.eof 
                  if .. then
                    执行动作
                  end if
                  rs.movenext
            wend
              
      

  9.   

    if rs.states<>adstateclosed then
       rs.close
    end ifrs.commandtext="select * from ... where ... order by ..."
    rs.open 
    if rs.recordcount<>0 then
       for i=1 to rs.recordcount do 
           if ... then
             ...
             exit sub
           end if
       next i
    end if
        
      

  10.   

    不好意思,我前面把where误写成while了,以后一定注意。
    to 各位:
    看来sql语句效率是高,那我也很愿意用sql!
    谢谢各位,请以后继续帮助!!