¿Cómo modificar un campo de autonumeración a partir de un número específico?

Tengo una duda respecto una tabla que quiero enumerarla a partir de un número especifico.

Marca | Modelo | Codigo

Ford | fiesta | 

Nissan | Xtrail | 

Toyota | Tacoma | 

Lo que necesito es que con la tabla que tenga en access se le pueda ir sumando de manera automática una unidad comenzando por un valor que yo quiera, por ejemplo si coloco en el registro inicial un 15 ( para el ford fiesta) el siguiente sería 16 y terminaría de sumar hasta el último registro.

2 Respuestas

Respuesta
1

Roberto, lo puedes hacer de mil formas, tendrías que concretar un poco más el como quieres hacerlo. Por ejemplo, tengo la tabla Copia y con ella hago un formulario como el de la imagen (aunque no tiene porque ser continuo, pero creo que se ve mejor)

Escribo un nombre, puedes ver que el cursor aún está en el control NombreContacto

Cuando pulso Enter

Escribo el número por el que quiero empezar y al pulsar Aceptar

Y a partir de ahí, en el siguiente registro escribo un nombre, pulso Enter y ya directamente

En este caso, pro ya te digo que hay muchas formas de hacerlo en las propiedades del cuadro de texto NombreContacto le tengo puesto

Private Sub NombreContacto_AfterUpdate()
If Nz(DLast("codigo", "copia")) = "" Then
Dim i As Integer
i = InputBox("Escriba el número por el que quiere empezar", "Muy agradecido")
Codigo = i
Else
Codigo = DMax("codigo", "copia") + 1
End If
End Sub

Muchas gracias por la respuesta.

A lo mejor me expliqué un poco impreciso, porque lo que tengo en si es una tabla con valores, creo que es autonumeración; el problema es que no se cómo ingresarlo porque tampoco es un campo llave sino un campo número cualquiera en donde solo requiero ingresarle un valor y que automáticamente me cuente hasta el último registro de dicha tabla. Supongo que es mediante una consulta pero no se cómo ingresarla. Agradecería su ayuda nuevamente.

Como te decía lo puedes hacer de mil formas. Aunque claro que se puede hacer con una consulta, personalmente te aconsejaría que lo hicieras en código VB. Es infinitamente más versátil que el lenguaje SQL en que están hechas las consultas.

Por ejemplo, y ya te digo que se puede hacer de más formas, supongamos que tengo el formulario Copia, basado en la tabla del mismo nombre, como

Le pongo un botón aunque la instrucción la puedes poner en cualquier otro evento. Si lo pulso, me aparece el inputbox( que también se podría suprimir, pero así se ve mejor)

Escribo el número por el que quiero empezar, el cursor se va al primer registro, pone en Codigo ese numero y recorre los registros poniendo su valor correlativo.

Mira, te digan lo que te digan los campos autonuméricos son una mierda. Desde el momento en que declaras un campo como autonumérico pierdes el control sobre él. Por ejemplo, supongamos que estás rellenando un registro con Id=15. Por lo que sea decides eliminarlo y al volverlo a rellenar te pone el Id como 16, de forma que los registros pasan del 14 al 16. Es preferible ponerlo como numérico y poner algo como

Id=nz(dmax(.....))+1

o

Id=nz(dlast(......))+1

De forma que si borras alguno, el siguiente seguirá siendo correlativo.

En VB también podrías usar algo como

Docmd.runsql"update copia set codigo=.....

De todas formas, si pese a las desventajas, quieres hacerlo en una consulta dilo y te lo pongo.

Respuesta
1

Si se trata de un autonumérico, basta insertar el anterior al inicial deseado (se le puede borrar continuación) y a partir de ese momento el incremento lo hace de forma automática (el campo es autonumérico).

¡Gracias! ¡Gracias! 

¿Sería mediante una consulta? O ¿Existe otra manera?

Agradecería nuevamente su pronta respuesta.

El método es insertarlo y mejor es con una SQL de acción, puedes ponerle cualquier valor (dentro de su rango) para los campos que tengan activada la propiedad 'requerido', los no requeridos no afectaran a la creación del registro (y además, se le borrara con la excepción de que sea el primero)

Aclarando, creas el primero con el número que se desea, o se crea uno (que después se borrara) con el numero anterior al que se desea sea el primero.

Solo un detalle a tener en cuenta (si se crea uno para después borrarlo) si no se crea al menos un registro y se compacta la base, Access volvera al inicio (el primero = número uno)

La sentencia para iniciar en el numero 55 el campo ID_Control que es autonumérico:

CurrentDb.Execute "Insert into [la tabla] (Id_control, ... lista de campos requeridos ..) Values ( 54, [valor para cada campo según la lista anterior separados por comas])

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas