This is something I quickly whipped up for you to start with. I'm very sure that it will need more testing and some proper validation parsing, but it is a start.
Place this in a new module named _Util or something.
Public Sub ValidateControl(ByRef ctrl As Control, ByVal data_type As...