我的查询条件是人为选取产生的.
表:是combobox1选取的;
字段:是combobox2选取的;
条件:是从edit1输入产生的
请问高手能不能帮我写出sql语句.本来想拷一张图上来呢,没想到拷不上来.
说的比较抽象,对不住各位高手大哥了.

解决方案 »

  1.   

    Sql:=' select '+comboBox2.text+' from '+combobox1.text+ ' where ' edit1.text;
    是这个意思吗?
    好多问题没考虑到:)
      

  2.   

    'select ' + comboBox2.text + ' from ' + combobox1.text + ' where ' + edit1.text
    zcm(我是一只猪,我有一个梦) 写的都对啊,不是这样吗?
      

  3.   

    zcm(我是一只猪,我有一个梦) ,谢谢你.
    我的做法是:
    sql.add('select *        from '+combobox1.text+'where'                                        +combobox2.text+'='+edit1.text)
    报出错.怎么回事?
      

  4.   

    二位大哥有QQ吗
    咱们QQ上聊吧
    那上面很流畅
      

  5.   

    如果条件是字符串,需加引号
    sql.add('select *        from '+combobox1.text+'where'                                        +combobox2.text+'='''+edit1.text+'')
      

  6.   

    sql.add('select * From ' + combobox1.Text+ ' where ' + combobox2.Text + '=' + ''''+edit1.Text+'''');绝对正确
    测试过的
      

  7.   

    你也可以用变量何存起来:
    var
      str :string;
    begin
      str := 'select * From ' + combobox1.Text+ ' where ' + combobox2.Text + '=' + ''''+edit1.Text+'''';  sql.add(str);
      open;
    end;
      

  8.   


    搞個很詳細的給樓主!
    首先!你要確保語句的正確!
    先定義一個字符變量!
    var
    s:string;
    begin
    //要判斷表名不能為空!
    if combobox1.text='' then
    begin
      showmessage('表名為空,不能執行');
      exit;//退出!
    end;
    //要判斷字段名不能為空!
    if combobox2.text='' then
    begin
      showmessage('字段名為空,不能執行');
      exit;//退出!
    end;
    s:='select '+combobox2.text+' from '+combobox1.text+' where 1=1';//加上where方便加上別的條件!1=1確保肯定能執行!
    if edit1.text<>'' then //有條件時
    begin
      s:=s+' and 條件字段='''+edit1.text+'''';//條件加入到語句中!
    end;
    query1.close;
    query1.sql.text:=s;//把語句寫入query控件!
    query1.open;  
    end;
      

  9.   

    这个语句对于ado也同样适用吗 ?
    忘了告诉大家了
    我这是Access2000数据库.
    出错是不是因为这个原因?
      

  10.   

    什么数据库不是问题,方法也很多,看你想怎么做
                  ①                     ②                       ③ 
    select '+combobox2.text+' from '+combobox1.text+' where '+edit1.text+'在这个查询中①②必须这样写,③却是问题,因为你可能是查询数字或者字符,如果是字符就按现在③的写法不会错,但如果是字符就要这样来写'''+edit1.text+'''
    你自己在加个控制来写两个不同查询语句来控制,如果① 不是就一个的话,建议你使用Tstringlist来写,方法如下
     for i:=0 to stringlist.count-1 do
        s:=s+stringlist[i];
    strsql:='select ' +s+' from '+combobox1.text+' where '+edit1.text+'
    如果还不知道怎么写,发信给我  
      

  11.   

    这是那个出错信息:
    [Microsoft][ODBC Microsoft Access 驱动程序]参数不足,期待是1.
      

  12.   

    测试连接是成功的.
    可能还是sql语句有问题,用query连接报错.
      

  13.   

    我记得好象在哪儿见过,说ADO的SQL有些地方是不一样的.
    具体的我没记住.
    就象ADO支持LIKE符吗?有没有人试过?
      

  14.   

    把个SQL显示出来,放在Access中执行一下嘛。