Consecutivo en Access no autonumérico

Tengo una tabla de Access que se llama concentrado con 10 campos ninguno es autonumérico.

Le agregue un campo numérico llamado consecutivo, y como su nombre lo dice es consecutivo, son aproximadamente 1500 registros y lo que estoy haciendo es ingresar numero por numero, y se pierde mucho tiempo además cabe que se omita un numero.

Hay alguna forma de llenar el campo consecutivo de todos los registros con algún código.

Respuesta
2

Una forma más "automática" que la que te propone Oscar:

1º/ Coloca un botón en un formulario (una vez ejecutado el código, lo puedes borrar)

2º/ En el evento "al hacer click" de ese botón le pones este código:

Dim rst As DAO.Recordset

Set rst=CurrentDb.OpenRecordset("concentrado")

rst.MoveFirst

DoUntil rst.EOF

rst.Edit

rst("consecutivo")=rst.AbsolutePosition

rst.Update

rst.MoveNext

Loop

MsgBox "Proceso de renumeración finalizado"

rst.close

set rst=Nothing

Lo que hará el código es numerar cada registro con la posición que tiene (el primer registro con 1, el segundo con 2...)

Revisa que lo que pongo en negrita sean lso nombres de tu tabla y campo, respectivamente.

Un saludo!


1 respuesta más de otro experto

Respuesta
1

La verdad lo que se me ocurre a mi es que si en el formulario que tienes para esa tabla tienes activada en la hoja de propiedades del formulario la opción botones de navegación podrías recorrer cada registro y este código los pondría automáticamente.

En el evento Al Activar Registro

Suponiendo que la tabla se llama "Tabla1" y el campo "Campo1"

Private Sub Form_Current()

Me.campo1.value = Nz(Dmax("Campo1","Tabla1"),0)+1

End Sub

Luego lo que te tocaría hacer es borrar todo lo que hay en el campo numérico para empezar nuevamente claro esta luego ir recorriendo registro por registro eso lo haces con los botones de navegación en este caso Siguiente Registro creo que lo puedes hacer rapidito y hasta sin darte cuenta el llena ese campo, este código también reemplaza al campo autonumerico

Private Sub Form_Current()

If Me.Newrecord then

Me.campo1 = Nz(Dmax("Campo1","Tabla1"),0)+1

end if

End Sub

Creo que sabes que cuando utilizas un campo autonumerico si vas por el 15 y borras el contenido de la tabla al ingresar un registro nuevo el te va a asignar a ese registro el numero 16 osea que se pierden todos los anteriores, aunque existen formas para que ese campo autonumerico vuelva a empezar desde el uno pero ese no es el tema aquí. Espero te sirva así esa es la que se me ocurre en este momento y claro con mis conocimientos que son escasos.

¿De todos modos has una copia de seguridad para que pruebes el código y me comentas vale?

Hago una corrección al código

Private Sub Form_Current()

If isnull(Me.Campo1) then

Me.campo1.value = Nz(Dmax("Campo1","Tabla1"),0)+1

end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas