If this calculation is referring to records in a related table, make the relationship an unsorted relationship and see what is returned by the Last function. I've been told that this function returns the value of the last record that contains a value in the specified field--but I haven't tested this for myself so see if it works.
Am also wondering if your data records might be a bit "cleaner" if you put weight measurements in one table and length in another so that you wouldn't have this issue in the first place...
...and sometimes having apparently correct info is worse than having missing data, because at least when it's mssing you know to go and fix something, whereas if it is fudged to appear filled in it's harder to know when you are being misled. And if you start to use the figures for the animal equivalent of BMI you are really fudging potentially quite a bit.
If you are prepared to have the fudge (and if Phil's suggestion doesn't work for you) you could have the new record automatically insert the data from the last record and then let the user over-write it. If they don't, then at least it will have the last known value (just as you are suggesting here.)
I was actually thinking about splitting the weight and length into seperate tables last night, makes sence to do it now.