Obtener el tipo de campo desde el RecordSet

Programo en VB 6.0 y quiero crear una función que imprima los datos de un recordset, pero quiero saber el tipo de campo que estoy imprimiendo, para imprimirlo con el formato, en su caso fecha, dinero, etc.
¿Existe alguna forma?

1 Respuesta

Respuesta
1
Tanto si utilizas ADO como DAO, el objeto recordset tiene la propiedad "type".
Esta propiedad te indica el tipo del campo a través de un valor numérico, p.e.: el 7.
Para identificar ese tipo tienes que ir al "Examinador de Objetos", buscar "dataTypeEnum" en la biblioteca que estés usando (DAO o ADO), y localizar a quién corresponde ese valor numérico, en el ejemplo sería "dbDouble".
Lo que te falta es la longitud de los campos de texto, que se obtiene a través de la propiedad 'size' o 'definedSize' según estés con DAO o ADO.
En tu programa puedes poner algo así:
    for i = 0 to miRecordset.Fields.Count
        Select case miRecordset.Fields(i)
            Case dbDouble:.........................
            Case dbDate: .........................
            Case else: .......
        End Select
        ...
        ...
    Next i
Pero que impresionante respuesta. Es enserio, no tenía idea de cómo hacerlo. Viendo el ejemplo produje esto:
     For i = 0 To rsTabla.Fields.Count - 1
        Select Case rsTabla.Fields(i).Type
            Case adVarChar: MsgBox  "adVarChar"
            Case adDate: MsgBox  "adDate"
            Case adTinyInt: MsgBox  "adTinyInt"
            Case adBigInt: MsgBox  "adBigInt"
            Case adCurrency: MsgBox  "adCurrency"
            Case adInteger: MsgBox  "adInteger"
            Case Else: MsgBox  "no"
        End Select
    Next i
Para cada caso, imprimiré con el formato adecuado en vez de enviar mensajes. Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas