HELP, MANEJO DE DBFs
Mi pregunta es la siguiente,
Estoy usando una aplicacion de vb con una base .mdb, con tablas vinculadas a dbase 5, mi problema es que las consultas a esas tablas vinculadas se hacen muy lentas por la cantidad de datos que poseen y porque dichos dbf no poseen indices. Intenté crearle indice mediante un editor de dbfs, le indiqué que archivos funcionaban como indices al vincularlas, pero el rendimiento sigue siendo el mismo, como si los indices no existiesen.
En definitiva, necesito velocidad al operar con las tablas vinculadas dbf desde access.
En un principio lo hacia importando las tablas de dbf a mdb, pero ahora en una de ellas me da un error, por otra parte es mas comodo para mi vincularlas directamente. Estoy usando el Borland data engine.
SO: Xp
Access: Xp
Millones de gracias a quien me pueda ayudar, bye.
Estoy usando una aplicacion de vb con una base .mdb, con tablas vinculadas a dbase 5, mi problema es que las consultas a esas tablas vinculadas se hacen muy lentas por la cantidad de datos que poseen y porque dichos dbf no poseen indices. Intenté crearle indice mediante un editor de dbfs, le indiqué que archivos funcionaban como indices al vincularlas, pero el rendimiento sigue siendo el mismo, como si los indices no existiesen.
En definitiva, necesito velocidad al operar con las tablas vinculadas dbf desde access.
En un principio lo hacia importando las tablas de dbf a mdb, pero ahora en una de ellas me da un error, por otra parte es mas comodo para mi vincularlas directamente. Estoy usando el Borland data engine.
SO: Xp
Access: Xp
Millones de gracias a quien me pueda ayudar, bye.
Te conviene usar las dbf creadas por FoxPro ya que ellas incluyen información de los indices que la forman.
Te mando un ejemplo, tenes que modificar el codigo para que te funcione a vos, suerte
Public Sub view(Optional sTarjeta)
On Error GoTo TrackingViewerror
Set DataDBF = OpenDatabase("c:Prueba", False, True, "FoxPro 2.5;")
If Trim$(Dir(cTRACKINGPath & "Consulta.dbf")) <> "" Then
Set RecordTracking = DataDBF.OpenRecordset("Consulta.dbf", dbOpenTable, dbReadOnly)
If Trim$(Dir(cTRACKINGPath & "Consulta.dbf")) <> "" Then
Set RecordPermicio = DataDBF.OpenRecordset("Permicio.dbf", dbOpenTable, dbReadOnly)
If IsMissing(sTarjeta) Then
RecordTracking.MoveFirst
Else
TEXTCall = "TA"
sCallTarje = sTarjeta
Call CmdBuscar_Click
End If
frm.Show vbModal
Else
RecordTracking.Close
DataDBF.Close
Set DataDBF = Nothing
Set RecordTracking = Nothing
Set RecordPermicio = Nothing
End If
Else
DataDBF.Close
Set DataDBF = Nothing
Set RecordTracking = Nothing
Set RecordPermicio = Nothing
End If
Exit Sub
TrackingViewerror:
End Sub
Te mando un ejemplo, tenes que modificar el codigo para que te funcione a vos, suerte
Public Sub view(Optional sTarjeta)
On Error GoTo TrackingViewerror
Set DataDBF = OpenDatabase("c:Prueba", False, True, "FoxPro 2.5;")
If Trim$(Dir(cTRACKINGPath & "Consulta.dbf")) <> "" Then
Set RecordTracking = DataDBF.OpenRecordset("Consulta.dbf", dbOpenTable, dbReadOnly)
If Trim$(Dir(cTRACKINGPath & "Consulta.dbf")) <> "" Then
Set RecordPermicio = DataDBF.OpenRecordset("Permicio.dbf", dbOpenTable, dbReadOnly)
If IsMissing(sTarjeta) Then
RecordTracking.MoveFirst
Else
TEXTCall = "TA"
sCallTarje = sTarjeta
Call CmdBuscar_Click
End If
frm.Show vbModal
Else
RecordTracking.Close
DataDBF.Close
Set DataDBF = Nothing
Set RecordTracking = Nothing
Set RecordPermicio = Nothing
End If
Else
DataDBF.Close
Set DataDBF = Nothing
Set RecordTracking = Nothing
Set RecordPermicio = Nothing
End If
Exit Sub
TrackingViewerror:
End Sub
