Informes

Hola
Tengo una aplicación para generar calendarios laborales del personal. Cada empleado es una tabla distinta con tantos registros como días tiene el año.
Tengo un Informe que lo llamo Patrón y lo utilizo digamos de comodín.
Lo que quiero hacer, si se puede, es que este informe tome como Origen del Registro el nombre que figura en un cuadro de texto de un formulario que corresponde a una tabla de empleados y que dentro de dicha tabla realice un filtro por un campo que se llama Mes.
La idea es utilizar un solo informe para todas las tablas y poder listar los datos de cada empleado cada mes
Al hacerlo con Consultas también tengo problemas al generar la consulta con cada nueva Tabla que creo nueva.
Un saludo

3 Respuestas

Respuesta
1
Es que lo que tú pides es imposible. Access no es capaz de ejecutar SQL dinámico. Es quizás posible (aunque no estoy muy puesto en Visual Basic porque yo trabajo directamente con PHP) que con el Visual Basic integrado en Access se pueda modificar la consulta SQL que deberías generar modificando en cada paso el nombre de la tabla, pero en cualquier caso, sería un buen lío. Los controles de los informes que genera Access sólo pueden utilizar campos determinados de tablas determinadas, pero no usar una variable para determinar qué tabla usar.
Yo te recomendaría que hicieras lo más lógico: crea una tabla que contenga los datos de todos los días de todos los empleados, añadiendo una clave (el dni por ejemplo) para todas las filas de los días de ese empleado. Eso te va a permitir hacer cualquier consulta y cualquier informe sin complicaciones
Al no poder hacer lo que pretendo ha cambiado un poco el sistema para hacerlo de otra forma. Parece que es complicado puesto que nadie me da una solución. De todas formas muchas Gracias.
Respuesta
1
Creo que lo he entendido. A ver si es así. Supongamos que la empresa tiene 2 empleados llamados EmpleadoA y EmpleadoB. En cada tabla de empleado tenemos 4 campos (después lo aplicas a los campos que quieras):
- Idempleado
- Nombre (igual que el nombre de la tabla)
- Ano
- Mes
- Día
Las tablas de empleados se llaman EmpleadoA y EmpleadoB.
En un formulario insertas un cuadro de texto para que se introduzca el nombre de la tabla del empleado. Le llamamos Texto20 (x ejemplo).
Después insertas un botón de comando (CommandButton). En el Asistente seleccionas Operaciones con Informes-Vista Previa del Informe. Seleccionas el informe en cuestión y todo para adelante hasta terminar el asistente. Entonces botón derecho del ratón encima del CommandButton que acabas de crear. Propiedades-Eventos-Al hacer click [...]
Te va a aparecer la ventana de programación de Visual Basic. Entonces sustituyes esto:
stDocName = "Informe"
DoCmd. OpenReport stDocName, acPreview
... por esto otro:
stDocName = Texto20
DoCmd. OpenReport stDocName, acPreview
Y ya está. Si tienes alguna consulta no dudes en escribir.
Un saludo,
agmiron
Después de mucho trajinar por la ayudas, llegue a la misma conclusión que me explicas, pero no logro hacer lo del filtro. Gracias de todas formas
Respuesta
1
¿Utilizas oracle forms y reports?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas