DateTimePicker控件,1899-12-30是它的最小日期,我要的是最近几年的就好了.但是我一用dbnavgitor的修改它就到了1899,我要的是2000以后开始的,这应该怎样改的啊?在线等哦,好象觉得不是很难,看源程序好象没有它的设置地方,看不出来,求救!

解决方案 »

  1.   

    Tform1.oncreate()
    begin
      datetimepicker1.date:=date;end;
      

  2.   

    能不能详细说明一下哦,我是新手,谢谢!
    还有一个问题就是:统计所有人的出勤次数是正确的,用的是SQL,利用COUNT as times许每个人的次数,但是针对于某个人的出勤次数查询就不对了,查询界面显示的出勤次数为所有人的总次数.用了Recordcount.这是什么问题哦?
      

  3.   

    1.
    设置datetimepicker控件的maxdate和mindate属性
    2.
    统计时查询条件设置不对
      

  4.   

    procedure TFrmmain.BtnquerydutyClick(Sender: TObject);var
        strEmpID:String;
        strDateStart,strDateEnd:String;
        TblEmp:TTable;
        begin
        if DlgQueryDuty.ShowModal=mrOK then
        begin
            //查找是否存在该员工
            TblEmp:=TTable.Create(self);
            TblEmp.DatabaseName:='CompDuty';
            TblEmp.TableName:='Employee';
            TblEmp.Filtered:=True;
            TblEmp.Filter:='Name='''+Trim(DlgQueryDuty.EditName.Text)+'''';
            TblEmp.Open;
            if TblEmp.Eof then
            begin
                Application.MessageBox('没有找到相应的员工!','系统提示');
                Exit;//退出
            end else
                strEmpID:=TblEmp.FieldByName('ID').AsString;
            TblEmp.Close;
            strDateStart:=FormatDateTime('yyyy-mm-dd 00:00:00',DlgQueryDuty.DTPickerStart.Date);
            strDateEnd:=FormatDateTime('yyyy-mm-dd 12:00:00',DlgQueryDuty.DTPickerEnd.Date);                with FrmDutyQueryed.Tb1Query do
            begin
                //如果表处于打开状态,先关闭它
                if Active then
                    Active:=False;
                Filter:='EmpID='+strEmpID+' and DutyDate >='''+strDateStart;
                Filter:=Filter+''' and DutyDate <='''+strDateEnd+'''';
                Filtered:=True;
                Active:=True;
                
                //查看是否找到相应的记录?如果找到,则显示这条记录
                if not Eof then
                begin
                    FrmDutyQueryed.Lb1Query.Caption:='查询结果:出勤'+IntToStr(recordCount)+'次';
                    FrmDutyQueryed.ShowModal;
                end
                else
                    Application.MessageBox('没有找到相应的出勤记录!','系统提示');
            end;
        end;end;
      

  5.   

    Filtered := false;
                Filter:='EmpID='+strEmpID+' and DutyDate >='''+strDateStart;
                Filter:=Filter+''' and DutyDate <='''+strDateEnd+'''';
                Filtered:=True;
                
      

  6.   

    我试了一下;其实按照你的代码执行后数据集的recordcount属性值也是过虑后的记录条数;
      

  7.   

    整个执行是对的,就是我执行上述代码是为了统计某个员工的出或次数,但是这个recordcount求出来的是所有员工到的总次数了,不知道是什么地方出问题了?求助啊