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
2
Anónimo
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.