我在ADOQuery中判断一个输入的日期是不是合法,为什么这个代码 不执行,总是引发错误异常,我想达到的目的是在这个字段输入后自动检测数据,当焦点离开时判断值,如果不是有效数据则停止,焦点回到错误字段里面,请教高手如何解决?急!procedure TForm1.ADOQuery1TDATESetText(Sender: TField; const Text: String);
var lDate: TDateTime;
begin
if Sender.FieldName='Tdate' then
begin
  if TryStrToDate(ADOtable1.FieldValues['Tdate'],lDate) then
  ShowMessage('是日期')
else
  ShowMessage('不是日期');
end;
end;

解决方案 »

  1.   


    procedure TForm1.ADOQuery1TDATESetText(Sender: TField; const Text: String); 
    var lDate: TDateTime; 
    begin 
      if text = '' then exit;
      if Sender.FieldName='Tdate' then 
      begin 
        if TryStrToDate(text,lDate) then 
        ShowMessage('是日期') 
      else 
        ShowMessage('不是日期'); 
      end; 
    end; 
      

  2.   

    请问你是用控件显示在界面上给用户修改的,如果是DBGRID等类型的控件!你去看下!错误会不会是这些控件报的!
      

  3.   

    ADOtable1.FieldValues['Tdate']
    这样写是会有问题的, 最好不要这样子写
    这个SetText是Tdate的, 那么中要使用 Sender就会是 Tdate的Field, 不用现查多一次