Crear un campo que sea numérico pero que sume 1

Estoy tratando de crear un campo numérico que al ingresar un registro sume 1, pero no quiero que sea autonumérico, ya que en mi tabla tengo dos llaves (año y cod_solicitud). Lo que quiero hacer es que al cambiar el año, el cod de solicitud comience en 1 y empiece a contar... Cada registro.

1 respuesta

Respuesta
1
Las rutinas que te envío son para agregarlas en los eventos del formulario: Al activar registro y Antes de actualizar, elegí Procedimiento y las copias.
Tendrás un cuadro de texto (en mi ejemplo Texto2) para colocar el cod solicitud, que será el máx de la tabla considerando el año del sistema. (Si el 2 de enero grabas un registro al no encontrar ninguno de ese año tomará como valor 1. luego siempre buscará el máx del año en curso)
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.cod_solicitud = Me.Texto2
End Sub
Private Sub Form_Current()
Dim fact as Integer
If IsNull(DMax("[cod_solicitud]", "Nombre de tabla", "Year([fecha]) = year(Now)")) Then
Me.Texto2.Value = 1
Else
fact = DMax("[cod_solicitud]", "Nombre de tabla", "Year([fecha]) = year(Now)")
Me.Texto2.Value = fact + 1
End If
End Sub
Pruébala (deberás cambiar el año del sistema para ver qué pasará al inicio del año) y si todo está bien, no olvides finalizar.
Hola Elsa
Estoy tratando de hacer lo que indicas, pero no lo he podido hacer, siempre me generan mensajes de error en el evento: hasta ahora tengo: una tabla con los siguientes campos: fecha (fecha), cod_solicitud (texto) y en el formulario he creado el campo texto2, tanto la tabla con el formulario se llaman prueba1 y he colocado lo siguiente:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.cod_solicitud = Me.Texto2
End Sub
Private Sub Form_Current(prueba1)
Dim fact As Integer
If IsNull(DMax("[cod_solicitud]", "prueba1", "Year([fecha]) = year(now)"))
Then
Me.Texto2.Value = 1
Else
fact = DMax("[cod_solicitud]", "prueba1", "Year([fecha]) = year(now)")
Me.Texto2.Value = fact + 1
End If
End Sub
Agradezco tu colaboración.
En primer lugar algunas aclaraciones a ver si estamos hablando de lo mismo.
¿Tu separador de argumentos es coma o punto y coma? Yo utilicé comas.
El campo Fecha es un campo con formato fecha/hora del tipo 10/05/04
Está programado para un formulario de ingreso de datos, o sea con la propiedad Entrada de Datos en SI.
Si con esto en tu base te presenta mensajes de error, solicítame a mi correo el archivo de ejemplo, ya que algo no lo tenés igual.
Si en cambio la idea de tu form no es como yo lo estoy viendo me aclarás lo que falta.
(Aclaración al margen: nunca utilices los mismos nombres para tablas que para forms: ¿TPrueba1 y fPrueba1 son suficientemente aclaratorios? Lo siento, ¿no puedo con mi genio?:)
Saludos
Elsa
Mi mail: meyerelsaarARROBAyahooPUNTOcomPUNTOar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas