Si es por única vez el consejo de Cristian puede ser lo mejor. En caso que tenga que sea una operación rutinaria, o repetida, lo más conveniente es abrir el DBF con el motor de bases de datos (sugieron ADO). Te paso una función que abre conexiones a DBF de 3 maneras diferentes. Probalo.
El argumento StrSource en realidad es la carpeta en la cual está el o los DBF.
Public Function AbrirConexionDBF(dcd As ADODB.Connection, ByVal StrSource As String, _
Optional ByVal StrTypeSource As String = "DBF") As Boolean
Dim lErr As Error, isOK As Boolean, iTry As Integer
Dim StrCnn As String
iTry = 0
Select Case iTry
Case 0 'fox pro driver...
StrCnn = "Provider=MSDASQL.1;"
StrCnn = StrCnn & " Driver={Microsoft Visual FoxPro Driver};"
StrCnn = StrCnn & " SourceDB=" & StrSource & ";"
StrCnn = StrCnn & " SourceType=" & StrTypeSource & ";"
StrCnn = StrCnn & " Uid=;Pwd=;"
Case 1
StrCnn = " Driver={Microsoft dBASE Driver (*.dbf)};"
StrCnn = StrCnn & " DBQ=" & StrSource & ";"
StrCnn = StrCnn & " SourceType=" & StrTypeSource & ";"
StrCnn = StrCnn & " DriverID=277;"
Case 2 'mix ...
StrCnn = "Provider=MSDASQL;"
StrCnn = StrCnn & "Driver={Microsoft dBase Driver (*.dbf)};"
StrCnn = StrCnn & "DBQ=" & StrSource & ";"
StrCnn = StrCnn & " DriverID=277;"
StrCnn = StrCnn & " SourceType=" & StrTypeSource
End Select
dcd.ConnectionString = StrCnn
dcd.Open
isOK = True
If dcd.Errors.Count Then
For Each lErr In dcd.Errors
Debug.Print lErr.Description
If lErr.Number Then
Debug.Print lErr.Description
isOK = False
End If
Next lErr
End If
AbrirConexionDBF = isOK
End Function
saludos