A veces te puede resultar muy útil que el contenido de algunas tablas de Firebird sean migradas a Excel. Posiblemente la mayoría de los usuarios de tus aplicaciones conocen como usar Excel entonces para ellos será fácil y sencillo realizar sus propias consultas, ver gráficos, etc.
Los pasos a seguir son los siguientes:
- Instalar el Cliente del Firebird o el archivo fbclient.dll
- Instalar el driver ODBC
- Crear una conexión DSN a tu Base de Datos
- Abrir Excel
- Importar el contenido de una tabla o de una vista
Paso 1. Instalar el Cliente del Firebird o el archivo fbclient.dll
La computadora debe ya tener instalado el Cliente del Firebird. Si ese no es el caso entonces hay que copiar el archivo fbclient.dll de cualquier computadora que tenga al Firebird instalado. Ese archivo normalmente se encuentra en la carpeta: «C:\Archivos de Programa\Firebird\Firebird_2_5\bin».
Paso 2. Instalar el driver ODBC
Si la computadora ya se puede conectar a una Base de Datos de Firebird entonces es muy probable que ya tenga instalado el driver ODBC. Si ese no es el caso, lo puedes descargar desde:
http://www.firebirdsql.org/en/odbc-driver/
Allí encontrarás varias opciones, elige la que corresponda a tu Sistema Operativo y a los bits de tu computadora
Paso 3. Crear una conexión DSN a tu Base de Datos
Cuando creas una conexión DSN permites que la conexión a tu Base de Datos pueda realizarse desde muchos programas, uno de esos programas es Excel.
Inicio | Panel de control | Herramientas administrativas | Orígenes de datos ODBC
Captura 1. Si haces clic en la imagen la verás más grande
Ahora si haces clic en el botón «Agregar…» podrás agregar un nuevo origen de datos ODBC.
Captura 2. Si haces clic en la imagen la verás más grande
Estos son todos los drivers ODBC que tiene instalados la computadora, lógicamente debes elegir el que dice «Firebird/Interbase(r) driver»
A continuación debes indicarle los parámetros de conexión, o sea los datos que se necesitan para que pueda conectarse a una Base de Datos de Firebird:
Captura 3. Si haces clic en la imagen la verás más grande
Siempre es recomendable que verifiques que has escrito todo correctamente y por lo tanto que la conexión pueda realizarse exitosamente, eso lo haces con un clic en el botón «Probar conexión»
Captura 4. Si haces clic en la imagen la verás más grande
Si la conexión es satisfactoria entonces ya tienes creada una conexión a tu Base de Datos mediante DSN. Esa conexión DSN luego podrás usarla desde Excel o desde muchos otros programas, incluidos los que escribas con tu lenguaje de programación (Visual FoxPro, Visual Basic, Delphi, C, C++, Java, etc.)
Naturalmente que el nombre de tu origen de datos DSN lo eliges tú, ERP2000 es solamente un ejemplo, tú ponle el nombre que más te guste.
Captura 5. Si haces clic en la imagen la verás más grande
Como puedes ver en la Captura 5. ahora hay un nuevo origen de datos ODBC, el que acabamos de crear hace un instante.
Paso 4. Abrir Excel
Bueno, este paso no merece comentarios, porque si aún no sabes abrir Excel …
Paso 5. Importar el contenido de una tabla o de una vista
Captura 6. Si haces clic en la imagen la verás más grande
Primero, le indicamos al Excel que queremos importar datos desde un lugar externo, lo hacemos mediante clics en las opciones:
Datos | De otras fuentes | Desde Microsfot Query
tal como podemos ver en la Captura 6.
Captura 7. Si haces clic en la imagen la verás más grande
Y ahora en el cuadro de diálogo «Elegir origen de datos» vemos que … ¡¡¡está nuestra conexión DSN!!!
Excelente, significa que podemos conectarnos sin problemas a nuestra Base de Datos de Firebird.
Captura 8. Si haces clic en la imagen la verás más grande
A la izquierda vemos los nombres de todas las tablas y de todas las vistas que tiene nuestra Base de Datos, a la derecha las columnas que aparecerán en la planilla Excel. Si queremos ver a todas las columnas entonces hacemos clic en el botón «>» tal como lo muestra la flecha roja. Pero si queremos elegir solamente algunas columnas entonces deberíamos hacer clic en el botón «+» que se encuentra a la izquierda del nombre de nuestra tabla o vista.
Captura 9. Si haces clic en la imagen la verás más grande
Si luego hacemos clic en el botón «Siguiente» podremos filtrar datos (es decir, establecer las condiciones para que sean mostrados), ordenarlos por alguna columna, y elegir si deseamos verlos en una planilla Excel o en una consulta de Microsoft Query. Finalmente en el cuadro de diálogo «Importar datos» elegimos otras opciones y luego clic en el botón «Aceptar»
Captura 10. Si haces clic en la imagen la verás más grande
Y como resultado de haber seguido todos estos pasos obtenemos esto:
Captura 11. Si haces clic en la imagen la verás más grande
O sea que el contenido de nuestra tabla ASIENTOSCAB de la Base de Datos ERP2000 ahora se encuentra en una planilla de Excel. Interesante. ¿Verdad?
Conclusión:
Si creamos una conexión DSN a nuestra Base de Datos entonces podremos acceder a sus tablas y a sus vistas desde muchos programas externos, por ejemplo Excel, tal como se vio en este artículo.
Artículo relacionado:
Oscar Benitez
Mar 18, 2014 @ 02:35:00
Excelente artículo, felicidades
wrov
Mar 18, 2014 @ 16:55:10
Gracias Oscar.
Saludos.
Walter.
Firebird News » Using EXCEL to read Firebird databases article in Spanish
Mar 18, 2014 @ 09:25:10
Oleg Korotkii
Mar 21, 2014 @ 04:54:51
I’ve made a simple macro, which executes query with text of cell’s value, and put result into this cell, very useful.
wrov
Mar 21, 2014 @ 14:30:16
Very good Oleg, can you share your macro with us?
I’ll write an article with your name as the author of the technique.
Greetings.
Walter.
Oleg Korotkii
Mar 23, 2014 @ 23:53:51
Of course, i’ve registered a new odbc connection to database, created a new excel file with macro:
Dim cnn, rec
Sub sql_select()
On Error Resume Next
Application.ScreenUpdating = False
If cnn = «» Then
Set cnn = CreateObject(«ADODB.Connection»)
cnn.Open «odbc_connection_name»
Set rec = CreateObject(«ADODB.Recordset»)
rec.ActiveConnection = cnn
End If
For i = 1 To Selection.Rows.Count
For j = 1 To Selection.Columns.Count
If LCase(Left(Trim(Selection.Cells(i, j).Text), 6)) = «select» Or LCase(Left(Trim(Selection.Cells(i, j).Text), 7)) = «execute» Then
rec.Open Selection.Cells(i, j).Text
Selection.Cells(i, j).ClearComments
Selection.Cells(i, j).CopyFromRecordset rec
If Not Err.Number = 0 Then
Selection.Cells(i, j).AddComment (Err.Description)
Err.Clear
End If
rec.Close
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
Saved this file, then created a new file in office 2007/2010/2013, and added this macro to the shortcut bar, to be able to execute macro not only by mouse clicking, but also by the keyboard.
wrov
Mar 24, 2014 @ 01:45:09
Thank you very much for your time, Oleg.
I’m sure your code will be very useful for many readers of this blog.
Greetings.
Walter.
fazz
Mar 31, 2014 @ 16:39:08
Es posible ejecutar un SP en Excel
wrov
Mar 31, 2014 @ 16:48:20
En realidad no lo sé porque no lo he probado, pero es una muy buena pregunta, habría que investigar un poco para responderla.
Saludos.
Walter.
fazz
Mar 31, 2014 @ 17:05:09
Gracias por tu comentario Walter, de ser viable seria una buenísima solución para quienes utilizan esta metodoligia
mdfnetManuel
Sep 30, 2014 @ 22:13:36
Me funciona perfecto, perdon por mi ignorancia pero como puedo hacer para que cuando modifique el dato en excel se actualice en el firebird? me podrias dar una ayuda?
Desde ya muchas gracias
Oleg Korotky
Oct 01, 2014 @ 10:42:46
You can modify macro by adding «update»/»execute procedure» clause, or update data using «execute block». Just select cells with queries and run macro.
wrov
Oct 01, 2014 @ 11:31:46
Gracias Oleg por la respuesta.
Saludos.
Walter.
mdfnetManuel
Oct 01, 2014 @ 11:35:11
Muchas gracias lo probare y les cuento
Fazz
Oct 01, 2014 @ 15:12:19
Tendrían algún ejemplo con una conexión por medio de macros ya funcional ??Veo que Oleg sugiere una alternativa pero no me queda bien claro.
Almagar
Ene 08, 2015 @ 10:21:24
Excel no se puede conectar a la base de datos en Red. Alguna idea ?
Gracias.
Julián May
Jun 11, 2015 @ 01:14:58
Hola Walter eh hecho lo que dice el articulo pero me marca un error al querer ejecutar desde Microsoft Query
La Arquitectura del DNS Especificado no coincide entre el controlado y la aplicación.
Utilizo windows 8.1 y Excel 2013.
Saludos
fazz
Ago 19, 2015 @ 13:20:25
Hola Julian.
Aparentemente necesitarías el controlador ODBC de acuerdo a la arquitectura de tu maquina si es de 32bits o 64bits, puedes acceder a los mismos desde esta link http://www.firebirdsql.org/en/odbc-driver/
jesus
Ago 19, 2015 @ 15:08:16
buenas tardes una pregunta al probar la conexion me sale un error que no puede abrir la bd, saben cual puede ser la causa, la cuenta y contraseña son corectos
wrov
Ago 20, 2015 @ 16:51:25
¿Te refieres a abrir la Base de Datos desde Excel?
Saludos.
Walter.
jesus
Ago 21, 2015 @ 12:22:26
ya pude solucionarlo, ahora el problema que tengo que al querer abrir el dsn me sale un error con la ruta del fbclient.dll
«unable to connect to data source: library’C:\program files………\fbclient.dll’ failed to load.
lo raro es que el dia de ayer funcionaba a la perfeccion, espero me puedas ayudar gracias
jesus
Ago 21, 2015 @ 12:24:48
en la configuración de odbc realizo la prueba de conexión y sale exitosa con la misma ruta del dll
Alejandro
Oct 28, 2015 @ 13:28:22
Segui la ruta para localizar el archivo hasta la carpeta bin de firebir, pero al abrir el ODBC y agregar no me muestra la opcion Firebir
javier gomez
Nov 17, 2015 @ 00:24:24
me gustaría utilizar BI en bases de datos firebird, he intentado con powerpivot, no lo he logrado.. alguna sugerencia?
Hugo R.González B.
Oct 19, 2016 @ 20:06:10
Estoy tratando de conectar Power Pivot Excel 2016 win 64 bits, con firebird de 32 bits, sin embargo no se como hacerlo. Fueran tan amables de desarrollar o explicar tal y como la explicación anterior.
Gracias
andreszarza
Nov 28, 2016 @ 10:17:21
Hugo R. González B.
No cuento con la versión 2016 pero lo he logrado con la versión 2013 pero de
32 bits.
Tuve el mismo problema pero con Power BI de 64 bits con firebird de 32, como solución en aquel entonces por problemas de incompatibilidad en las arquitecturas no me quedo de otra que refrescar mis datos en Excel desde mi base de datos y esta conectarla a Power BI
Leo
Mar 28, 2017 @ 15:13:44
Muchas gracias, lo hice paso a paso, y pude realizar la conexion que necesitaba.
wrov
Mar 28, 2017 @ 16:15:18
Que bueno que te haya resultado útil.
Saludos.
Walter.
Roger Acosta
Nov 28, 2017 @ 22:10:12
Muchas gracias, excelente aportación
wrov
Nov 29, 2017 @ 19:51:08
Gracias a tí, por el comentario positivo.
David Garcia
Jun 29, 2018 @ 17:24:45
Hola. Y si el Excel lo tengo en otra computadora, como se haría la conexión?
Luz Belem
Mar 07, 2019 @ 20:07:05
Hola, en maquinas a 32 bits no tengo ningún problema, y solo he podido en una a 64, pero tengo 3 maquinas con 64 que no puedo ver desde EXCEL la conexión ODBC ya creada … alguna idea? .. según no puede ver el fbclient.dll, pero si lo tengo 😦
IT Savius
Nov 11, 2020 @ 12:54:02
Es debido a la versión del firdbird del dll la puedes tomar de aqui https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0_x64.zip
Liis
Abr 06, 2019 @ 03:57:23
Tengo problemas para conectar ya hice paso a paso y me dice conexion fallida alguna idea de que puedo revisar
Miguelote
Sep 04, 2019 @ 15:06:44
Checa bien la ruta de tu FDB y la del dll en la configuración en tus Origenes de Datos
Jeronimo Poblano Cuellar
Sep 19, 2019 @ 20:13:58
al intentar conectarme desde excel, me sale el error «unable to connect to data source: library ´C:\program files [x86]\Firebird\Firebird_2_5\bin\fbclient.dll´ failed
wrov
Sep 22, 2019 @ 13:54:22
¿Y estás seguro que el archivo FBCLIENT.DLL existe en esa carpeta?
manuel Salazar
Jul 26, 2020 @ 19:50:38
en odbc la conexion hacia la tabla firebird dice correcta, (satisfactoria), pero en excel sale , error al intentar conectarme desde excel, me sale el error “unable to connect to data source: library ´C:\program files [x86]\Firebird\Firebird_2_5\bin\fbclient.dll´ failed
Sergio Segura
Oct 22, 2019 @ 15:10:34
Hola, buenas tardes, que tan seguro es manejar la base de datos desde Excel cuando esta está siendo utilizada desde un sistema por varios usuarios (en especifico Aspel SAE, Sistema Administrativo Empresarial de facturación e inventarios)
wrov
Oct 23, 2019 @ 10:43:34
Hola
Firebird es 100% seguro, lo que hace cada usuario es totalmente independiente de lo que hacen los demás usuarios. Lo peor que podría ocurrir es que un usuario no pueda modificar una fila que otro usuario empezó a modificar antes. Y hasta que el primero no finalice su transacción con un COMMIT o con un ROLLBACK, el segundo no podrá realizar cambios a esa fila.
Saludos.
Walter.
Sergio Segura
Oct 23, 2019 @ 18:13:51
Muchas gracias
Alvaro
Dic 15, 2023 @ 19:48:03
Te sugiero acceder con MsAccess
Mario Gómez
Abr 23, 2020 @ 13:56:04
Hola, Se puede abrir una base de datos usando excel de 64 bits? según lo que estuve intentando solo me deja con el excel de 32bits.
rurvina
May 15, 2020 @ 19:59:23
Si se puede, lo hice en Excel 2019 x64 con FB 2.5.9 x64, y también funcionó con FB 2.5 x32. Lo que se debe cuidar es que el odbc sea el adecuado, es decir si tiene el server de 64 bits que el odbc también sea de 64 bits.
María Inés Hernández Flores
Mar 10, 2021 @ 14:07:18
Hola, he seguido los pasos pero no me acepta usuario y contraseña, ¿es alguna en especifico? o ¿debo establecerla?, ¿si es así como lo hago?
wrov
Mar 11, 2021 @ 10:52:35
Hola. Puedes usar cualquier usuario y contraseña válidos, o sea que te permitan la conexión a tu Base de Datos.
Verifica que el archivo fbclient.dll y el driver ODBC que instalaste sean los correctos.
Saludos.
Walter.
Miguel H
Jun 22, 2021 @ 11:09:12
Gracias Walter por tu aporte, me ayudó mucho en su momento y ahora tu blog es visita recurrente y obligada para mi, sin embargo, sé el esfuerzo que requiere crear este tipo de contenidos y por lo mismo, no me gusta que otras personas se apropien del trabajo de uno, he encontrado documentos que describen estos mismos procesos y son capturas de tu página web, pero distinto «autor». Gracias por compartir tus conocimientos.
wrov
Jun 28, 2021 @ 19:34:16
Gracias Miguel
Siempre hubo, hay, y habrá piratas. Ya varias veces me han pirateado documentos que yo escribí y luego solamente cambian el nombre del autor.
Saludos.
Walter.
Jhironsel Diaz
Ene 13, 2023 @ 23:23:42
Cuando la piratería te toma en cuenta es por que tu trabajo es formidable, caso contrario debes revisar en que estas fallando.
JAVIER PORTAS VENTURA
Ene 31, 2022 @ 15:07:18
he hecho muchas conexiones de base de datos firebird con excel, con este procedimiento, nunca he tenido problemas cuando lo hago en el servidor donde se encuentra la base de datos, mi problema radica cuando lo intento hacer una pc conectada a la red, con todo y que le doy la ruta de la base de datos, a la hora de probar conexión, me marca failed.
Jimmy
Mar 13, 2022 @ 01:31:45
Muchas gracias, aun en el 2022 este blog me saco de apuros, muy buen tutorial.
y para los que tienen problemas con el error fbclient.dll es por que deben tener o bien todo en 64 bits o bien todo en 32 bits depende mucho hasta la version del excel tiene que coincidir con la arquitectura del firebird, actualmente me funcion en en equipo con windows 10 de 64 bits
carlos andres
Dic 02, 2022 @ 14:39:35
Buena tarde, por favor me gustaría saber como paso campos de tipo de dato blob.
muchas gracias
Federico
Jul 12, 2023 @ 18:25:57
Buenas tardes! despues de mucho intentarlo no consigo salir del siguiente error: ¡Conexión fallida! unsupportedon-disk structure for file D: xxx/xxxxx.FDB; found 11.2, support 13.0
wrov
Jul 12, 2023 @ 20:22:10
Hola, cada versión mayor del Firebird crea a las bases de datos con un número de ODS (On Disk Structure). El número de tu versión del Firebird debe coincidir con el número de ODS de tu Base de Datos. O no podrá abrirse esa Base de Datos.
El número 11.2 significa «creado con Firebird 2.5», el número 13 significa «creado con Firebird 4».
Para pasar una Base de Datos de un ODS a otro ODS:
1. Crea un backup usando la versión del Firebird con la cual fue creada la Base de Datos (en tu caso: Firebird 2.5)
2. Restaura ese backup en la versión nueva del Firebird (en tu caso: Firebird 4)
Con eso, la Base de Datos adquirirá las características del Firebird 4 y ya podrás usarla con el Firebird 4.
Saludos.
Walter.
Mario Michelazzo
Dic 18, 2023 @ 15:36:44
Hola. Les hago una consulta.
Tengo una base de datos Firebird y en una tabla tengo un campo tipo blob, que almacena textos largos (varios renglones).
Me conecto desde excel sin problemas pero no me muestra ese campo.
Me muestra todos los campos pero eso no. Es como si el excel no viera o no reconociera ese tipo de dato.
¿Alguna sugerencia?