You can use field functions, but the macro solution is more elegant. If you use legacy form fields, you can cross reference to the field and if the cross reference is in the body of the text, and you check the form field check box to 'calculate on exit' the cross reference field will update to display the data in the form field. The disadvantage is that the form must be protected for forms.
You can also use content controls, but as that is more complicated you need an add-in to simplify the process - see
http://gregmaxey.com/word_tip_pages/...ols_addin.html.
Or you could pay someone to do the job for you