That's a problem -- actually, several problems.
The first problem is that text boxes (and here I'm assuming you mean one from
the Insert > Text Box button) don't typically have names or associated bookmarks
like legacy form fields, and they don't have any way to automatically run a
macro.
If the form is created as a template and the users make new documents from the
template, your macro *may* be able to assume that the text box for a specific
piece of data always has the same index in the document, for example,
ActiveDocument.Shapes(1) or ActiveDocument.Shapes(5) or whatever. If the users
can edit the document, though, sooner or later somebody will delete a text box
or other shape and all the indexes after that will change.
However, you *can* assign a name to a text box in the template, for example by
running a line like this one time during your development phase:
ActiveDocument.Shapes(5).Name = "AgeBox"
and the macro can then get the text from it like this, which will be the same
regardless of whether the index number changes:
ActiveDocument.Shapes("AgeBox").TextFrame.TextRange.Text
I'll leave the problem of how to run the code to you for now. Come back if you
need help with that.