sqltxt:='SELECT *FROM WorkNote WHERE WorkNote.Date Between #'
        +datetostr(DateTimePicker1.date)+'# And #'+datetostr(DateTimePicker2.date)+'#'; sqltxt:=sqltxt+'And WorkNote.YeWu='+Edit1.text;WorkNote.YeWu字段是文本类型,我做查询,怎么结果出现一个提示
参数 XXX 没有默认值
库里面确实有XXX啊,怎么查不出来呢?

解决方案 »

  1.   

    第一个可能
    *FROM 没空格
    第二个可能
    datetostr(DateTimePicker1.date)跟你的机器日期形式有关,出现了不是YYYYMMDD的形式
    第三个可能
    WorkNote.YeWu='+Edit1.text 值两侧没引号
    改为'WorkNote.YeWu='''+Edit1.text ''' '
      

  2.   

    参数 XXX 没有默认值 是sql语句不正确,不是指数据库中没这个值
      

  3.   

    sqltxt:='SELECT *FROM WorkNote WHERE WorkNote.Date Between #'
            +datetostr(DateTimePicker1.date)+'# And #'+datetostr(DateTimePicker2.date)+'#'; sqltxt:=sqltxt+' 空格 And WorkNote.YeWu='+quotedstr(Edit1.text);
      

  4.   

    试试这个
    sql:= format('select * from worknote where Date between ''%s'' and ''%s'' and yewu=''%s''',[datetostr(DateTimePicker1.date),datetostr(DateTimePicker2.date),Edit1.text]);
      

  5.   

    不用试验了
    Date是系统关键字,肯定出错!必须修改字段的名称
    字段命名的时候最好不要用单个单词来命名,你可以组合使用
    如:FromDate,ToDate 等等
      

  6.   


    date是关键字,要调用加上WorkNote.[date]
      

  7.   

    试了一下.好像又没错.
     楼主的XXX到底是个什么玩意儿?
      

  8.   

    谢谢各位的热心,不过各位好像都好没有说到点子上
    因为这样的SQL语句,如果我查询的不是文本类型的字段而是数字类型的字段的话就可以正常查询出来XXX=会计
      

  9.   

    sql:= format('select * from worknote where Date between ''%s'' and ''%s'' and yewu=''%s''',[datetostr(DateTimePicker1.date),datetostr(DateTimePicker2.date),Edit1.text]);
    有错???我倒~~~
      

  10.   

    谢谢各位的热心,不过各位好像都好没有说到点子上
    因为这样的SQL语句,如果我查询的不是文本类型的字段而是数字类型的字段的话就可以正常查询出来
    ================
    文本字段中内容肯定破坏了语句结构,加上引号
    WorkNote.YeWu='+Edit1.text 值两侧没引号
    改为'WorkNote.YeWu='''+Edit1.text ''' '
      

  11.   

    'WorkNote.YeWu='''+Edit1.text ''' '呵呵~~~
      

  12.   

    SELECT *
    FROM WorkNote
    WHERE WorkNote.Date Between #8/1/2004# And #8/30/200# And WorkNote.YeWu='会计';
    各位,我直接在ACCESS2003中输入的SQL查询,什么都没有查出
    而库中有字段为会计的,咋回事呢?