Just to clarify, you are saying that the ODBC database is showing the field type as a number, but somehow Access shows it as text? Sounds like a bug. Do you have the latest version of the ODBC driver supplied by the db vendor?
I don't think there is anyway to force the datatype to something else via VBA/ADO/DAO as data type negotiation is all handled internally within the ODBC driver. That is all vendor-implemented and usually inaccessible via VBA. You could use the various conversion and format functions to recast the data as you come acrossed it in your code.