** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Instrucción VBA de formulario dentro de otro
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoInstrucción VBA de formulario dentro de otro

 Responder Responder
Autor
Mensaje
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 683
Enlace directo a este mensaje Tema: Instrucción VBA de formulario dentro de otro
    Enviado: 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
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 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.
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 683
Enlace directo a este mensaje Enviado: 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é??
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 683
Enlace directo a este mensaje Enviado: 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é...
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 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.

Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 683
Enlace directo a este mensaje Enviado: 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
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 683
Enlace directo a este mensaje Enviado: 20/Marzo/2020 a las 12:36
Muchas gracias Xavi.
El hilo se puede cerrar.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable