Visual Basic para Aplicaciones - Obtener registro anterior según criterio

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Lizardo
Val: 3
Ha aumentado su posición en 22 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Obtener registro anterior según criterio

Publicado por Lizardo (2 intervenciones) el 06/10/2020 02:58:44
Buenas noches:
En la base de datos que tengo los usuarios quedan registrados con horas de ingreso y salida. Y, a modo de informe, se le muestra los datos de la última sesión anterior a la activa.
Pero devuelve datos erróneos.
Por ejemplo, con el Usuario X, inició sesión con ID 74 y la inmediatamente anterior (del mismo usuario) es la 69. Pero, por algún motivo me devuelve 51 (y debo aclarar que entre la 51 y la 74 ha habido al menos 15 sesiones.
¿Cómo puedo obtener de forma más precisa la sesión inmediatamente anterior?
1
2
3
4
5
6
7
8
vSesActual = Me.xtxIngreso.Value 'Sesión actual
vIDSesActual = DLookup("[ID]", "[sqlUsuarioActivo]")
vIDSesAnterior = DLookup("[ID]", "[tabUsuarios_Bitacora]", "[INGRESO] < #" & Nz(vSesActual, 1) & "# AND [USUARIO] = '" & Me.txtUsuario.Value & "'") 'ID sesión actual
vSesAnterior = DLast("[INGRESO]", "[tabUsuarios_Bitacora]", "[ID] = " & Nz(vIDSesAnterior, 1) & " AND [USUARIO] = '" & Me.txtUsuario.Value & "'") 'Sesión anterior (Ingreso)
vSalidaUltimaSesion = DLast("[SALIDA]", "[tabUsuarios_Bitacora]", "[ID] = " & Nz(vIDSesAnterior, 1) & " AND [USUARIO] = '" & Me.txtUsuario.Value & "'")  'Sesión anterior (Salida)
vDurSes = DLookup("[SESION]", "[tabUsuarios_Bitacora]", "[ID] = " & Nz(vIDSesAnterior, 1) & " AND [USUARIO] = '" & Me.txtUsuario.Value & "'") 'Duración de la sesión
Me.xtxUltimaSesion.Value = IIf(vSesAnterior = 0, "No implementado.", vSesAnterior) & IIf(vSalidaUltimaSesion = 0, "", "/" & vSalidaUltimaSesion) 'Última sesión
Me.xtxDuracion.Value = IIf(vDurSes = "", "No implmentado.", vDurSes)
Ya no sé qué puedo hacer.
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 Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Obtener registro anterior según criterio

Publicado por Antoni Masana (498 intervenciones) el 06/10/2020 22:07:42
No se que estas haciendo, a parte de lo que cuentas.
No se como es la base de datos, como esta ordenada o indexada.
Que datos tienes.
Que hace la macro.
Que quieres que haga la macro, que aunque no te lo creas son dos cosas diferentes.
Por lo que veo del código debe ser un libro Excel.
Sube el libro y lo miramos.

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