Activar y desactivar un consecutivo en el form

Hola:
Tengo una duda la cual espero me puedas responder, gracias de antemano.
Tengo un formulario que contiene varios campos, del cual 1 campo quiero que por medio de un o dos botones active y desactive el consecutivo de este campo para que cuando ingrese; ejem: 1000, y guarde ese registro al pasar al siguiente me aparezca 1001, pero cuando presione un botón para desactivar, en el siguiente registro, ese campo aparezca en blanco, y cuando se vuelva a activar empiece desde el valor que el usuario ingreso.
No se si es muy complicado pero espero me puedas ayudar en algo
Saludos, wax.

1 Respuesta

Respuesta
1
Bien necesitarás un poco de Visual pero nada complicado.
En primer lugar en la tabla de la cual estas basando el formulario debe existir un campo de tipo numérico, (ojo no autonumérico) el cual va a almacenar el consecutivo.
Luego en el formulario yo crearía un checkbox(Casilla de verificación) si no sabes como ingresas al menu ver, barras de herramientas y luego seleccionas cuadro de herramientas, allí encontraras el botón, lo único que tienes que haces es pintar el checkbox en el formulario donde quieras que aparezca; también recomiendo que luego de crearlo le cambies el nombre, para ello activas la ventana propiedades (menu ver, propiedades) seleccionas la ficha "otras" y en nombre le colocas lo que quieras (yo lo llamé "ActivaConsecutivo")
Bueno aquí empieza la programación, lo primero es determinar en que momento vamos a desencadenar el procedimiento que verifica si queremos o no el consecutivo, pienso, por lo que leo en tu pregunta, que el mejor momento seria después de actualizar la casilla de verificación, para ello en la vista diseño del formulario la seleccionas activas la ventana propiedades, vas a la ficha "Eventos" y allí escoges "Después de actualizar" allí aparecen ... los seleccionas y luego escoges "generador de código", tras lo cual aparecerá +- esto:
Private Sub ActivaConsecutivo_AfterUpdate()
End Sub
Lo completas para que quede así:
Private Sub ActivaConsecutivo_AfterUpdate()
If Me.ActivaConsecutivo = True Then
Me.Consecutivo = IIf(IsNull(DMax("Consecutivo", "TablaOrigen") + 1), 1, DMax("Consecutivo", "TablaOrigen") + 1)
Else
Me.Consecutivo.Value = Null
End If
End Sub
Lo que hace el procedimiento anterior es evaluar si el checkbox quedo activado o desactivado (If Me.ActivaConsecutivo = True Then) de ser así entonces busca el máximo consecutivo y le suma uno (DMax("Consecutivo", "TablaOrigen") + 1) ojo aqui tienes que cambiar "TablaOrigen" por la tabla en la que se basa el form y si el campo no se llama "consecutivo" también lo cambias.
La parte:
IIf(IsNull(DMax("Consecutivo", "TablaOrigen") + 1)
La meti por si es el primer registro de la tabla, ya que en ese caso el máximo consecutivo será null, en ese caso asigno uno.
Bueno espero no haberte confundido mucho, suerte
Gajimenb

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas