Access - Ayuda por favor!!!

 
Vista:

Ayuda por favor!!!

Publicado por Ale (1 intervención) el 22/06/2007 01:19:57
Hola:

Tengo un listado de auditorías y cada una de ellas tiene asociado un listado de hallazgos (cuyo número es variable); además tengo un formulario de auditoría con un sunformulario de hallazgos, los cuales voy evaluando.

Mi idea es hacer a través de código que si la auditoría registrada en la tabla respectiva es igual a la del formulario que revise uno a uno los hallazgos, de manera que si uno de ellos no está evaluado no me permita seguir adelante y me obligue a llenar todos los datos. He intentado hacer esto por varios medios, incluso a través de consultas pero no he tenido resultados.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Validar evaluación completa de hallazgos en formulario de auditoría

Publicado por Alejandro (4142 intervenciones) el 14/08/2023 18:09:09
Puedes lograr la validación que mencionas utilizando eventos y código VBA en el formulario de auditoría. Aquí te proporciono un enfoque general para implementar esta funcionalidad:

1. Evento Después de Actualizar de la auditoría:
- Crea un evento "Después de Actualizar" en el formulario de auditoría. Este evento se activará cada vez que cambies la auditoría seleccionada en el formulario.
- En este evento, puedes realizar una verificación para determinar si todos los hallazgos asociados a esa auditoría han sido evaluados.

2. Recorrer los hallazgos:
- Utiliza un bucle para recorrer todos los registros en el subformulario de hallazgos asociados a la auditoría seleccionada.
- Para cada registro de hallazgo, verifica si ha sido evaluado o no. Puedes hacer esto revisando un campo que indique si ha sido evaluado, como una casilla de verificación o un campo de estado.

3. Validación y mensaje:
- Si encuentras un hallazgo que no ha sido evaluado, muestra un mensaje de advertencia al usuario y deshabilita la posibilidad de avanzar o guardar hasta que todos los hallazgos estén evaluados.

Aquí tienes un ejemplo de cómo podría verse el código VBA para el evento "Después de Actualizar":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub cmbAuditoria_AfterUpdate()
    Dim rs As DAO.Recordset
    Dim hallazgoEvaluado As Boolean
 
    ' Obtener el conjunto de registros del subformulario de hallazgos
    Set rs = Me.NombreSubformulario.Form.RecordsetClone
 
    ' Recorrer los hallazgos
    Do While Not rs.EOF
        ' Verificar si el hallazgo ha sido evaluado (ajusta el nombre del campo según tu diseño)
        hallazgoEvaluado = rs!Evaluado
 
        ' Si un hallazgo no ha sido evaluado, mostrar mensaje y deshabilitar guardar/avanzar
        If Not hallazgoEvaluado Then
            MsgBox "Debe evaluar todos los hallazgos antes de continuar.", vbExclamation, "Advertencia"
            Me.AllowEdits = False
            Exit Do
        End If
 
        rs.MoveNext
    Loop
 
    ' Liberar el conjunto de registros
    rs.Close
    Set rs = Nothing
End Sub

Asegúrate de ajustar los nombres de los controles y campos según tu diseño y de personalizar el mensaje de advertencia según tus necesidades.

Este enfoque debería permitirte validar la evaluación completa de los hallazgos antes de avanzar en el formulario de auditoría.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar