Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Autogenerar codigo correctamente

Estas en el tema de Autogenerar codigo correctamente en el foro de Visual Basic clásico en Foros del Web. En mysql existe un tipo de dato o una propiedad auto_increment, en access y sqlserver me parece que no, pregunto cual es la forma de ...
  #1 (permalink)  
Antiguo 24/02/2008, 19:52
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Autogenerar codigo correctamente

En mysql existe un tipo de dato o una propiedad auto_increment, en access y sqlserver me parece que no, pregunto cual es la forma de autogenerar codigo con visual basic, ya que al eliminar, añadir, modificar a veces se repite el codigo y no se por que sucede esto, me di cuenta al estar haciendo pruebas en mi sistema y detecte ese error a veces se repite el codigo

With rsCargo
If rsCargo.RecordCount = 0 Then
Text1 = "01"
Else
rsCargo.MoveLast
Text1 = Format(Val(!CodCargo) + 1, "00")
End If
End With

Este es el codigo que uso actualmente

saludos, ah el error que aparece el duplicidad de clave primaria
  #2 (permalink)  
Antiguo 25/02/2008, 00:17
 
Fecha de Ingreso: julio-2007
Ubicación: Delante del PC (Barcelona
Mensajes: 157
Antigüedad: 16 años, 9 meses
Puntos: 2
Re: Autogenerar codigo correctamente

Hola franko1809,

Antes de darte la solución (o una posible solución) decirte que Acces si que tiene el tipo de dato auto_incremento.
Bueno a lo que vamos.

Yo lo que hago es lo siguiente

Hago una consulta para obtener el mayor número y le sumo 1

SQL = "SELECT MAX (CodCargo) FROM LaTabla"

abres el recordset con esa Consulta, te devolverá el número mayor, solo has de sumarla uno y bolia! ya tienes el auto_increment.

Para más facilidad haces una funciona a la que le pases la tabla y el registro y la podrás utilizar en cualquier lugar.

Por cierto, creo que ya te dije en otro post que para saber si el RecordSet está vacio es mejor hacerlo con EOF y BOF jejeje

Espero que sea esto lo que buscabas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:42.