Establecer valor requerido para un subformulario dentro de un formulario.

Cuento con un Formulario TRABAJADORES con varios campos requeridos u obligatorios, y tiene un subformulario insertado llamado ENTRADAS, que es una tabla del mismo nombre relacionada 1:M con la tabla trabajadores.

Deseo que al introducir los datos un nuevo trabajador, sea obligatorio introducir al menos un primer registro o una primera "Entrada", en el subfurmulario, nada que si no ingreso una entrada me de error al intentar guardar, cerrar, introducir otro trabajador.. Ect.

1 respuesta

Respuesta
1

Dariel: En el evento al cerrar del Formulario, cuenta los registros del subFormulario.

Si son Cero, abortas el cierre, pones un mensaje o insertas un registro en el sub formulario con unos valores provisionales. Saludos >> Jacinto

Gracias Jacinto, de esta forma cuál sería el código ??

Dariel: Para evitar que el Formulario se pueda cerrar involuntariamente, haz lo siguiente.
En sus Propiedades >> Pestaña Formato
Cuadro de Control …………No
Botón de Cerrar…………….. No
Agrega un botón de Comando que puedes llamar por ejemplo…BtnCierraForm
Copia éste código en el Formulario, y no te olvides de Activar el [Procedimiento de Evento]

Private Sub BtnCierraForm_Click()
'Evitamos cierre del Formulario, si el SubFormulario está vacio
Dim Frm As Form
Dim RegistrosSubForm As Integer
Set Frm = Forms![FormPrincipal]![NombreSubForm].Form

'Los corchetes son Opcionales si el Nombre de tu Formulario y/o Subformulario tienen los nombres sin "Espacios"

RegistrosSubForm = Frm.RecordsetClone.RecordCount
If RegistrosSubForm = 0 Then
             MsgBox “Antes de cerrar éste Formulario has de poner Datos en SubForm”,vbCritical,”SUBFORM VACIO”
           ‘Las acciones que se quieran programar
           Exit Sub
Else
             DoCmd.Close acForm, Me.Name
End If

End Sub
Creo que no tendrás dificultades, pero ya me contarás.
Mis saludos >> Jacinto

Dariel: Me he olvidado una línea de Código, que si bien es Opcional, es conveniente que esté.

Despues del End If

Set Frm = Nothing

Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas