Al eliminar un número en un consecutivo, restablecer nuevamente el orden del consecutivo

Señores, buenas tardes. Dios los bendiga.

Mi pregunta es la siguiente: Tengo una tabla llamada Registros, con los siguientes campos Idreg (Autonu), Item (Numérico), Detalle (Texto) Cantidad (Numérico) y VrCosto (Numérico) etc. Además, tengo una tabla auxiliar llamada AuxRegistros, que es una fiel copia de la tabla Registros, la hice con copiar y pegar. Tengo un formulario independiente llamado FrmRegistros donde pido los siguientes datos. Item (TxtItem), Detalle (CmbDetalle, cuadro combinado) Cantidad (TxtCantidad), VrCosto (TxtVrCosto). Tengo un subformulario llamado FrmSubRegistros, el cual obtiene los datos de la tabla AuxRegistros. La información pedida FrmRegistros la guardo en la tabla auxiliar por medio de un botón, mostrándose en el subformulario automáticamente. Mi pregunta es: como hago para que el textbox TxtItem al iniciar le coloque el número 1.1 y a medida que le vaya introduciendo información me vaya incrementando, es decir, el primer registro seria 1.1, el segundo 1.2, el tercero 1.3, el cuarto 1.4, el quinto 1.5 y así sucesivamente. Otra pregunta si por cualquier motivo en el subformulario (Este permite eliminar y editar) me toca borrar físicamente el item 1.3, entonces el consecutivo para los item quedaría así: 1.1, 1.2, 1.4 1.5, como pueden ver faltaría el 1.3 lo que se quiere es que la numeración automáticamente se ordene en forma consecutiva, debería quedar de esta manera: 1.1, 1.2, 1.3, 1.4, cómo eran 5 registros pero se borro uno no más van a quedar 4.

1 Respuesta

Respuesta
2

Para el ejemplo da igual que sea un formulario que un subformulario. El código está en el botón.

Imaginemos que tenemos el formulario

Y voy a eliminar el registro de TxtItem 1.5

Puedes ver que pasa a 1.6 y le corresponde a Blauer... Si ahora pulso el botón

Ahora Blauer tiene el 1.5

El código del botón es

Private Sub Comando9_Click()
Dim i As Integer
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
TxtItem = 1 & "." & Me.CurrentRecord
End Sub

Es decir, va recorriendo los registros "reasignando" valores y luego vuelve al primero.

¡Gracias! Por su pronta y oportuna respuesta. Para recalcular el consecutivo funciona muy pero muy bien. Le agradezco me ayude con lo de digitar el primer Item, o sea, el 1.1 y que de allí en adelante me de el consecutivo cada vez que guarde un registro en la tabla auxiliar. Es decir después del 1.1 me salga el 1.2 y así sucesivamente. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas