Control de correlatividad de campo en access

Tengo una tabla en access con un campo numérico llamado comprobante y necesito hacer una consulta para chequear los faltantes ya que tienen que ser todos correlativos, ejemplo puede venir el comprobante 1453 y salta al 1455 lo que necesito es una consulta que me devuelva el 1454 como faltante y todos los que hayan.

2 Respuestas

Respuesta
1

¿Tiene qué ser en una consulta? Si me dices Sí, no lo sé. Si me dices que te da igual en un formulario, te diría... Si tengo el formulario( que podría estar basado en la tabla tuya)

Cuando pulso el botón, aunque podría ser en cualquier otro evento

El código del evento Al hacer clic de botón es

Private Sub Comando5_Click()
Dim i As Integer, d As Byte, c As Byte
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
d = IdNumero - (Nz(DMax("idnumero", "numeros", "idnumero<" & Me.IdNumero & "")) + 1)
If d = 1 Then
Faltan = Nz([Faltan], "") & "," & (Nz(DMax("idnumero", "numeros", "idnumero<" & Me.IdNumero & "")) + 1)
ElseIf d > 1 Then
For c = 1 To d
Faltan = Nz([Faltan], "") & "," & (Nz(DMax("idnumero", "numeros", "idnumero<" & Me.IdNumero & "")) + c)
Next c
End If
DoCmd.GoToRecord , , acNext
Next
Faltan = Mid([Faltan], 2, Len([Faltan]) - 1)
End Sub
Respuesta
1

Puedes crear una tabla números (http://emilioverastegui.blogspot.com/2015/09/la-tabla-numeros.html?m=1)  y luego haces con el asistente una consulta de no coincidentes por el campo comprobante y listo.

Para rellenar la tabla rápidamente,  puedes ejecutar un procedimiento como éste :

Dim i as long

For i=1 to 10000

CurrentDb.Execute "INSERT INTO Numeros(Numero) values (" & i & ")"

Next

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas