*---------------------- Location Section ------------------------ * Library: Acustomcontrols.vcx * Class: Txtdate * Method: Rangelow() *----------------------- Usage Section -------------------------- *) Description: *) * Scope: Public * Parameters: *$ Usage: *$ * Returns: *--------------------- Maintenance Section ---------------------- * Change Log: * CREATED 04/14/2005 - NN - idea by Fabio Lunardon thread #1003937 * MODIFIED *---------------------------------------------------------------- LOCAL llError llError = .f. do case case type('this.value') = "D" AND EMPTY(this.Value) if !empty(chrtran(this.text,"/.-","")) *This.Value=CTOD("^"+STR(YEAR(DATE()),4)+"-"+STR(MONTH(DATE()),2)+"-"+LEFT(This.Text,2)) =ErrorMsg('Please enter a valid date',0+16,"Error in date entry") llError = .t. endif case type('this.value') = "T" AND EMPTY(this.Value) local lcText lcText = strtran(this.text,"AM","") lcText = strtran(m.lcText,"PM","") lcText = strtran(m.lcText,"M","") if !empty(chrtran(m.lcText,"/.:-","")) *This.Value=CTOD("^"+STR(YEAR(DATE()),4)+"-"+STR(MONTH(DATE()),2)+"-"+LEFT(This.Text,2)) =ErrorMsg('Please enter a valid date',0+16,"Error in date entry") llError = .t. endif case this.value < this.dRangeLowBound =ErrorMsg('Please enter a correct year',0+16,"Error in date entry") llError = .t. endcase return IIF(m.llError, this.dRangeLowBound, {}) && so it would work for empty dates>>>>My question is how to trap years less than 1900 in valid of the textbox. It seems like this year is converted to 1900 by VFP... Try to play with form and textbox which is date type.
>* RangeLow >RETURN GOMONTH(DATE(),-110*12) && this is the lowerBound >>
>** Class RangeLow >IF m.this.Value<m.this.RangeLowBound && ADD THIS PROPERTY > MESSAGEBOX("Error ... blb bls ...") >ENDIF >RETURN m.this.RangeLowBound >