Looks like this is connected to importing data? If so, you might want to try to catch it at the import stage, rather than deal with it internally to Access.
The one potential issue that lurks here is how to determine which records lie "above" other records. At the time of import, this is pretty well defined. However, my understanding is that you can not necessarily rely on the autonumber fields to preserve order as time goes on.
okay, enough of the cautions
1. You can declare a recordset based on the table and step through each record. Set a variable equal to "last value". If the current value is not blank, then update "last value". Otherwise, write last value into the field.
The code looks something like this:
Dim rs as DAO.Recordset
Dim strLastValue as String
Set rs = dbs.OpenRecordset("tblData", dbOpendynaset)
strLastValue = ""
While not rs.EOF
if rs!field1 <> "" then
strLastValue = rs!Field1
rs!Field1 = strLastValue
Set rs = Nothing
2. Export the table to Excel, work your magic there and then re-import into Access.