function CurErrHandler lparameter tnErrorNum if not 'vfpevent.fll' $ lower(set('library')) set library to vfpEvent.fll additive endif if m.tnErrorNum = 39 && Numeric overflow local lnFields, lnI, lcAlias, lnRecord, lnResult lcAlias = alias() lnFields = afields(laFields,m.lcAlias) && assuming the table is opened lnRecord = recno(m.lcAlias) for lnI=1 to m.lnFields if inlist(laFields[m.lnI,2],'N','I','B','Y','F') and ; "*" $ transform(evaluate(m.lcAlias+"."+laFields[m.lnI,1])) && This is a field, which gave an error lnResult = EventMBox('Field '+ laFields[m.lnI,1]+" would be blanked because of numeric overflow "+ ; chr(13)+"on the record "+transform(m.lnRecord)+" in file "+dbf(m.lcAlias)+ ; chr(13)+"Do you want to continue the appending process?", ; MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON1, ; "Error is encountered!", ; "&Proceed", ; "&Stop", "") blank field (laFields[m.lnI,1]) pnNumberOfProblems = m.pnNumberOfProblems + 1 && Increment number of problems if m.lnResult = IDNO && Stop plHalt = .t. && Stop the process endif endif next return else error m.tnErrorNum && produce an error and handle it by normal error Handler endif