Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Exportar tablas DBF a Excel con Excel

Estas en el tema de Exportar tablas DBF a Excel con Excel en el foro de Bases de Datos General en Foros del Web. Bueno esa es mi pregunta, resulta que tengo 4 tablas de tipo .DBF de FoxPro y tengo que pasar ciertos campos de esas tablas hacia ...
  #1 (permalink)  
Antiguo 07/04/2011, 14:03
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Exportar tablas DBF a Excel con Excel

Bueno esa es mi pregunta, resulta que tengo 4 tablas de tipo .DBF de FoxPro y tengo que pasar ciertos campos de esas tablas hacia una hoja de Excel pero me piden que lo haga a través de Excel y no a través de FoxPro, lo que significa que solo a través de FoxPro, eh estado investigando y solo encuentro como hacerlo a través de FoxPro lo cual no es lo que me piden, les recomendé así pero parece que no lo quieren así que le vamos a hacer.

Quisiera saber si es posible manejarlo con un OBDC y como seria mas o menos el proceso o alguna pagina que tenga algo pro el estilo ya que ni sabia que FoxPro seguía en el mercado.

si es asi agradeceria la ayuda.
  #2 (permalink)  
Antiguo 07/04/2011, 14:53
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Exportar tablas DBF a Excel con Excel

Eh logrado exportar pero la tabla completa, ahora debo exportar solo ciertos campos que yo especifique, imagino que tendré que utilizar VBA para poder hacerlo, quisiera saber si alguien tiene noción de eso y como selecciona solo los campos que se deseen.
  #3 (permalink)  
Antiguo 11/04/2011, 23:24
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Respuesta: Exportar tablas DBF a Excel con Excel

Desde excel, puedes hacerlo si creas un DNS de sistema (inicio-panel de control- herramientas administrativas - ODBC.

En mi caso, me comunico hacia FOX PRO con el siguiente driver desde excel, donde database tiene la ruta a la carpeta donde estan los .dbf de Foxpro para windows:

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & database & ";Extended Properties=dBASE III;User ID=Admin;Password= "
'conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & database & ";Extended Properties=DBASE III;Persist Security Info=False"
'database = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\sistemas\motos;Extended Properties=dBASE III;User ID=Admin;Password= "

' Procederemos a CLAREAR TODAS LAS ETAPAS (por ahora, con captura online debera ser row by row
Sql = ""
cadenaCampos = ""
' recuperamos una cadena con todos los nombres de campo q se clarearan, deben ser nombres de campos
' tomados directos de la database para saber si existen y que el UPDATE corra
' Especifoco sobre esos
' para evaluar si los campos existe
Sql = "SELECT * FROM CARRERAS "
rsCarreras.Open Sql, conn
If sheetParametros.radVELOCIDAD Then
campoDestino = "VELO"
ElseIf sheetParametros.radESPECIAL Then
campoDestino = "ESPE"
Else
MsgBox "Especifique si van para VELOCIDAD o ESPECIAL!"
Exit Sub
End If

indiceMaximoDeCampos = 0
' -------------------------
' b) CICLO PARA DETECTAR CUANTOS CAMPOS CLAREAREMOS
' -------------------------
For vueltas = 1 To 8
campoAEvaluar = campoDestino & vueltas & "_INI"
campoAEvaluar2 = campoDestino & vueltas & "_FIN"
campoAEvaluar3 = campoDestino & vueltas & "_DIF"

' Si el campo a vealuar existe definido dentro de la tabla foxpro se procede a
' armarlo en la cadena
On Error GoTo NOEXISTECAMPO:
paso = rsCarreras.Fields(campoAEvaluar)
' Separamos x comas la SQL de update
If cadenaCampos <> "" Then cadenaCampos = cadenaCampos & ","
cadenaCampos = cadenaCampos & campoAEvaluar & "=''"
' Campos de fin y diferencia
cadenaCampos = cadenaCampos & ","
cadenaCampos = cadenaCampos & campoAEvaluar2 & "=''"
cadenaCampos = cadenaCampos & ","
cadenaCampos = cadenaCampos & campoAEvaluar3 & " = ''"
' Ojo.. cadenaCampos solo puede tener un maximo de longitud o tronara al ejecutarse vs Foxpro
On Error GoTo 0
GoTo CAMPOAGREGADO:
NOEXISTECAMPO:
' Se sale del ciclo
On Error GoTo 0
Exit For
' EJECUTA CLASE DE CAMPOS INICIAL PARA LLEvar a cabo la nueva carga
CAMPOAGREGADO:
indiceMaximoDeCampos = vueltas
' Se ejecuta aqui x que luego es muy larga la cadena de UPDATE y truena
If cadenaCampos <> "" Then
' -------------------------
' Procede con el clareado de TODOS LOS REGISTROS (debe haber where x categoria)
' -------------------------
Sql = "UPDATE CARRERAS SET " & cadenaCampos
'& " WHERE num_moto=" & moto
' Valida si es para JUVENILES o ADULTOS
If CATEGORIAS = "JUV" Then
'Sql = Sql & [ WHERE at("JUVENIL", categoria)>0 OR at("FEMENIL", categoria)>0 ]
Sql = Sql & " WHERE ( instr(ucase(categoria), 'FEMENIL')>0 OR instr(ucase(categoria), 'JUVENIL')>0 )"
Else
' ADULTOS
'Sql = Sql & " WHERE instr('JUVENIL', categoria)=0 AND at('FEMENIL', categoria)=0 "
'Sql = Sql & " WHERE instr(categoria,'JUVENIL')=0 AND instr(categoria, 'FEMENIL')=0 "

Sql = Sql & " WHERE ( instr(ucase(categoria), 'FEMENIL')=0 AND instr(ucase(categoria), 'JUVENIL')=0 )"
'Sql = Sql & " AND num_moto=0 "
End If
' MsgBox Sql
conn.Execute Sql
cadenaCampos = ""
End If

Next
rsCarreras.Close
  #4 (permalink)  
Antiguo 05/05/2011, 15:43
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Exportar tablas DBF a Excel con Excel

Hola amigo,

Gracias por responder, eh estado vuelto loco porque nomas no logro terminar, eh creado varios post en varios foros pero parece que mi problema es bastante especifico, a esto sumándole que para programar soy una piedra (osea que soy pésimo) pues se hace todo un problema jeje, te agradezco tu atención, voy a probar tu propuesta.

Mientras tanto quisiera saber si podrían ayudarme a resolver unas dudas que me tope mientras trabajaba con las BD en Excel, verán como ya comente tengo 4 BD.
  • clientes.DBF (mayúsculas)
  • góndolas.dbf (minúsculas)
  • regondolas.dbf (minúsculas)
  • recamiones.dbf (minúsculas)

Trabajando con las tablas me tope que el Excel 2007 (que es el que estoy utilizando) solo me reconoce la tabla clientes.DBF y las otras 3 no, si uso el Driver do Microsoft dBase me marca "la tabla externa no tiene el formato esperado", usando el controlador de VisualFox ni siquiera me permite buscar los archivos, simplemente me muestra "El Driver no permite esta acción".

Usando el DBF Viewer 2000 (del cual tristemente no el logrado encontrar un serial ) me tope con que la tabla Clientes.DBF es de tipo FoxBase+/dBase III PLUSE, no memo, mientras que las otras solamente me marca que son del tipo Visual Foxpro, usando la opción Salvar como / Exportar lo convertí a los formatos dBAse III y IV y aunque si me deja trabajar con las tablas no me muestra ninguna información al exportarla, pero si las visualizo con el DBF Viewer 2000 si me muestra campos, trate de convertirlo con programas como DBF to DBF Converter 2.30 y DBF Converter 2.65 pero los condenados programas son Shareware y solo dejan transformar 50 campos y solo dbf, si quiero pasar a VisualFoxpro dejo registrar y tampoco les eh encontrado serial.

Alguien podría explicarme que pasa por que no detecta las tablas y por que al convertirlas desaparecen los datos, conocen algún programa gratuito para convertir de dbf a varios formatos.
  #5 (permalink)  
Antiguo 05/05/2011, 15:45
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Exportar tablas DBF a Excel con Excel

Otro detalle, la verdad nunca eh programado macros en excel es mi primero vez, por lo que use el grabador de macros y funciona bien solo que si trato de exportar de nuevo me da error y cosas asi.
  #6 (permalink)  
Antiguo 09/05/2011, 23:30
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Respuesta: Exportar tablas DBF a Excel con Excel

El driver que yo uso en el ODBC es "Microsoft dBase Driver (*.dbf)
Lo que tienes son 4 tablas (no bases de datos):
clientes.DBF (mayúsculas)
góndolas.dbf (minúsculas)
regondolas.dbf (minúsculas)
recamiones.dbf (minúsculas)

En el VB applications que te publique se ve que me conecto con tambien con OLEDB:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source
ASegurate que este como "System DSN"

"Driver do Microsoft dBase " no creo que te funcione.

Etiquetas: bdf, excel, fox, visual, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:03.