Salu2 AnaLura
Digamos que tienes una Tabla asi:
Cliente
---------
IdCliente <----- Clave primaria de la cual se quiere el consecutivo
Nombres
Apellidos
....
1. Abre un recordset con el ultimo registro de la tabla Cliente
2. Si este valor es numerico ese valor asignalo a una variable (tambien puedes usar otro metodo).
3. Sumale mas 1 y este valor lo colocas en un text para mostrarlo
4. luego ese valor lo guardas en la bd
Yo lo hago de la sgte forma:
Bueno aki estoy generando la nueva clave de la tabla Ciudades
'//Esto en un modulo para que te sirva para otras tablas y asi generas la clave
Public Function NuevoId(Query As String, Tamaño As Byte) As String
Dim Rst As New ADODB.Recordset
'//Abro un recordset Temporal
Rst.Open Query, Cnx, adOpenDynamic, adLockReadOnly, adCmdText
'//Si hay registros
If Not (Rst.BOF And Rst.EOF) Then
'//Me muevo al ultimo registro
Rst.MoveLast
'//Calculo la nueva Clave usando el campo fields(0)
'//La variable Tamaño contiene el tamaño del campo en mi caso el campo tiene Char(3) asi que me retorna una cadena numerica generada de 3 caracteres
NuevoId = Right(10000000001# + Val(Rst.Fields(0).Value), Tamaño)
Else
'//En caso no haya registros me devuelve 001 en este caso
NuevoId = Right(10000000001#, Tamaño)
End If
End Function
.....
'//Aki llamo a la funcion que me permite generar la nueva clave esto lo debes poner tu en el Form_load
RsCiudad!IdCiudad = NuevoId("Select Top 1 IdCiudad From Ciudad Order By IdCiudad DESC", 3)
Espero que no te haya confundido y sirva de ayuda
Un saludo zeekel ®
[KGT]