** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Ocultar campo subform2
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoOcultar campo subform2

 Responder Responder
Autor
Mensaje
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1352
Enlace directo a este mensaje Tema: Ocultar campo subform2
    Enviado: 17/Abril/2018 a las 17:21
Buenas.
Tengo dos subformularios (Sub1 y Sub2), vinculados de manera que al situarme en un registro del Sub1 me muestra los relacionados en el Sub2. El código que tengo en el Sub1 es el siguiente:

Private Sub Form_Current()
Dim ParentDocName As String
    On Error Resume Next
    ParentDocName = Me.Parent.Name
    If Err <> 0 Then
        GoTo Form_Current_Exit
    Else
        On Error GoTo Form_Current_Err
        Me.Parent![Sub2].Requery
    End If
Form_Current_Exit:
    Exit Sub
Form_Current_Err:
    MsgBox Error$
    Resume Form_Current_Exit
End Sub

Ahora en el Sub2 tengo dos campos (Campo1 y Campo2) donde quiero ocultar uno y ver otro dependiendo del valor del Campo3 (tipo Sí/No) que está en el Sub1. Para esto, estoy probando con el siguiente código:
Private Sub BOTON_Click()     'ESTE BOTON ESTA EN EL SUB1 EN CADA REGISTRO
If Campo3 = -1 Then      'Si es Factura Proforma
    Me!Sub2.Form!Campo1.Visible = False
    Me!Sub2.Form!Campo2.Visible = True
else
    Me!Sub2.Form!Campo1.Visible = True
    Me!Sub2.Form!Campo2.Visible = False
End if
End Sub

La ejecución del primer código la hace perfectamente, es decir, cuando me posiciono en cada registro del Sub1, me aparecen correctamente los relacionados en el Sub2. Pero no reconoce el valor del Campo3 para ocultar o mostrar el Campo1 o Campo2.

Alguna sugerencia?
Gracias.
Pda. Probando con un botón fuera del Sub1, también lo hace bien.



Editado por Nomada - 17/Abril/2018 a las 17:48
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1172
Enlace directo a este mensaje Enviado: 17/Abril/2018 a las 19:38
Si los 2 códigos están en Sub1, veamos las diferencias entre lo que funciona y lo que no:

- Lo que funciona es actualizar el Sub2 cuando cambiamos de registro. Obviando los controles de errores, nos queda esto:
     Me.Parent![Sub2].Requery

Que viene a decir: sobre mí (Me) vete al formulario que me contiene (Parent), y de ahí ve a otro subformulario que tiene mi padre (Sub2) y actualiza su conjunto de registros (Requery).

- Ahora, lo que no funciona. Si Campo3 está en Sub1, nos queda que el error debe producirse en una de las líneas para ocultar/mostrar:
    Me!Sub2.Form!Campo1.Visible = False

Que viene a decir: sobre mí (Me) vete al subformulario que Yo tengo (Sub2), y en el formulario contenido (Form), oculta el control Campo1.

Entre los 2 códigos, ¿ves alguna diferencia cuando vamos a buscar el Sub2?


Editado por pitxiku - 17/Abril/2018 a las 19:38
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1352
Enlace directo a este mensaje Enviado: 18/Abril/2018 a las 08:10
Gracias y perfecto.
El código correcto es:
If Campo3 = -1 Then      'Si es Factura Proforma
    Me.Parent![Sub2].Form!Campo1.Visible = False
    Me.Parent![Sub2].Form!Campo2.Visible = True
else
    Me.Parent![Sub2].Form!Campo1.Visible = True
    Me.Parent![Sub2].Form!Campo2.Visible = False
End if 

Lo que no entiendo, es porqué la sintaxis para referirse a un campo de un Sub2 estando en un Sub1 es, según los manuales:

Me!Subform2.Form!ControlName.Enabled
  
No aparece "Parent".
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11383
Enlace directo a este mensaje Enviado: 18/Abril/2018 a las 08:18
Porque no es lo mismo que Sub1 y Sub2 estén contenidos en el formulario principal, que Sub1 este contenido en el principal y Sub2 esté dentro de Sub1.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1352
Enlace directo a este mensaje Enviado: 18/Abril/2018 a las 09:25
Gracias y entendido.
Este hilo se puede cerrar satisfactoriamente.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable