Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/02/2009, 14:43
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Nombrar Field.Type

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
__________________
wile sona li mute e sona