* Addition to method code where parent recchange occurs * A custom form array aSums holds sum for fields * At this point since you're changing parent * there should be no data in buffer - tableupdated select sum(f1), sum(f2), sum(fn) ; from myTable ; where linkfield = parent.pkfield ; into array thisform.aSums if _tally = 0 dimension thisform.aSums[3,1] && Safety belt thisform.aSums = 0 endif * Controls with controlsource Fields that affect sum gotfocus or when this.Tag = str(this.value) && Tag property is a ready storage place * Controls with controlsource Fields that affect sum lostfocus or valid * Assume this is f2 field thisform.aSums[2,1] = ; nvl(thisform.aSums[2,1],0) ; - val(this.tag) + this.valueNo record pointer movement, no time consuming (well ignoring little time spent here for math). If your total showing textboxes have thisform.aSums[x,1] as controlsources that's all you need. No need for a refresh.