Mensaje antes de Cerrar si un valor no ha sido seleccionado

Necesito un gran favor, estoy relalizando un formulario en un documento de ACCESS para para seguimientos de ofertas en el cual existe una subformulario en forma de hoja de datos en la que se Seleccionan uno o más proveedores que participan en esa oferta, la cuestión es que obligatoriamente se debe asignar un proveedor por cada oportunidad creeada en el formulario, ya que si se cierra el formulario el link proveedor-oferta no se generara, como hago para que antes de cerrar el formulario si no se introduce por lo menos un proveedor en este formulario no se pueda cerrar ( este valor esta dentro de un subformulario)

1 Respuesta

Respuesta
1

Puede usar el evento al descargar, validas que no este null y cancelas el cierre del formulario.

Por ejemplo:

Private Sub Form_Unload(Cancel As Integer)
    On Error GoTo ManipularError
    If Not IsNull(Forms!Devoluciones!SubDetalle_ventas.Form!txtProducto) Then
        If MsgBox("HAY PRODUCTOS CAPTURADOS" & vbLf & vbLf & "¿Cerrar de todas maneras?", vbYesNo + vbExclamation, "Atención") = vbNo Then
            Cancel = True
            Me.txtFolio.SetFocus
        End If
    End If
Salir:
    Exit Sub
ManipularError:
    MsgBox Err.Description, vbCritical, "Atención"
End Sub

Vba Acess
https://www.youtube.com/c/VBAAccess?sub_confirmation=1

pero es que no es que se genere el error entonces no entiendo porque empezar con 

On Error GoTo ManipularError

Es un ejemplo si no lo utilizas lo puedes quitar.

Así lo tengo en este momento

Private Sub Form_Unload(Cancel As Integer)
On Error GoTo ManipularError
If Not IsNull(Forms!fmoportunidades2!sfmOportunidadesProveedores.Form!ProveedorId) Then
If MsgBox("HAY PRODUCTOS CAPTURADOS" & vbLf & vbLf & "¿Cerrar de todas maneras?", vbYesNo + vbExclamation, "Atención") = vbNo Then
Cancel = True
End If
End If
Salir:
Exit Sub
ManipularError:
MsgBox Err.Description, vbCritical, "Atención"
End Sub

Pero la alerta me funciona al revez, cuando tengo asignado un valor es que me aparacce la alerta, cuando esta vacío no muestra alerta ni nada

Pues claro si, por la condición.

Por eso te dije que era un ejemplo.

Cambia la condición y ya esta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas