Qué tal?
VB define una serie de constantes, pero su valor y nombre varía si estás utilizando acceso DAO o ADO (probablemente, RDO también tenga las suyas, pero no lo he usado nunca).
Para DAO, los valores de Type empiezan por db (dbByte, dbDecimal...). Para ADO, empiezan por ad (adDate, adChar...). En ambos casos hay un montón y algunos incluso son redundantes o muy raros de ver.
Te adjunto una función que hice en su día para "resumir" los tipos de datos de un recordset ADO a sólo unos pocos que necesitaba, por si te sirve. Con un poco de información de la ayuda, puedes convertirla para accesos por DAO.
Código:
Public Enum FieldBriefFormatEnum ' Formato resumido de campo
FieldFormatUnknown = 0 ' Desconocido (tratar como cadena)
FieldFormatInteger ' Numérico (entero)
FieldFormatDouble ' Numérico (decimal)
FieldFormatDate ' Fecha
FieldFormatString ' Caracter
FieldFormatBool ' Booleano
End Enum
Public Function FieldTypeADO(tField As Integer) As FieldBriefFormatEnum
Select Case tField
Case adChar, _
adBSTR, _
adLongVarChar, _
adLongVarWChar, _
adVarChar, _
adVarWChar, _
adWChar:
FieldTypeADO = FieldFormatString
Case adDBDate, _
adDBTime, _
adDBTimeStamp:
FieldTypeADO = FieldFormatDate
Case adTinyInt, _
adUnsignedTinyInt, _
adBigInt, _
adUnsignedBigInt, _
adError, _
adInteger, _
adSmallInt, _
adUnsignedBigInt, _
adUnsignedInt, _
adUnsignedSmallInt, _
adSingle:
FieldTypeADO = FieldFormatInteger
Case adNumeric, _
adSingle, _
adDecimal, _
adDouble:
FieldTypeADO = FieldFormatDouble
Case Else:
FieldTypeADO = FieldFormatUnknown
End Select
End Function