local lcValue, ; lcType lcValue = This.Value do case case lcValue = 'Character' replace NDECIMALS with 0 lcType = 'C' case lcValue = 'Currency' replace NSIZE with 8, NDECIMALS with 4 lcType = 'Y' case lcValue = 'Numeric' or lcValue = 'Float' lcType = iif(lcValue = 'Numeric', 'N', 'F') case lcValue = 'Date' or lcValue = 'DateTime' replace NSIZE with 8, NDECIMALS with 0 lcType = iif(lcValue = 'Date', 'D', 'T') case lcValue = 'Double' replace NSIZE with 8 lcType = 'B' case lcValue = 'Integer' replace NSIZE with 4, NDECIMALS with 0 lcType = 'I' case lcValue = 'Logical' replace NSIZE with 1, NDECIMALS with 0 lcType = 'L' case lcValue = 'Memo' replace NSIZE with 4, NDECIMALS with 0 lcType = 'M' case lcValue = 'General' replace NSIZE with 4, NDECIMALS with 0 lcType = 'G' endcase replace LBINARY with 'Binary' $ lcValue or ; trim(lcValue) $ 'Currency,Integer,Double,DateTime' if 'Auto' $ lcValue and not empty(XDEFAULT) replace XDEFAULT with '' endif 'Auto' $ lcValue ... do case case 'Auto' $ lcValue and NSTEPVALUE = 0 replace NSTEPVALUE with 1 case not 'Auto' $ lcValue and NSTEPVALUE <> 0 replace NSTEPVALUE with 0 endcase with This.Parent .spnWidth.Refresh() .spnDecimals.Refresh() .txtDefault.Refresh() .spnStepValue.Refresh() .spnNextValue.Refresh() endwith Thisform.HandleType(lcValue)Doug