我有3个combobox控件,combobox1表示年,combobox2表示月,combobox3表示日,我的日期字段是achievedate,我用table1.fieldbyname('achievedate').asstring:=combobox1.text+'-'+combobox2.text+'-'+combobox3.text;将日期送入库中,之后我用table查询大于某个日期的记录,同样,这个日期是用3个combobox表示的,其查询语句是:
with table do
begin
  active:=fasle;
  filer:='achievedate>'''+combobox1.text+'-'+combobox2.text+'-'+combobox3.text+'''';
  filtered:=true;
  active:=true;
end;
请问filer:='achievedate>'''+combobox1.text+'-'+combobox2.text+'-'+combobox3.text+''';这条语句对吗?我在运行时出现type mismatch in expression这种错误,是怎么回事?应该怎么改?

解决方案 »

  1.   

    ('achievedate').asstring:=combobox1.text+'-'+combobox2.text+'-'+combobox3.text;
    改为:
    ('achievedate').asdate:=combobox1.text+'-'+combobox2.text+'-'+combobox3.text;
      

  2.   

    楼上的,怎么不对啊,我一运行,就说出现Undeclared identifier: 'asdate'这个错误,说asdate没有定义,这是怎么回事呢?
      

  3.   

    你用的是什么数据库阿,不同的数据库对事件的定义是不同的,比如MYSQL就可以用字符串型写入一个时间,它自动就会转换,有的数据库系统就不会。
      

  4.   

    哦,我用的delphi创建表,他有date,time和datetimen类型