Mira este código:
For i = 0 To Recordset.Fields.Count - 1
tipo = Obtener_TipoDatos(Recordset.Fields(i).Type)
Next
La función que tengo yo para obtener que tipos de datos es en Sql Server es la siguiente:
Function Obtener_TipoDatos(campo As Integer) As String
'Obtengo el tipo de datos del campo
Select Case campo
Case adBigInt
Obtener_TipoDatos = "BigInt"
Case adBinary
Obtener_TipoDatos = "Binary"
Case adBoolean
Obtener_TipoDatos = "Boolean"
Case adChar, adBSTR
Obtener_TipoDatos = "Char"
Case adCurrency
Obtener_TipoDatos = "Currency"
Case adDate
Obtener_TipoDatos = "Date"
Case adDBDate, adDBFileTime, adDBTime, adDBTimeStamp
Obtener_TipoDatos = "SmallDateTime"
Case adDecimal, adDouble
Obtener_TipoDatos = "Double"
Case adGUID
Obtener_TipoDatos = "UniqueIdentifier"
Case adIDispatch, adInteger
Obtener_TipoDatos = "Int"
Case adIUnknown, adLongVarBinary
Obtener_TipoDatos = "Image"
Case adLongVarChar
Obtener_TipoDatos = "Text"
Case adLongVarWChar
Obtener_TipoDatos = "NText"
Case adNumeric
Obtener_TipoDatos = "Decimal Numeric"
Case adPropVariant, adSingle
Obtener_TipoDatos = "Real"
Case adSmallInt
Obtener_TipoDatos = "SmallInt"
Case adTinyInt, adUnsignedBigInt, adUnsignedInt, adunsignedsamllint, adUnsignedTinyInt
Obtener_TipoDatos = "TinyInt"
Case adVarBinary
Obtener_TipoDatos = "VarBinary"
Case adVarChar
Obtener_TipoDatos = "VarChar"
Case adVariant
Obtener_TipoDatos = "Sql_Variant"
Case adVarWChar
Obtener_TipoDatos = "NVarChar"
Case adWChar
Obtener_TipoDatos = "NChar"
End Select
End Function
De todas formas en esta página puedes ver la correspondecia de los tipos de datos:
http://www.able-consulting.com/ADODataTypeEnum1.htmEspero que te sirva de ayuda, si tienes alguna duda no dudes en consultarme y yo en la medida que pueda te ayudaré.
Saludos,
Roberto