Los registros duplicados en Access

Tengo un registros que es el siguiente:

NoID Fecha Horas Estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 20/07/2018 6:35:00 p.m. Sal/T.Extra
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 19/07/2018 6:35:00 p.m. Sal/T.Extra
1 19/07/2018 4:36:00 p.m. Ent/T.Extra

Pero si miramos en la parte de las Horas y de estado se repite la Ent/T. Extra y quiero que me muestras los registros que están duplicado o no duplicados

¿Qué debería Utilizar en seste caso?

2 respuestas

Respuesta
1

En tus registros que muestras ninguno esta duplicado ya que la fecha cambia.

Si quieres hacer una consulta sobre tus registro que tienen Ent/T. Extra

SELECT * FROM miTabla WHERE Estado = "Ent/T. Extra"

¡Gracias por tu respuesta Antonio Cuellar pero me sale las Ent/T. Extra así:

NoID Fecha Horas Estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra

1 19/07/2018 4:36:00 p.m. Ent/T.Extra

1 20/07/2018 4:35:00 p.m. Ent/T.Extra

Pero aun me sale un registro que no deberiar que es la que esta en Negrilla

¿Qué debería hacer?

Tienes que agregar otra condición a tu consulta para que solo te salgan esos 2 que no están en negritas.

SELECT * FROM miTabla WHERE Estado = "Ent/T. Extra" AND Horas = #4:35:00 p.m#

Pero ojo aquí.

Si tienes un registro de la siguiente manera 1 20/07/2018 4:36:00 p.m. Ent/T.Extra no saldrá ya que tu consulta es a una hora exacta.

-------------------------

De la siguiente manera saldrán todos los registros que te tengan el estado = "Ent/T. Extra" en un las 24 hr del día, sin importar la fecha. Este ejemplo si saldría 1 20/07/2018 4:36:00 p.m

SELECT * FROM miTabla WHERE Estado = "Ent/T. Extra" AND Horas Between #00:00:00# And #23:59:59#

Gracias!

Según lo que me dices del código debe salir así:

NoID Fecha Horas Estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 19/07/2018 4:36:00 p.m. Ent/T.Extra
1 20/07/2018 4:35:00 p.m. Ent/T.Extra
1 21/07/2018 4:35:00 p.m. Ent/T.Extra

Pero me repite la Fecha(19/07/2018) pero en hora es diferente por un minuto

¿En este caso que debo hacer?

Así es la siguiente consulta hace lo anterior, que mencionas.

SELECT * FROM miTabla WHERE Estado = "Ent/T. Extra" AND Horas Between #00:00:00# And #23:59:59#

Esta consulta :

SELECT * FROM miTabla WHERE Estado = "Ent/T. Extra" AND Horas = #4:35:00 p.m#

Te devolverá lo siguiente:

NoID Fecha Horas Estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 20/07/2018 4:35:00 p.m. Ent/T.Extra
1 21/07/2018 4:35:00 p.m. Ent/T.Extra

Explícame mejor que resultado quieres. ¿Dime cómo quieres que se muestre?

Tengo la tabla de Registros que es la siguiente:

NoID Fecha Horas Estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 19/07/2018 4:36:00 p.m. Ent/T.Extra
1 19/07/2018 6:35:00 p.m. Sal/T.Extra
1 20/07/2018 4:35:00 p.m. Ent/T.Extra
1 20/07/2018 6:35:00 p.m. Sal/T.Extra
1 21/07/2018 4:35:00 p.m. Ent/T.Extra
1 21/07/2018 6:35:00 p.m. Sal/T.Extra

Quiero que los registros solo me muestra de la siguiente forma teniendo en cuenta que me traiga solo la primera marcación:

NoID Fecha Horas Estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 19/07/2018 6:35:00 p.m. Sal/T.Extra
1 20/07/2018 4:35:00 p.m. Ent/T.Extra
1 20/07/2018 6:35:00 p.m. Sal/T.Extra
1 21/07/2018 4:35:00 p.m. Ent/T.Extra
1 21/07/2018 6:35:00 p.m. Sal/T.Extra

Esto es lo que yo necesito o que me muestre ¿cuáles son los datos Duplicados?

No comprendo bien.

¿A qué te refieres con la primera marcación?

El resultado final quieres esto :

1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 19/07/2018 6:35:00 p.m. Sal/T.Extra
1 20/07/2018 4:35:00 p.m. Ent/T.Extra
1 20/07/2018 6:35:00 p.m. Sal/T.Extra
1 21/07/2018 4:35:00 p.m. Ent/T.Extra
1 21/07/2018 6:35:00 p.m. Sal/T.Extra

¿La primera entrada y salida de cada fecha?

si así como me dices 

DE acuerdo esperame un momento.

vale 

Ya lo tengo. Prueba esta consulta. Cambia el nombre tabla1 por el nombre de tu tabla.

SELECT Tabla1.NoID, Min(Tabla1.horas) AS MínDehoras, Tabla1.fecha, Tabla1.estado
FROM Tabla1
GROUP BY Tabla1.NoID, Tabla1.fecha, Tabla1.estado
HAVING (((Tabla1.estado)="Ent/T.Extra"))
ORDER BY Tabla1.fecha;
Union 
SELECT Tabla1.NoID, Max(Tabla1.horas) AS MáxDehoras, Tabla1.fecha, Tabla1.estado
FROM Tabla1
GROUP BY Tabla1.NoID, Tabla1.fecha, Tabla1.estado
HAVING (((Tabla1.estado)="Sal/T.Extra"))
ORDER BY Tabla1.fecha;

¡Gracias! Me sirvió mucho

De nada.

Te invito a que te pases por mi canal y te suscribas tiene mucho ejercicios de VBA Access el código lo dejo en la descripción de cada vídeo.

 https://www.youtube.com/channel/UCjS6fHbImLyqtrcdHvJLRgg?sub_confirmation=1

Hola Antonio Cuellar 

otra vez yo Yeimmy que pena contigo por lo que has nostado no se casi nada de Access y te quero pedir un favor del codigo que me enviaste funciona perfectamente bien para lo que necesitaba pero ahora ingreso datos y tengo lo siguiente:

NoID fecha horas estado
1 19/07/2018 4:35:00 p.m. Ent/T.Extra
1 19/07/2018 6:35:00 p.m. Sal/T.Extra
2 19/07/2018 4:35:00 p.m. Ent/T.Extra
2 19/07/2018 6:35:00 p.m. Sal/T.Extra
1 20/07/2018 4:35:00 p.m. Ent/T.Extra
1 20/07/2018 6:35:00 p.m. Sal/T.Extra
1 21/07/2018 4:35:00 p.m. Ent/T.Extra
1 21/07/2018 6:30:00 p.m. Sal/T.Extra
1 22/07/2018 4:35:00 p.m. Ent/T.Extra 

el registro que esta en Negrita como puedes notar esta solo no tiene la Sal/T. Extra y si fuera Sal/T.Extra tambien estaria solo sin registro de Ent/T. Extra y la verdad no se que hacer en este caso ¿?

Pues tampoco sabría que quieres hacer ante ese caso, no se que hace tu base.

1 22/07/2018 4:35:00 p.m. Ent/T.Extra <--------- Este registro me indicaría que el dia 22/07/2018 no registraron salida o aun no la han registrado.

Y si saliera solo Sal/T.Extra , es por que no registraron entrada

Pero tu dime ¿qué quieres hacer?, como lo dije anteriormente no entiendo para que utilizas tu base de datos.

Lo que quiero es eliminar los registros que están solo sea Sal/T. Extra o Ent/T. Extra y sí es verdad lo que dices que no registran Ent/T. Extra o Sal/T. Extra pero como te digo seria eliminar esos registros ¿cómo seria?

Disculpa la demora tenia trabajo aquí esta la consulta. De igual manera remplaza tabla1 <--- por tu tabla

SELECT Tabla1.NoID, Tabla1.fecha, Min(Tabla1.horas) AS MínDehoras, Tabla1.estado
FROM Tabla1
GROUP BY Tabla1.NoID, Tabla1.fecha, Tabla1.estado, Tabla1.fecha
HAVING (((Tabla1.estado)="Ent/T.Extra") AND ((Tabla1.fecha) In (SELECT Tabla1.fecha FROM Tabla1 GROUP BY Tabla1.fecha HAVING (((Count(Tabla1.[fecha]))>1) ))))
ORDER BY Tabla1.fecha;
UNION
SELECT Tabla1.NoID, Tabla1.fecha, Max(Tabla1.horas) AS MáxDehoras, Tabla1.estado
FROM Tabla1
GROUP BY Tabla1.NoID, Tabla1.fecha, Tabla1.estado, Tabla1.fecha
HAVING (((Tabla1.estado)="Sal/T.Extra") AND ((Tabla1.fecha) In (SELECT Tabla1.fecha FROM Tabla1 GROUP BY Tabla1.fecha HAVING (((Count(Tabla1.[fecha]))>1) ))))
ORDER BY Tabla1.fecha;
Respuesta

Acababa de responder algo parecido

Resaltar registros duplicados en formulario de Access

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas