Ocultar pestañas con subformularios si no tienen datos

Tengo un subformulario dentro de una pestaña de un formulario. Si no hay datos en el subformulario este no se ve, y mi intención es que también se oculte la pestaña del subformulario cuando esto ocurra.

Lo he puesto con esto:

Private Sub Form_Current()
On Error GoTo salir_error
Dim vRMutuo, vIdentico As String
   Me.Refresh
   Me.pgeRMutuo.Visible = True
   Me.pgeIdenticos.Visible = True
   vRMutuo = Nz(Forms!FProductos!FsubRMutuo.Form!txtNomProdRef, "")
Salida:
   Exit Sub
salir_error:
   Me.pgeRMutuo.Visible = False
   Resume Salida
End Sub

Seguro que hay otra forma mejor de hacerlo, pero con lo poco que sé solo he llegado a esto. Me funciona bien. El problema es que tengo dos pestañas con dos subformularios y quiero que se oculten cuando no tengan datos, pero a veces tengo datos en una y no en la otra, con lo que se tendrían que ocultar una, otra o ambas. Pero este código no da más de sí. Y mis conocimientos tampoco por lo visto.

¿Alguien tiene alguna idea?

2 Respuestas

Respuesta
1

Si el formulario y el subformulario no están relacionados y suponiendo que el origen del subformulario sea la tabla Clientes, en el mismo evento pondría

If nz(Dcount("nombrecliente","clientes"))=0 then

me.nombredelsubform.visible=false

me.pgrmutuo.visible=false

end if

En el caso de que estén relacionados, por ejemplo, por el idcliente

If nz(Dcount("nombrecliente","clientes", "idcliente=" & me.idcliente & ""))=0 then

me.nombredelsubform.visible=false

me.pgrmutuo.visible=false

end if

Hola Icue,

Sí que están relacionados. Lo he usado sin el "me.nombredelsubform.visible=false" porque al ocultar la página ya se me oculta el subformulario que hay dentro. Me ha funcionado a la primera.

¡Gracias! ¡Qué manera más sencilla de resolverlo! 

Saludos

Respuesta
1

Si estas usando control de ficha

Lo que puedes es jugar con la propiedad Propiedad IndiceDePáginas (PageIndex)

PageIndex

Para hacerla visible o invisible cuando tu quieras

Dependiendo el numero de indice que tengas lo pones visible o invisible

Por ejemplo

if isnull(me.registro) or me.registro = "" then 

me.pestaña.PageIndex = 1

me.pestaña.visible = false

elseif  isnull(me.registro2) or me.registro2 = "" then 

me.pestaña2.PageIndex = 1

me.pestaña2.visible = false

end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas