Simular campo autonumérico en campo numérico

¿Cómo podría con código incrementar en uno un campo numérico cada vez que creo un registro nuevo? Gracias de antemano por vuestra ayuda. ¿En qué evento tendría que poner el código?.

4 respuestas

Respuesta
2

Se puede hacer eso antes de guardar el nuevo registro. Una selección del campo de numeración mayor que es el numero del registro, digamos "autono".

("select autono from tabla order by autono DESC limit 1")

Al hacerlo le sumamos uno y ese seria el nuevo numero del registro.
Pero, para darte un mejor ejemplo seria necesario, por favor, nos digas que lenguaje es el que estas usando.

Suponiendo que sea php
<?php

#seleccionamos el ultimo valor del campo deseado

 $sql  ="select autono from tabla order by autono desc limit 1";
$rst = mysqli_query($cnx,$sql);

#guardamos el resultSet
$registro = mysqli_fetch_array($rst,MYSQL_ASSOC);

#extraemos el valor del resultSet

$ultimoregistro = (int)$registro["autono"];

#sumamos uno al registro extraido

$nuevoregistro = $ultimoregistro + 1;

/*AHORA SI INGRESAMOS EL REGISTRO*/

$nsql = "insert into tabla (autono,campo1, campo2) values ($nuevoregistro,"a1","b1");

$insertado = mysqli_query($cnx,$nsql);

if($insertado){

mysqli_commit($cnx);

}else{

mysqli_rollback($cnx);

}
?>

Todo esto es suponiendo que sea con php y bases de datos mysql, con vba y access es muy pero muy similar...

Respuesta
1

Echa un vistazo a este ejemplo: http://goo.gl/eFm8p4

Respuesta
1

Algo más sencillo podría ser que si tienes, por ejemplo, una tabla "Tabla1" y como clave principal "Id_Tabla", en el formulario entras a las propiedades del campo de Id_Tabla y como Valor predeterminado escribes:

=DMáx("[Id_Tabla]","Tabla1")+1

cada que se activa un nuevo registro automáticamente te da el número siguiente al último en tu tabla.

Respuesta

Es mejor acostumbrarse a utilizar el VBA en un formulario inserta un boton e incluye el siguiente codigo:

Dim db1 As Database
Dim rs1 As Recordset
Dim var1 As Double
Dim v1 As Variant
Dim mvarobservaciones1 As String

On Error Resume Next

Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("Select * from tabla")
var1 = 0

Do While Not rs1.EOF

rs1.Edit
var1 = var1 + 1
rs1!Campoautonumerico = var1

rs1.Update
rs1.MoveNext

Loop

En la tabla debes de incluir un campo llamado Campoautonumerico

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas