Consecutivo access 2007

Estoy haciendo una base de datos con un código de equipo, para esto necesito generar un consecutivo automático que cada año empiece de nuevo en 001.

1 respuesta

Respuesta
2
Supongamos que la tabla se llama CodigoCorrelativo y el campo Código, la función sería:
Function CrearCorrelativo()
Dim db As Database
Dim rs As Recordset
Dim rs1 As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("CodigoCorrelativo")
Set rs1 = db.OpenRecordset("Select Max(val(Left(Codigo,4))) as Mayor From CodigoCorrelativo where Mid([Codigo],6,4)=Right(Str(Year(Date())),4)")
If IsNull(rs1!mayor) = True Then
rs.AddNew
rs!Codigo = "0001/" + Right(Str(Year(Date)), 4)
rs.Update
Else
rs.AddNew
rs!Codigo = String(4 - Len(Str(rs1!mayor) + 1), "0") + Trim(Str(rs1!mayor + 1)) + "/" + Right(Str(Year(Date)), 4)
rs.Update
End If
End Function
Me cuentas.
Hola, gracias por tu respuesta, soy nueva en esto, podrías indicarme donde coloco el código que me distes
¿Puedes decirme como tienes planteado el ingreso de registros en la tabla?
Me cuentas.
Tengo una tabla con campos: código, equipo, marca, serie, fecha ingreso. De esta tabla se genero un formulario y a través de este se alimenta la base de datos. Lo que necesito es generar un consecutivo automático que cada año empiece de nuevo en 001.
Tu me diste un código, pero no se donde escribirlo, podrías por favor indicarme
Te creas un formulario independiente con los cuadros de texto txtCodigo, txtEquipo, txtMarca...
El cuadro de texto txtCodigo lo calculamos automáticamente, en la acción Al recibir el enfoque ---> Procedimiento de evento ---> Pones el código:
Private Sub txtCodigo_GotFocus()
Dim db As Database
Dim rs As Recordset
Dim rs1 As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("CodigoCorrelativo")
Set rs1 = db.OpenRecordset("Select Max(val(Left(Codigo,4))) as Mayor From CodigoCorrelativo where Mid([Codigo],6,4)=Right(Str(Year(Date())),4)")
If IsNull(rs1!mayor) = True Then
Form!txtCodigo.Value = "0001/" + Right(Str(Year(Date)), 4)
Else
Form!txtCodigo.Value = String(4 - Len(Str(rs1!mayor) + 1), "0") + Trim(Str(rs1!mayor + 1)) + "/" + Right(Str(Year(Date)), 4)
End If
End Sub
Los otros cuadros de texto los rellenarás a mano y para insertar el valor de todos estos cuadros de texto pondría un botón para ejecutar una sentencia sql.
Si no tienes claro lo del botón para insertar datos, en la página:
En el apartado Formularios, supuesto: Formulario para insertar datos
Tienes varios ejemplos de como hacerlo.
Cualquier duda, me consultas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas