I will assume a single space between words...this was generic to force smalls after the first letter of a word I will keep that form....If it isn't that way then you will have to modify it....since you haven't given me a selection of possible problems
StringVar Original := {table.string};
NumberVar Temp;
numberVar SPointer := 1;
numberVar EPointer := length(Original);
//take care of the first CAP
Original := uppercase(left({table.string},1)) +
lowercase(right({table.string}, length({table.string}) - 1));
While SPointer < EPointer do
(
Temp := inStr(SPointer,original," "

;
if Temp > 0 then
(
Original := left(Original,Temp) +
uppercase(mid(Original,temp+1,1)) +
Right(Original,EPointer - temp+1);
SPointer := Temp + 1;
)
else
(
SPointer := EPointer ;
);
);
Original;
Jim Broadbent