关于Select * From data Where 客户名='" & Combo1.Text & "'查询的问题,如果我输入具体的客户名称,查询是没有问题的,但是在COMBO1.TEXT里面有一个“ALL”选项,即查询所有的客户,我只能想到就是用IF来判断是否COMBO1.TEXT是“ALL”,如果是ALL,则不要WHERE后面的语句,但是我的程序里面有很多条件,我这里只是举例了一个,如果每个都用IF来判断的话十分麻烦。有没有其他的方法...,除了客户名,还有日期,还有年份,选择的条件太多了。

解决方案 »

  1.   

    要不把“ALL”改成别的字符串...使sql语句可以忽略“客户名”的条件
      

  2.   

    不行啊,還是要判斷是不是“ALL”的,不然好像沒辦法了!
      

  3.   

    那就用like吧,当选择ALL时把ALL换成空
      

  4.   

    好像真没好办法, yangao(QQ宝典) 说的还得判断呀
      

  5.   

    我觉得你这个combo本身的设置就不合理,怎么可能上面是客户的名字列表,下面又会出现日期,年份什么呢
    可以用两个combo来作,一个放大的类别:客户,日期,年分
    另一个放小的类别,如客户的名字列表等
    这样不容易产生误会,在sql的语句上也好实现
      

  6.   

    用like模糊查询就能解决问题 
    我的就是
    SELECT material_Id,material_Name FROM material WHERE (material_Name like+'%'+'" + combo1.Text + "'+'%')
      

  7.   

    把所有的記錄讀到一個記錄集中,然後用記錄集的find方法
      

  8.   

    是ALL的时候就是把“客户名”不为空的都要选出来对吗?
    这样的话你可以用“Is Not Null”来查找啦!
      

  9.   

    这个问题个人只能用判断,楼上的种种回答都用了判断,还有“SELECT material_Id,material_Name FROM material WHERE (material_Name like+'%'+'" + combo1.Text + "'+'%')”这条语句是行不通的!真是不能理解,你怎么想的,你可以自己试试,你连“%”的含义都没高清楚!
      

  10.   

    建議,先手工把Where 條件組出來,再組整個SQL
      

  11.   

    同一楼上:
    example:
    dim pp as string 
    select case  combo1.Text 
       case 条件1
           pp= where 1
       case 条件2
           pp= where 2
       case 条件3
           pp=where 3
    end select 
    最后select * from table & pp.
    如果很多情况要区分
      

  12.   

    if combo1.text="All" then
       if rs.state=adstateopen then 
          rs.close
          set rs=new adodb.recordset
       end if
       RsString="select 客户名 from data"
       rs.open RsString,Conn
    end if
      

  13.   

    用like模糊查询就能解决问题 
    where 客户名 like '" & comob1.text & "' 
    当你要ALL的时候,可以让combo1的值为空,什么也不填,他就会找出所有的值了