Validar números consecutivos entre dos números ( Min - Max )

Desde gracias por el apoyo que me puedan brindar
Les planteo este gran problema que tengo para validar si está faltando algún número correlativo

Tipo_serie serie correlativo
1 101220 10001
1 101220 10002
1 101220 10003
1 101220 10004
1 101220 10006
2 1320 100
2 1320 101
2 1320 104
2 1320 105
2 1320 106
2 101220 220
2 101220 221
2 101220 224
2 101220 225

Teniendo en cuenta el tipo_serie y serie se debe de hallar que correlativo está faltando..
Ejemplo
De la tabla anterior se debe de crear otra tabla solo con los correlativos que está faltando

Tipo_serie serie Faltante
1 101220 10005
2 1320 102
2 1320 103
2 101220 222
2 101220 223

La otra forma que estaba pensando es la de crear una tabla que autogenere la correlatividad de acuerdo al Min - MAX del campo correlativo; pero teniendo en cuenta el Tipo_serie y serie para luego poder relacionar esta tabla con la tabla principal y hallar los que no coinciden ; y así tener los correlativos que me faltan en la tabla principal..

1 respuesta

Respuesta
1

Neckkito.


Disculpa por no contestar a tiempo, pues tuve unos problemas familiares y no pude revisar el archivo que me enviaste hasta el día de hoy.


Déjame decirte que el archivo esta genial, solo tengo una duda.


¿Es importante el orden en el que se encuentran los datos en la tabla Tdatos?
Te pregunto esto porque hizo la prueba agregándole un tipo_serie “7” con el correlativo desordenado (el 10005 antes de 10003), y lo que hace es crear hasta el infinito para el tipo_serie “7” y hasta llega a colgarse.


También hice la prueba poniendo en forma descendente el campo Tipo_serie e igual me genera hasta el infinito y hasta llega a colgarse.


Entonces imagino que antes de correr la aplicación debo de ordenar los datos de la tabla Tdatos o existe otra forma mediante código?


Tipo_serie Serie Correlativo
1 101220 10001
1 101220 10002
1 101220 10003
1 101220 10004
1 101220 10006
2 1320 100
2 1320 101
2 1320 104
2 1320 105
2 1320 106
2 101220 220
2 101220 221
2 101220 224
2 101220 225
7 1320 10000
7 1320 10005
7 1320 10003
7 1320 10007
7 1320 10999
Gracias por tu gentil apoyo....

Efectivamente, partía de la base de que los datos estaban ordenados. Al menos, guiándome por los datos que comentabas en tu pregunta, que sí están ordenados.
La solución al problema de los datos desordenados sería tan simple como:
- En el ejemplo que te pasé, editas el código del botón de comando.
- Buscamos el código que crea la tercera SQL. Es la que está en estas líneas:
...
'Creamos la SQL definitiva
miSql = "SELECT TDatos.Correlativo FROM TDatos" _
& " WHERE TDatos.Tipo_serie=" & .Fields(0).Value _
& " AND TDatos.Serie=" & rstS.Fields(0).Value
...
- Le añadimos una línea de ordenación a la SQL, de manera que te quedé así (la línea de ordenación es la última)
...
'Creamos la SQL definitiva
miSql = "SELECT TDatos.Correlativo FROM TDatos" _
& " WHERE TDatos.Tipo_serie=" & .Fields(0).Value _
& " AND TDatos.Serie=" & rstS.Fields(0).Value _
& " ORDER BY TDatos.Correlativo"
...
Y ahora, en teoría, no debería darte los errores que comentas.
Haz un par de testeos y me comentas, a ver si todo te va bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas