EXportar datos a Excel

Tengo otra pregunta a ver si me puedes ayudar.
Tengo mi Base de datos y un menu-formulario con varias opciones que sale según abres la BD.
Cada registro de la base de datos contiene información sobre un electrodoméstico. (Sus propiedades) y luego tienen un subformulario con el historial técnico de ese aparato(fecha, tipo de reparación, técnico que la realizo, etc, etc...)
Una de las opciones es exportar a Excel. Bien, me gustaría saber si es posible hacer lo siguiente:
Me gustaría poder exportar los datos que yo seleccionara. Es decir, que pudiera exportar por fechas por ejemplo. Que yo dijera Exportar por fechas desde el 3 de marzo al 9 de marzo.
O exportar por técnicos, que yo seleccionara de un desplegable el técnico que quiero y que me exportara a Excel un listado de ese técnico.
Lo suyo, creo yo, sería utilizar un formulario con checkboxes, que determinaran las condiciones para seleccionar los registros a exportar.
¿Comprendes? Por ejemplo una ventana en la que marcara el checkbox Fecha y seleccionara un rango de fechas, y también marcar el checkbox del técnico y eleigira un técnico. Entonces eso exportaría a Excel un listado de ese técnico entre las fechas indicadas.
¿Esto es posible hacerlo? ¿Hay alguna manera mejor?

1 respuesta

Respuesta
1
Estás contestando a la pregunta ya que lo que se hace es introducir los criterios en cajas de texto, combos o cuadros de lista. Ahora bien dónde está el problema: filtrar los datos según lo que tengas seleccionado en el formulario.
Antes de nada una aclaración: imagino que si el modelo de BD está bien tendrás una tabla de técnicos, y por tanto, en la tabla dondes guardas el historial sólo tendrás su identificador. Si es así el valor que debe tener el cuadro combinado o cuadro de lista del formulario será el identificador y no el nombre del técnico.
Crea una consulta basada en la tabla del historial, si está bien relacionada tendrás el identificador del aparato, ejecutala signo admiración y comprueba que te muestra los registros correctos. Ahora vamos a filtrar esos datos según los criterios que elijas en un formulario para eso sólo tienes que poner en criterios Forms! Nombreformulario! NOMBRECOMBO para el código del técnico (los corchetes te los pone solo) y en el campo de fecha Entre Forms! Nombreformulario! FECHAINICIAL Y Forms! Nombreformulario! FECHAFINAL sustituye NOMBREFORMULARIO por el nombre del formulario que usarás para filtrar los datos, NOMBRECOMBO por el nombre del cuadro combinado que contenga el código del técnico, FECHAINICIAL por el nombre del cuadro de texto que usurás para introducir la fecha inicial y FECHAFINAL por el nombre del cuadro de texto que usurás para introducir la ficha final.
Ejecuta la consulta debería aparecer un mensaje pidiéndote el valor del parámetro para el código del técnico, la fecha inicial y la fecha final. Comprueba que los datos que muestra son los correctos. Guarda la consulta con un nombre que recuerdes.
Hemos hecho lo más difícil ya que exportar los datos a Excel lo automatizaremos mediante una macro.
Para exportar los datos crea botón de comando y en eventos ---- Al hacer Click Generardor de Macro, Salida Hacia ---- Selecciona Consulta, Nombre de Consulta, Formato: Excel 97-2003 Autoinicio: Sí
Con esto ya resuelves tu problema.
Buenas,
Muchas Gracias. Ya he podido hacerlo, pero tengo un par de dudas:
AL exportarlo a Excel, todos los campos que estaban almacenados en tablas, me salen con el numero de ID, en vez del nombre que hya almacenado en esa tabla.
Es decir, al exportarlo a Excel, en la tabla modelo me aparece "1" en vez de "Frigorífico".
¿Cómo puedo cambiar eso?
Un saludo y gracias por adelantado de nuevo.
Te aclaro, seguramente en la consulta (en la instruccione SELECT verás que aparece INNER JOIN) has puesto todas las tablas relacionadas en vez sólo la tabla que contiene los datos que quieres exportar, es un error más comúm de lo que crees. Imagino que tienes una tabla con el historial del aparato y que está relacionada con el aparato, el técnico, etc. coge solo esa tabla y no las que estén relacionadas ya que no son necesarias ya que de lo contrario mostrará los códigos en vez de los nombres.
Buenas,
Gracias de nuevo por la respuesta, pero no consigo hacerlo bien.
Esta es la consulta que tengo hecha:
SELECT tbl_Historial.Fecha, tbl_Historial.Servicio, tbl_Historial.Detalle, tbl_Historial.Observaciones, tbl_Historial.Instalador, tbl_Empresa.Modelo, tbl_Empresa.Lector, tbl_Empresa.Version
FROM tbl_Empresa INNER JOIN tbl_Historial ON tbl_Empresa.Id = tbl_Historial.Id
WHERE (((tbl_Historial.Fecha) Between [Forms]![Subformulario_Busqueda]![Fecha_Ini] And [Forms]![Subformulario_Busqueda]![Fecha_Fin]) AND ((tbl_Historial.Instalador)=[Forms]![Subformulario_Busqueda]![CB_Busq_Tecnicos]));
He estado mirando y en la tbl_Empresa, también guarda números en vez del texto, pero supongo que eso será normal para mantener las relaciones.
A ver si pudieras ayudarme,
Un saludo
Es lo que te comentaba en el post anterior has seleccionado DOS TABLAS tbl_Historial y tbl_Empresa que están relacionadas, por eso aparece INNER JOIN quita la tabla tbl_Empresa porque no es necesaria. Si colocas las dos estás diciéndole que tiene que mostrar el código.
Buenas,
Lo siento pero no lo entiendo.
Dices que elimine la tabla_Empresa de la consulta, pero no se de donde francamente,
Supongo que después del SELECT no será, porque ahí se están indicando los campos sobre los que se quiere generar la consulta.
Y luego lo del Inner Join no lo entiendo muy bien, de hecho me he puesto a tocarlo y probar y me he cargado las dos consultas que tenía.
No se como tengo que hacerlo la verdad.
Un saludo y Gracias por la paciencia,
Te pongo un ejemplo:
Tblaparatos tbltecnicos tblreparaciones
Cod_Aparato                Cod_Tecnico            Nº_Reparacion
Aparato                        Tecnico                    Fecha_Reparacion
                                      Categoría Aparato (Relacionado con TBLAPARATO)
                                                                   Técnico (Relacionado con TBLTECNICOS)
Si haces una consulta (creala en vista diseño) sobre la tabla TBLREPARACIONES sin incluir ninguna de las otras dos tablas y exportas los datos, no aparecerán los códigos que está guardando para el Aparato y para el Técnico, pero si añado alguna tabla relacionada y exporto los datos si que saldrá el código en vez de el nombre.
Una vez dicho esto y sabiendo que necesitas datos de varias tablas, en concreto, de tbl_Historial y tbl_Empresa que están relacionadas coloca el campo que contiene el texto. Si continuamos con el ejemplo anterior quiero hacer una consulta que contenga los datos de TBLREPARACIONES y la Categoría de TBLTECNICOS si la ejecuto aparecerá el nombre del Técnico pero si lo exporto saldrá Cod_Tecnico, para evitar esto sustituye el campo Técnico de TBLREPARACIONES por Técnico de TBLTECNICOS, aunque en este caso si queremos saber las reparaciones efectuadas por un determinado técnico podríamos ocultar el campo (quitar la casilla de verificación)
Buenas,
No lo consigo. La verdad es que ahora mismo dudo si se puede hacer o no.
Mira, te lo voy a explicar lo mejor que pueda.
Creo que el problema esta en que no tengo las tablas relacionadas. Es decir, yo tengo dos tablas relacionadas entre sí : TBLHistorial (con campos que almacenan información sobre reparaciones) y TBLProducto (donde se guardan la información sobre el producto y su propietario).
La tabla TBLHistorial esta relacionada con la tabla TBLProducto por un campo llamado ID.
Esa es la única relación que existe en mi base de datos.
- Luego, en la tabla TBLHistorial tengo varios campos como fecha, servicio, etc... y un campo "Tecnico" para poner el nombre de quien lo ha hecho. El caso es que este técnico esta hecho en un Cuadro Combinado y los valores son tomadosde una tabla llamada TBLTecnico (esta tabla esta formada por Cod_Tecnico, Técnico). Yo tengo puesto que el valor que me almacene la tabla TBLHistorial sea el ID, en vez del nombre.
- Igualmente la tabla TBLProducto tiene varios campos, siendo algunos de ellos igual que el caso anterior. Por ejemplo la version del producto. Para ese campo tengo una tabla cerada TBLVersion (que contiene las versiones posibles según el modelo que sea - entonces esta tabla tiene (Cod_Version, Version, Modelo). Pero el valor que se almacena en la TBLProducto es el identificador y no el nombre. Así tengo varias tablas.
El caso es que sin intento hacer una consulta y poner directamente la version de la tabla TBLVersion, me dice que no hay relación entre esa tabla y las otras y que no se puede hacer.
No se si me he explicado bien.
A ver si me puedes ayudar porque se me esta complicando ya en exceso este asunto me parece...
Un saludo
El problema son las relaciones como bien dices, deberías "arreglar" la BD y relacionarlas ya que a la larga te darán menos problemas.
Si quieres te dejo mi e-mail y la reviso.
Te lo agradecería enormemente la verdad, porque aunque lo he seguido intentando estos días, no doy con la solución.
Mi email es (xxxxxx)
Un saludo
Mi e-mail es
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas