Abrir un DBF con Excel
Tengo una planilla Excel y en una celda ingreso un Nº Documento y presiono un botón que está asociado a una macro, la cual debe abrir un archivo DBF y consultar por éste Nº Documento y traer todos los registros que contengan ese documento. Lo podría hacer en modo OFF-LINE pero constantemente el archivo DBF se está actualizando, por los usuarios que ocupan un sistema realizado en Clipper.
He intentado abrirlo de varias formas, pero siempre me dan errores.
Aquí hay un código pero me da error en el OPEN
Sub Botón1_AlHacerClic()
Dim Db As DataBase
Dim Rs As Recordset
valor = Worksheets("Cartas").Range("C10")
Set Db = OpenDatabase("", True, False, "dBASE III;database=F:\Codigos")
Set Rs = Db.OpenRecordSet("SELECT * FROM LETRA Where = " + valor)
cnt = 15
Do Until Rs.EOF
ActiveSheet.Range("c" & cnt) = Rs("campo1")
ActiveSheet.Range("d" & cnt) = Rs("campo2")
ActiveSheet.Range("e" & cnt) = Rs("campo3")
ActiveSheet.Range("f" & cnt) = Rs("campo4")
ActiveSheet.Range("g" & cnt) = Rs("campo5")
ActiveSheet.Range("h" & cnt) = Rs("campo6")
ActiveSheet.Range("i" & cnt) = Rs("campo7")
ActiveSheet.Range("j" & cnt) = Rs("campo8")
ActiveSheet.Range("k" & cnt) = Rs("campo9")
ActiveSheet.Range("l" & cnt) = Rs("campo10")
ActiveSheet.Range("m" & cnt) = Rs("campo11")
ActiveSheet.Range("n" & cnt) = Rs("campo12")
ActiveSheet.Range("o" & cnt) = Rs("campo13")
ActiveSheet.Range("p" & cnt) = Rs("campo14")
ActiveSheet.Range("q" & cnt) = Rs("campo15")
cnt = cnt + 1
Loop
Rs. Close
Con. Close
End Sub
He intentado abrirlo de varias formas, pero siempre me dan errores.
Aquí hay un código pero me da error en el OPEN
Sub Botón1_AlHacerClic()
Dim Db As DataBase
Dim Rs As Recordset
valor = Worksheets("Cartas").Range("C10")
Set Db = OpenDatabase("", True, False, "dBASE III;database=F:\Codigos")
Set Rs = Db.OpenRecordSet("SELECT * FROM LETRA Where = " + valor)
cnt = 15
Do Until Rs.EOF
ActiveSheet.Range("c" & cnt) = Rs("campo1")
ActiveSheet.Range("d" & cnt) = Rs("campo2")
ActiveSheet.Range("e" & cnt) = Rs("campo3")
ActiveSheet.Range("f" & cnt) = Rs("campo4")
ActiveSheet.Range("g" & cnt) = Rs("campo5")
ActiveSheet.Range("h" & cnt) = Rs("campo6")
ActiveSheet.Range("i" & cnt) = Rs("campo7")
ActiveSheet.Range("j" & cnt) = Rs("campo8")
ActiveSheet.Range("k" & cnt) = Rs("campo9")
ActiveSheet.Range("l" & cnt) = Rs("campo10")
ActiveSheet.Range("m" & cnt) = Rs("campo11")
ActiveSheet.Range("n" & cnt) = Rs("campo12")
ActiveSheet.Range("o" & cnt) = Rs("campo13")
ActiveSheet.Range("p" & cnt) = Rs("campo14")
ActiveSheet.Range("q" & cnt) = Rs("campo15")
cnt = cnt + 1
Loop
Rs. Close
Con. Close
End Sub
Respuesta de jmoli
2 respuestas más de otros expertos
Respuesta de parmijo
2
Respuesta de Juan Carlos González Chavarría
1