Comments interspersed.
"posts" = "records"? The latter is the more common jargon term.
Rather than entering 5,3 initially - would it be possible to enter, or
calculate, an "experience start date"? The trouble with storing any duration
value - such as this "years and months of experience" value - in a table is
that (as you are seeing!!) it becomes WRONG over time.
The solution is to *not store the months of experience in your table AT ALL*.
Rather than storing a value which you know will be wrong in a couple of weeks,
and will constantly need updating and tweaking, you can store a *static,
permanent* value from which you can calculate the months of experience
whenever it's needed.
The dates are exactly what you WANT to store in the database. You may want to
"back calculate" the date the rank was attained rather than storing "years in
rank" in a table field.
Don't confuse data STORAGE with data PRESENTATION. They're different. If
you're storing a Text field such as "7,3" in the table... don't. Instead,
store the start date, and use Graham's Diff2Dates() function posted elsewhere
in this thread to dynamically *calculate* the text string "7,3", based on the
stored Date/Time field and today's date.
That's what I'm trying to convey. It is neither necessary NOR appropriate to
"input" numbers for years in rank or years on the tanker or months onboard.
These numbers should *simply not exist anywhere in your table*.
Instead you should store Date/Time fields for the date rank was attained, or
date came aboard, or date registration was attained. This date need not appear
on the report, but it will be used in a Query (using the Diff2Dates function)
in order to dynamically calculate the value appropriate for the report.