conocer propiedades tabla dbf

29/07/2005 - 16:03 por fredy | Informe spam
hola grupo!

quisiera saber como puedo hacer una macro que me extraiga las propiedades de
una tabla dbf es decir nombre del campo, tipo de dato, ancho del campo , num
decimales
es posible?

muchas gracias!

Preguntas similare

Leer las respuestas

#1 KL
29/07/2005 - 17:49 | Informe spam
Hola Fredy,

Suponiendo que extraes los datos del *.dbf mediante ADO, asi a bote pronto
hice un experimento con el objeto de recordset y he podido encontrar entre
otras muchas las siguientes propiedades:

Sub Test()
Dim rs As ADODB.Recordset
rs.Fields(0).ActualSize
rs.Fields(0).Attributes '...los que sea
rs.Fields(0).DataFormat
rs.Fields(0).DefinedSize
rs.Fields(0).Name
rs.Fields(0).Type
rs.Fields(0).Value
End Sub

No se si esto es lo que buscas. Acuerdate de establecer una referencia (menu
Tools>Referencias) a la libreria 'Microsoft ActiveX Data Objects x.x Object
Library', aunque si usas ADO probablement ya la tienes establecida.

Saludos,
KL


"fredy" wrote in message
news:
hola grupo!

quisiera saber como puedo hacer una macro que me extraiga las propiedades
de
una tabla dbf es decir nombre del campo, tipo de dato, ancho del campo ,
num
decimales
es posible?

muchas gracias!
Respuesta Responder a este mensaje
#2 fredy
29/07/2005 - 21:02 | Informe spam
hola KL la verdad no se que hacer con tu respuesta , tengo una tabla dbf en
c:\borreme\ que se llama ad.dbf
intente hacerlo con el codigo que pongo abajo pero esa conexion es a bases
de datos mdb, de acuerdo con tu respuesta intente hacer lo siguiente para
extraer los datos en variables pero me sale el siguiente error "el objeto no
admite esta propiedad o metodo"

Sub Test()
'Dim rs As ADODB.Recordset
RUTA = "c:\borreme\"

Set Db = OpenDatabase(RUTA & "ad.dbf")
Set rs = Db.OpenRecordset("SELECT ad.ADI_ID, ad.ADI_CICL, ad.ADI_MATR,
ad.ADI_DIVE, ad.ADI_CODI, ad.ADI_NFAC, ad.ADI_VALO, ad.ADI_STAT, ad.ADI_VLAN"
& Chr(13) & "" & Chr(10) & "FROM ad ad" & Chr(13) & "" & Chr(10) & "WHERE
(ad.ADI_MATR='000010')", dbOpenDynaset)

abc = rs.Fields(0).ActualSize
def = rs.Fields(0).Attributes '...los que sea
ghi = rs.Fields(0).DataFormat
jkl = rs.Fields(0).DefinedSize
mno = rs.Fields(0).Name
pqr = rs.Fields(0).Type
stu = rs.Fields(0).Value
rs.Close
Db.Close

End Sub

agradezco tu orientacion en el caso

saludos!

"KL" wrote:

Hola Fredy,

Suponiendo que extraes los datos del *.dbf mediante ADO, asi a bote pronto
hice un experimento con el objeto de recordset y he podido encontrar entre
otras muchas las siguientes propiedades:

Sub Test()
Dim rs As ADODB.Recordset
rs.Fields(0).ActualSize
rs.Fields(0).Attributes '...los que sea
rs.Fields(0).DataFormat
rs.Fields(0).DefinedSize
rs.Fields(0).Name
rs.Fields(0).Type
rs.Fields(0).Value
End Sub

No se si esto es lo que buscas. Acuerdate de establecer una referencia (menu
Tools>Referencias) a la libreria 'Microsoft ActiveX Data Objects x.x Object
Library', aunque si usas ADO probablement ya la tienes establecida.

Saludos,
KL


"fredy" wrote in message
news:
> hola grupo!
>
> quisiera saber como puedo hacer una macro que me extraiga las propiedades
> de
> una tabla dbf es decir nombre del campo, tipo de dato, ancho del campo ,
> num
> decimales
> es posible?
>
> muchas gracias!



Respuesta Responder a este mensaje
#3 fredy
29/07/2005 - 22:09 | Informe spam
Hola KL mira como lo solucione

Sub DATOS2()

Dim Con As Connection
Dim Rs As Recordset

Set Con = New Connection
Set Rs = New Recordset

Con.Open ("Driver={Microsoft Visual FoxPro
Driver};SourceTypeÛF;SourceDB=c:\BORREME")

Rs.Open "select * from AD.dbf", Con, adOpenDynamic, adLockOptimistic
For i = 2 To 8
On Error Resume Next
Cells(1, i) = Rs.Fields(i - 2).ActualSize
Cells(2, i) = Rs.Fields(i - 2).Attributes '...los que sea
Cells(3, i) = Rs.Fields(i - 2).DataFormat
Cells(4, i) = Rs.Fields(i - 2).DefinedSize
Cells(5, i) = Rs.Fields(i - 2).Name
Cells(6, i) = Rs.Fields(i - 2).Type
Cells(7, i) = Rs.Fields(i - 2).Value
Next i
Rs.Close
Con.Close

Set Rs = Nothing
Set Con = Nothing

End Sub


"KL" wrote:

Hola Fredy,

Suponiendo que extraes los datos del *.dbf mediante ADO, asi a bote pronto
hice un experimento con el objeto de recordset y he podido encontrar entre
otras muchas las siguientes propiedades:

Sub Test()
Dim rs As ADODB.Recordset
rs.Fields(0).ActualSize
rs.Fields(0).Attributes '...los que sea
rs.Fields(0).DataFormat
rs.Fields(0).DefinedSize
rs.Fields(0).Name
rs.Fields(0).Type
rs.Fields(0).Value
End Sub

No se si esto es lo que buscas. Acuerdate de establecer una referencia (menu
Tools>Referencias) a la libreria 'Microsoft ActiveX Data Objects x.x Object
Library', aunque si usas ADO probablement ya la tienes establecida.

Saludos,
KL


"fredy" wrote in message
news:
> hola grupo!
>
> quisiera saber como puedo hacer una macro que me extraiga las propiedades
> de
> una tabla dbf es decir nombre del campo, tipo de dato, ancho del campo ,
> num
> decimales
> es posible?
>
> muchas gracias!



Respuesta Responder a este mensaje
#4 KL
29/07/2005 - 22:37 | Informe spam
!Muy bien!

KL


"fredy" wrote in message
news:
Hola KL mira como lo solucione

Sub DATOS2()

Dim Con As Connection
Dim Rs As Recordset

Set Con = New Connection
Set Rs = New Recordset

Con.Open ("Driver={Microsoft Visual FoxPro
Driver};SourceTypeÛF;SourceDB=c:\BORREME")

Rs.Open "select * from AD.dbf", Con, adOpenDynamic, adLockOptimistic
For i = 2 To 8
On Error Resume Next
Cells(1, i) = Rs.Fields(i - 2).ActualSize
Cells(2, i) = Rs.Fields(i - 2).Attributes '...los que sea
Cells(3, i) = Rs.Fields(i - 2).DataFormat
Cells(4, i) = Rs.Fields(i - 2).DefinedSize
Cells(5, i) = Rs.Fields(i - 2).Name
Cells(6, i) = Rs.Fields(i - 2).Type
Cells(7, i) = Rs.Fields(i - 2).Value
Next i
Rs.Close
Con.Close

Set Rs = Nothing
Set Con = Nothing

End Sub


"KL" wrote:

Hola Fredy,

Suponiendo que extraes los datos del *.dbf mediante ADO, asi a bote
pronto
hice un experimento con el objeto de recordset y he podido encontrar
entre
otras muchas las siguientes propiedades:

Sub Test()
Dim rs As ADODB.Recordset
rs.Fields(0).ActualSize
rs.Fields(0).Attributes '...los que sea
rs.Fields(0).DataFormat
rs.Fields(0).DefinedSize
rs.Fields(0).Name
rs.Fields(0).Type
rs.Fields(0).Value
End Sub

No se si esto es lo que buscas. Acuerdate de establecer una referencia
(menu
Tools>Referencias) a la libreria 'Microsoft ActiveX Data Objects x.x
Object
Library', aunque si usas ADO probablement ya la tienes establecida.

Saludos,
KL


"fredy" wrote in message
news:
> hola grupo!
>
> quisiera saber como puedo hacer una macro que me extraiga las
> propiedades
> de
> una tabla dbf es decir nombre del campo, tipo de dato, ancho del campo
> ,
> num
> decimales
> es posible?
>
> muchas gracias!



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida