Autonumerico Access y Visual Basic 2008

Tengo un formulario de Ingreso de Personal y necesito crear el código del trabajador pero que se vaya incrementado, es decir que el primero salga 00001 y luego 00002, 00003 y así sucesivamente. Estoy trabajando con Visual Basic 2008 Express y Access. Quisiera saber como puedo hacerlo. Tiene que contar primero la cantidad de registros que tengo en la tabla de la base de datos para según eso ir generando el código automático.
Y si no fuera molestia generar también aparte del código automático que tome las dos primeras letras de los apellidos y las dos primeras letras del nombre. Por ejemplo
Apellidos: Rivas Castro Nombres: Juan Código : RIJU-0001
Apellidos: Serrano Alva Nombres: María Código : SEMA-0002
Como ven esta tomando las dos primeras letras de APELLIDOS y las dos primeras letras de NOMBRES, más cuatro números en forma consecutiva.

1 Respuesta

Respuesta
1
Yo para generar falsos autonuméricos, lo hago a través de código vba, de la siguiente manera:
Si ya tienes datos en la tabla y quieres rellenar el campo, lo primero es generar una consulta e ir actualizando los datos registro por registro. Más o menos quedaría así, faltaría que lo adecuaras a tus tablas.
'### Inicio Codigo ###
Dim Cod As String
Dim NumCod As Integer
Cod = ""
NumCod = 0
'Creamos una consulta de seleccion de la tabla
Set rst = CurrentDb.OpenRecordset("Select Nombre, Apellidos, Codigo From Usuarios")
'Tenemos en la variable rst la select guardada. Ahora recorremos los registros uno por uno.
While Not rst.EOF 'Mientras no lleguemos al ultimo registro
Nom = Left(rst.Fields(0), 2) 'Sacamos en una variable los dos primeros caracteres por la izquierda del valor del campo nombre
Apell = Left(rst.Fields(1), 2) 'Sacamos en una variable los dos primeros caracteres por la izquierda del valor del campo Apellido
NumCod = NumCod + 1
If NumCod < 10 Then
Cod = Apell & Nom & "-" & "000" & NumCod
End If
If NumCod > 9 And NumCod < 100 Then
Cod = Apell & Nom & "-" & "00" & NumCod
End If
If NumCod > 99 And NumCod < 1000 Then
Cod = Apell & Nom & "-" & "0" & NumCod
End If
If NumCod > 999 And NumCod < 1000 Then
Cod = Apell & Nom & "-" & "0" & NumCod
End If
rst.Edit
rst.Fields(2) = Cod
rst.Update
Rst. MoveNext 'pasamos al siguiente registro
Wend
'### Fin Codigo ###
Muchas gracias por tu respuesta, ya lo hice, le modifique algunas cositas por allí y si me salio. Gracias de nuevo. Así vale estar inscrito en este Foro de Ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas