Access - Ausencia de dato en tablas relacionadas

   
Vista:

Ausencia de dato en tablas relacionadas

Publicado por Rafa (149 intervenciones) el 15/02/2013 11:50:06
Saludos a todos.
Necesito saber por fechas quien no ha asistido al centro, para lo que tengo una tabla que me registra todo el personal que entra y sale del centro con sus correspondientes horas.
por otra parte tengo otra tabla con todo el personal del centro y ambas estan relacionadas por el campo [usuario].
La unica forma que encontre de solventar este problema es creando una consulta con la primera tabla que me pida la fecha para la que quiero filtrar los datos y a continuación hacer otra basada en la otra tabla y esta consulta relacionando todos los registros de la tabla y solo los coincidentes en la consulta y criterio en usuario de la consulta "es nulo", con lo que me sale el personal que en ese día no ha entrado.
Lo que pretendo es hacer un informe que me muestre las ausencias por días de toda una semana, reflejandome la fecha de entrada y el personal que no entró.
gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito

Ausencia de dato en tablas relacionadas

Publicado por Neckkito (1104 intervenciones) el 17/02/2013 16:25:01
Hola!

Lo que pides es relativamente complejo, y más si desconozco la estructura de tu BD.

Te explico una manera de hacerlo. Para ello tendrás que bajarte la miniBD de ejemplo que te he creado y analizarla un poco para intentar adaptarla a tu BD. Yo la he creado con los campos mínimos. La puedes encontrar aquí: http://www.filebig.net/files/a7JEg4mdzU

La mecánica es la siguiente:

- Te creas una tabla auxiliar que te recoja la información del informe (TAux)
- En el formulario que se te abre verás que puedes introducir una fecha de inicio y una fecha de fin a través de dos textbox
- Una vez introducidas esas fechas haces click sobre el botón. El código te rellena la tabla auxiliar con los datos que necesitas y te abre el informe.
- Te creas un informe basado en TAux a través del asistente, y en las opciones de agrupamiento agrupas por fecha "normal".

Evidentemente puede haber varias "variaciones sobre el tema" gracias a las opciones de agrupamiento que te ofrece el asistente. Sin embargo, la mecánica de obtención de los datos pasa por la operativa que te da el código que he programado.

Ya nos dirás qué tal.

Un saludo,


http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ausencia de dato en tablas relacionadas

Publicado por Rafa (149 intervenciones) el 18/02/2013 09:37:42
Me da el mensaje que no coinciden los tipos de datos en la siguiente expresión:

vCheck = DLookup("usuario", "Registro", "nom=" & idPers & _
" AND FechaEntrada=#" & Format(fControl, "mm/dd/yy") & "#")

Te comento que la variable IdPers la he declarado como string ya que el campo del que coge el valor es de texto, así como el campo usuario de la tabla registro tambien es de texto.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

Ausencia de dato en tablas relacionadas

Publicado por Neckkito (1104 intervenciones) el 18/02/2013 09:42:05
Hola!

Si los datos son tipo texto debes indicar los valores entre comillas simples.

vCheck = DLookup("usuario", "Registro", "nom='" & idPers & "'" _
" AND FechaEntrada=#" & Format(fControl, "mm/dd/yy") & "#")

Y no olvides que debe haber una correspondencia en la declaración de variables. Es decir, que si idPers recoge un dato tipo texto en su declaración de variable deberías poner:

Dim idPers as string

A ver cómo te va.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ausencia de dato en tablas relacionadas

Publicado por Rafa (149 intervenciones) el 19/02/2013 00:09:25
Funciona perfecto, cambie el tipo de datos porque me lio un poco con las comillas.
Al final me quedó así:

vCheck = DLookup("Usuario", "Registro", "Tarjeta=" & idPers & _
" AND FechaEntrada=#" & Format(fControl, "mm/dd/yy") & "#")

Como ves no he tocado los nombres de las variables que asignaste ya que ofrecen una visión rapida delcodigo y lo que hace.

Muchas gracias y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar