今天我碰到了和昨天一样的问题http://topic.csdn.net/u/20090220/16/21f4e65e-27d9-4326-bb3c-b53223bba97f.html这次无法回避了,因为我有一个按纽是‘增加记录’,代码如下:procedure TForm8.bsSkinButton1Click(Sender: TObject);
begin
adoquery1.Insert;
dbedit1.SetFocus;end;现在一增加就提示‘01不是有效的时期'

解决方案 »

  1.   

    问题代码procedure TForm8.ADOQuery1AfterScroll(DataSet: TDataSet);
    var
      sumday1:integer;
    begin
    sumday1:=DaysInMonth(Strtodate(DBEdit4.text+'-01'));
    edit2.Text:=FloatToStr(Round((StrToFloat(dbedit6.Text)/sumday1 )*StrToFloat(dbedit5.Text)));
    edit1.Text:=FloatToStr(StrToFloat(DBEdit17.Text)+StrToFloat(DBEdit14.Text)+StrToFloat(DBEdit15.Text)+StrToFloat(DBEdit16.Text));
    edit4.Text:=FloatToStr(StrToFloat(edit2.Text)+StrToFloat(DBEdit13.Text)+StrToFloat(DBEdit7.Text)+ StrToFloat(DBEdit8.Text)+StrToFloat(DBEdit9.Text)+StrToFloat(DBEdit10.Text)+StrToFloat(DBEdit11.Text)+StrToFloat(DBEdit12.Text));
    edit3.Text:=FloatToStr(StrToFloat(edit4.Text)-StrToFloat(edit1.Text));
    end;
      

  2.   

    估计是ADOQuery1AfterScroll后DBEdit4.text没有取到值
    procedure TForm8.ADOQuery1AfterScroll(DataSet: TDataSet);
    var
      sumday1:integer;
    begin
    sumday1:=DaysInMonth(Strtodate(ADOQuery1.fieldbyname('字段名').asstring+'-01'));
    //以下建议用ADOQuery1.fieldbyname('字段名').asstring替换试试
    edit2.Text:=FloatToStr(Round((StrToFloat(dbedit6.Text)/sumday1 )*StrToFloat(dbedit5.Text)));
    edit1.Text:=FloatToStr(StrToFloat(DBEdit17.Text)+StrToFloat(DBEdit14.Text)+StrToFloat(DBEdit15.Text)+StrToFloat(DBEdit16.Text));
    edit4.Text:=FloatToStr(StrToFloat(edit2.Text)+StrToFloat(DBEdit13.Text)+StrToFloat(DBEdit7.Text)+ StrToFloat(DBEdit8.Text)+StrToFloat(DBEdit9.Text)+StrToFloat(DBEdit10.Text)+StrToFloat(DBEdit11.Text)+StrToFloat(DBEdit12.Text));
    edit3.Text:=FloatToStr(StrToFloat(edit4.Text)-StrToFloat(edit1.Text));
    end;
      

  3.   

    adoquery1的 AppendNewRecord 的时候是不是对它赋了值?还有就是 -1 是手工输入进去的还是??
    你理解下: TrystrTodateTime 这个函数,要善于积累经验哦,兄弟