DLast que falla sin motivo aparente

Tengo un formulario que uno de sus campos se auto completa con:

SERIE = DLast("SERIE", "[DETALLE HOJA]", "INSCRIPCION ='" & Me.INSCRIPCION & "' AND TIPOREGISTRO = '" & Me.TIPOREGISTRO & "'") + 1

en principio funciona bien, pero ahora de vez en cuando sin motivo aparente "se gripa", es decir se queda enganchada en una serie y saca siempre la misma. Por ejemplo voy metiendo registros y las serie van cambiando 1,2,3,4,5,6.... Pero llega un momento que empieza a repetir todo el rato el 6 p.e., voy a grabar el que debería ser el 7 y me sale 6, lo cambio paso al siguiente, debería salir 8 y me vuelve a salir 6. Por más que actualizo nada, he probado hasta a cerrar y volver a abrir la aplicación y nada.
No se me ocurre que puede ser... Igual tengo que ponerle que refresque en algún momento...

2 respuestas

Respuesta
2

Mirando tu código y sin un análisis detallado lo único que se me ocurre es que guardes el Registro con un DoCmd. RunCommand acCmdSaveRecord.

Lo que no sé decirte si antes o después de esa línea que citas porque desconozco el resto del entorno. Parece que deba ser después, para que tome el dato en el siguiente. Un saludo >> Jacinto

¡Gracias! Lo probare. Lo único que pasa es que antes de actualizar comprueba que hay existencias de esa serie y si no hay salta un mensaje advirtiéndolo, igual tengo que ponerlo después de la línea dónde se hace la comprobación, cómo pasa de vez en cuando y no siempre, es un poco difícil de probar. Muchas gracias!!!!!!

Respuesta
1

No se que haces exactamente con el valor que obtiene el DLast, pero me temo que igual no es la solución.

Echa un vistazo a aquí: https://docs.microsoft.com/en-us/office/vba/api/access.application.dlast 

¿No te iría mejor un DMáx?

¡Gracias! En principio la hice con el DMáx, pero el problema es que las series no son siempre correlativas, van en packs de 100 independientes y es muy habitual que un usuario grabe primero, por ejemplo, la serie 101 a la 200 y posteriormente la 01 a la 100, por eso pensé que el Dlast es más adecuado, el DMáx sólo funcionaba cuando las series son correlativas, pero vamos que soy muy novata y seguramente hay otra forma mejor de hacerlo. 

Muchas gracias.

Ok

De todas formas, si la construcción de los packs está hecha con algún criterio, siempre puedes utilizar el filtro del DMáx para referirte a un pack concreto.

¡Gracias! Ese es el problema que la distribución de los packs no tiene ningún criterio sobre el que poder calcular, es totalmente aleatoria. De todas formas ¡¡¡¡¡MUCHAS GRACIAS!!!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas