Abrir un formulario no editable o editable desde otro formulario
Tengo un formulario principal que contiene 3 subformularios. En cada uno de los 3 subformularios, cada registro informado contiene un botón de comando que al pulsarlo te lleva a otro formulario para que puedas editar los datos de ese registro o bien no permitir la edición.
Para el ejemplo, en el botón de comando tengo puesto el siguiente código:
If vEditar = "SI" Then DoCmd.OpenForm "frmOPER", , , strExpresion, acFormEdit Else DoCmd.OpenForm "frmOPER", , , strExpresion, acFormReadOnly End If
Forms![frmOPER].Modal = True
Forms![frmOPER]!NumRAN.Value = Me!NumRAN
Forms![frmOPER]!VieneDe.Value = "DET"
' se bloquea el campo <NumRAN>para que no se pueda modificar (es clave) Forms![frmOPER]!NumRAN.Locked = True
La variable strExpresion contiene un filtro del registro a mostrar en el formulario.
La variable vEditar indica si el formulario se debe abrir de forma que se pueda editar el registro o no.
El campo <VieneDe> indica que procede del formulario "Detalle" en esta caso "DET" para que en formulario <frmOPER> sepa de donde procede.
Además le envían datos adicionales al formulario (modal, datos para controles, etc.)
Hasta aquí todo correcto (o por lo menos así parece), pero el problema es que al mostrar el registro en el formulario que se indica como <acFormReadOnly> el cual no tiene ningún botón <Guardar>, solo tiene un botón <Imprimir> y otro <Volver> nada más.
No obstante, permite modificar cualquier dato de los controles, a no ser que el control en cuestión esté bloqueado (como hay alguno), y al pulsar el botón <Volver> para volver al formulario anterior, el registro queda actualizado.
El código que tengo puesto en el botón <Volver> del <frmOPER> es el siguiente:
If VieneDe = "DET" Then DoCmd.SetWarnings False If CurrentProject.AllForms("frmDetExp").IsLoaded Then Forms![frmDetExp].Refresh Forms![frmDetExp].NumExp.Value = vExpe Forms![frmDetExp].NumExp.SetFocus Forms![].NumExp.Locked = True DoCmd.Close acForm, Me.Name End If DoCmd.SetWarnings True Exit Sub End If
Alguien me puede decir que es lo que estoy haciendo mal, ¿para qué me modifique los datos y actualice el formulario inicial?.
Quedo a la espera de alguna respuesta, si es posible.