我在ADO中使用Filter筛选,运行后出现
project  project1.exe  raised  exceprion  class  EvarianTypeCastError  with  message  'Could  not  convert  variant  of  type  (Null)  into  type  (String)',process  stopped  Use  Step  or  Run  to  continue.  
不知道为何,不知谁可以给点什么建议阿  
如何在ADO中用一个按钮实现多个Edit.Text的查询 
用ADODataset查询,设有两个Edit.text(这当中的有数字型的或日期型的或文字型的数据在ACCESS中)或更多  
运用一个按钮进行查询,将结果倒入DBGrid  
能不能给个详细一点的样例,能用就给分。  
在下感激不尽,泪水涟涟  
一句话,编程菜鸟的苦哇!!!!!!!!!!!!!!

解决方案 »

  1.   

    看书吧,
    这里有恨多电子图书,
    www.codestudy.net
      

  2.   

    夸张了点吧。
    ADODataset.CommandText:='Select * from 表名 where 字段1 like '''+'%'+Edit1.Text+'%'+''' and 字段2 like '''+'%'+Edit2.Text+'%'+'''';
      

  3.   

    用这个语句:ADODataset.CommandText:='Select * from 表名 where 字段1 like '''+'%'+Edit1.Text+'%'+''' and 字段2 like '''+'%'+Edit2.Text+'%'+'''';
    运行时就会有Select * from 表名 where 字段1 like  ‘%输入的字符%’ and ‘%输入的字符2%’的对话框弹出
    改成这个样子后
        ADODataset1.Close;
        ADODataset1.CommandText:='Select * from sheet1 where rq like ''+Edit1.Text+'' or js like ''+Edit2.Text+''';
        Adodataset1.Open;
    又会有from语句错误的提示
    我的头都大了一圈
    帮帮忙解决一下,谢谢,在线等
      

  4.   

    ADODataset1.CommandText:='Select * from sheet1 where rq like ''+Edit1.Text+'' or js like ''+Edit2.Text+''';不能用
    按照 samcrm(阿靖) 讲的
        ADODataset1.CommandText:='Select * from sheet1 where rq like '''+Edit1.Text+''' or js like '''+Edit2.Text+'''';
    也是不行我急啊
      

  5.   

    拜托那位大侠
    给个能用的例子吧比如有两个Edit,一个为日期输入(对应的数据库字段为数字的),另一个为人员姓名(是文本的字段)
    使用ADODataSet、DataSource、DbGrid
    最后用按钮查询时候就输入到Dbgrid里面急等了,感谢不尽
      

  6.   

    EDIT.TEXT有没有用TRIM,或者可以试试 LIKE +'"'+....+'"',还有D5的TADODATASET我个觉得用起来有些BUG,你们说呢
      

  7.   

    对于时间的类型,要看你的是什么样的数据库: ACCESS,MS-SQL等等是不同的
      

  8.   

    我的机子是Winxp+Delphi7+Access2002谁能给个范例立即给分
      

  9.   

    哈哈,最好用format函数。直接用字符串赋值太乱了,容易出错:
    const 
      vSql='Select * from sheet1 where rq like ''%s'' or js like ''%s''  ';
    begin
     ADODataset1.close;
     ADODataset1.CommandText:=format(vSql,[Edit1.Text+'%',Edit2.Text+'%']);
     ADODataset1.open;
    end;
    注意vSql常量里的单引号的个数一定要正确哦。
      

  10.   

    不行
    还是不行
    我的头都快大了每次都是Run就会有出错,好像是数据库的错误但是我的数据库是最简单的,根本没空值的
    却会出现project project1.exe raised exceprion class EvarianTypeCastError with message 'Could not convert variant of type (Null) into type (String)',process stopped Use Step or Run to continue.,受不了了还有就是把project。pas的面板关掉,再进行编译,就可以得到文件
    然后运行程序,一查就错
    我晕到
    那位好心的大虾,可以给这样的例子看看,应该不是很大的
    要是可以的话,发到
    我真的很急的
      

  11.   

    怎么就没人做过这么简单的东西?给各详细点的Code看看多谢了
      

  12.   

    if FieldByName("姓名").AsString = Edit1.Text
      Result := True;
    else
      Result := False;
      

  13.   

    ->"比如有两个Edit,一个为日期输入(对应的数据库字段为数字的)"同志,我对你这句话不是很明白,怎么用数字型字段来存日期?在ACCESS里面,若是日期字段,查询的时候要加格式符“#”。不知你用数字型字段存日期是何用意?
      

  14.   

    刚才发现samcrm(阿靖)说得对的,查询是可以的
    但是如何去进行一个多个条件的查询,即有多个Edit文本框
    每个框可以填也可以不填
    然后可以得到一个总的Where语句
    可能要一个循环语句那位给各代码段
    立即结帖
      

  15.   

    回ppiy3670()
         这样方便阿
         反正怎么写,都是yyyymmdd的
         只要统一就好了
      

  16.   

    邮件被退回。你的Email写错了吗?