Imprimir página | Cerrar ventana

Instrucción VBA de formulario dentro de otro

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85081
Fecha de impresión: 23/Abril/2024 a las 10:53


Tema: Instrucción VBA de formulario dentro de otro
Publicado por: maserrano
Asunto: Instrucción VBA de formulario dentro de otro
Fecha de publicación: 19/Marzo/2020 a las 20:58
Hola buenas.
Tengo una duda sobre código para hacer referencia a un formulario dentro de otro. Veamos. Para hacer referencia a un formulario hago (esto es parte del código):

Me.FSubFoto.Form.AllowEdits = Status

..., pero si tengo un formulario dentro de otro, no sé si lo hago bien 

Me.FSubExpedientesI!FSubDocuExp.Form.AllowEdits = Status

No debe de estar bien, pues no me hace la función deseada de bloquear ese subformulario.
Me pueden orientar. Gracias



Respuestas:
Publicado por: emiliove
Fecha de publicación: 19/Marzo/2020 a las 21:14
En la página de Emilio Sancha tiene la sintaxis
http://www.mvp-access.es/emilio/como/sintaxisparasubformularios.pdf

Guárdala muy bien.


Publicado por: maserrano
Fecha de publicación: 19/Marzo/2020 a las 21:49
Muchas gracias.
No sé, ahora al depurar, me sale un error 2455 en tiempo de ejecución:
Se ha especificado una expresión que contiene una referencia no válida a la propiedad Form/Report.
(lo he marcado en color)

Private Sub Form_Load()
Me.cmdGoogleMaps.HyperlinkAddress = ""
Me.AllowEdits = False
Dim Status As Boolean
Status = Me.AllowEdits
Me!FSubDocus.Form.AllowEdits = Status
Me!FSubFotos.Form.AllowEdits = Status
Me!FSubExpedientesI.Form.AllowEdits = Status
Me!FSubExpedientesI.Form!FSubDocuExp.Form.AllowEdits = Status
Me!FSubInspeccionesI.Form.AllowEdits = Status
Me!FSubInspeccionesI.Form!FSubDocuIns.Form.AllowEdits = Status
End Sub

Ese mismo control lo tengo en otros formularios y no me da el error. No sé porqué??


Publicado por: maserrano
Fecha de publicación: 19/Marzo/2020 a las 21:57
También pruebo con:

Private Sub Form_Load()
Me.cmdGoogleMaps.HyperlinkAddress = ""
Me.AllowEdits = False
Dim Status As Boolean
Status = Me.AllowEdits
Me.FSubDocus.Form.AllowEdits = Status
Me.FSubFotos.Form.AllowEdits = Status
Me.FSubExpedientesI.Form.AllowEdits = Status
Me.FSubExpedientesI!FSubDocuExp.Form.AllowEdits = Status
Me.FSubInspeccionesI.Form.AllowEdits = Status
Me.FSubExpedientesI!FSubDocuIns.Form.AllowEdits = Status
End Sub

 y tampoco...
no sé...


Publicado por: emiliove
Fecha de publicación: 19/Marzo/2020 a las 22:18
Le dices que no puede hacer ediciones

si le dices directo:
Me!FSubDocus.Form.AllowEdits = False

Te marca error también, Saludos.



Publicado por: maserrano
Fecha de publicación: 20/Marzo/2020 a las 00:41
Perdón. No he explicado todo; tengo un botón que activa/desactiva la edición. Es por seguridad de los usuarios.

Private Sub AbreEscritura_Click()
Dim Status As Boolean
Status = Not Me.AllowEdits
Me.AllowEdits = Status
Me.FSubTaludes.Form.AllowEdits = Status
Me.FSubDeposito.Form.AllowEdits = Status
Me.FSubCapacidad.Form.AllowEdits = Status
Me.FSubExpedientesR.Form.AllowEdits = Status
Me.FSubInspeccionesR.Form.AllowEdits = Status
Me.Delegaciones.Form.AllowEdits = Status
MsgBox "Formulario " & IIf(Status, "Editable", "No Editable")
DoCmd.RunCommand acCmdSelectRecord
End Sub

Lo que no entiendo es lo del error 2455 haciendo referencia al form


Publicado por: xavi
Fecha de publicación: 20/Marzo/2020 a las 11:25
Sobre todo asegúrate de no confundir los nombres del control subformulario y del objeto de que contiene. Habitualmente son el mismo pero los puedes cambiar (yo lo hago siempre)

Por otro lado, ese error podría indicar que el subformulario no contiene datos. Una alternativa es utilizar la propiedad Locked del control subformulario en lugar del AllowEdits.


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: maserrano
Fecha de publicación: 20/Marzo/2020 a las 12:36
Muchas gracias Xavi.
El hilo se puede cerrar.



Imprimir página | Cerrar ventana