Access - Permitir editar subformulario y no formulario

 
Vista:

Permitir editar subformulario y no formulario

Publicado por Borja (1 intervención) el 04/08/2020 16:28:30
Hola

Tengo un formulario que dentro tiene un subformulario. Queria que cuando se entre a ese formulario solo deje editar/agregar/eliminar registros del subformulario, que el formulario principal no lo pueda modificar de ninguna forma.

Es posible??? Es complicado???

Gracias.

Saludos.
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

Permitir editar subformulario y no formulario

Publicado por Anonimo (3316 intervenciones) el 04/08/2020 23:58:18
Es un poco de trabajo extra, con interés y paciencia se resuelve.

En principio no se puede bloquear el formulario para edición, porque se bloquearía al subformulario (es a todos los efectos un 'objeto' del formulario).

El remedio mas sencillo (y probablemente eficaz) consiste en bloquear -uno a uno- todos los objetos que se desea evitar que puedan ser manipulados.
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

Permitir editar subformulario y no formulario

Publicado por Mario (25 intervenciones) el 05/08/2020 05:23:42
Tu puese recorrer todos los objetos del form primncipal cuando ocurre el evento Open

ejemplo

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Open(Cancel As Integer)
Dim ctl As Control
    ' Enumerate Controls collection.
    For Each ctl In Me.Controls
         ' Check to see if control is combobox ,text, or list
        If (ctl.ControlType = acTextBox)  Or (ctl.ControlType = aclist ) or (ctl.ControlType = acComboBox)Then
            With ctl
           .enabled=false
            End With
        End If
    Next ctl
End Sub
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

Permitir editar subformulario y no formulario

Publicado por Anonimo (3316 intervenciones) el 05/08/2020 11:55:51
Curiosos sistema que por no hacerlo una única vez (incluso en un único paso) en el diseño del formulario, lo reitera cada vez que abre el formulario y es probable que pregunte cada vez que se cierre si se guardan los cambios ....

La eficiencia ---> en el estante mas alto, no se utiliza porque no se la alcanza.
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

Permitir editar subformulario y no formulario

Publicado por Mario (25 intervenciones) el 06/08/2020 03:20:11
probable que pregunte cada vez que se cierre si se guardan los cambios " que hablas sin basee , este code recorre todo el form principal y se pregunta si es el objeto es el que se solicita y simplemente lo desactiva, algo mas... lo ponemos en modulo y lo llamamos cuando se necesite.. Ordena tus rptas. saludos
Mario
Florida
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

Permitir editar subformulario y no formulario

Publicado por Anonimo (3316 intervenciones) el 06/08/2020 09:49:02
Lo que hace ese código es sencillo de entender, lo que parece mas complicado es entender como funciona Access.

Cuando se modifica algo en el diseño de un objeto Access (lo que es un formulario) Access pregunta si se desean guardar las modificaciones -de diseño-, modificar (alguno/todos) de los objetos de un formulario hará que la pregunta sea obligatoria , solo lo salva que en la orden de cierre del formulario y de forma explicita se imponga NO guardar los cambios (una forma de tapar ese inconveniente).

Ello NO modifica el hecho de que se tenga que ejecutar esa operación (la reasignación de propiedades) cada vez que se abre el formulario.

Ese mismo formulario en el que 'en diseño' se le asignen propiedades determinadas hará 'lo mismo' de forma mas eficiente y si se desea dejar algún objeto sin modificar (algo que dependerá siempre de las necesidades del creador de la aplicación) lo podrá hacer sin tener que crear un conjunto de excepciones en función de la necesidad.

Insisto: la eficiencia .... en el estante mas alto (así los bajitos no la alcanzan)

Por si es útil: (F1)
expresión.Close(ObjectType, ObjectName, Save)
expresión Variable que representa un objeto DoCmd.


El parámetro 'Save' no guarda los valores del registro activo, es para guardar las modificaciones de diseño del objeto.
Los valores del registro activo se suelen guardar con: RunCommand acCmdSaveRecord
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