Comprobar si un formulario tiene encabezado de formulario

Necesito comprobar si en un formulario está visible el encabezado de formulario o no para aplicar un estilo.

Estoy probando con Form. Section(1), pero claro, me dice que no existe si entro en un formulario sin encabezado de formulario.

¿Cómo podría hacerlo?

2 respuestas

Respuesta
3

Te digo cómo lo enfocará yo, sin darte el código exacto :

Crearía una función pública que devuelva un valor tipo boolean, y dentro de esa función comprobará si esa sección está visible, o su alto, o cualquier otra propiedad. Si la comprobación da un resultado, la función devolverá True, si da algún error (señal de que no hay esa sección), por medio del control de errores, devolverá False .

Luego usas la función para ver si hay o no sección, según el valor que devuelva la función .

Añado: como argumento de la función le pasaría el nombre del formulario o directamente el objeto formulario

Me has dado otra idea mejor. Crear una función pública en un módulo específica para los formularios que tengan encabezado.

A ver, la razón de esto es para poder gestionar desde un formulario los colores de los formularios de la base de datos.

Eso es justo lo que te sugería, una función pública a la que le pases el formulario, que te valdrá verificarlo en cualquier formulario (tenga o no esa sección)

Y siguiendo el mismo esquema, puedes hacer funciones para cada sección del formulario. O, incluso, puedes añadir a la función un nuevo parámetro de entrada y usar una única función para comprobar cualquier sección de un formulario.

Respuesta
2

Diego: Pon algo así >>

Private Sub Form_Load()
On Error GoTo Form_Load_TratamientoErrores
If Me.Section(1).Height > 0 Then
     MsgBox "La cabecera de éste formulario tiene una altura de:" & Me.Section(1).Height, vbInformation,"ALTO SECCION"
     'Si no quieres el Mensaje lo omites
End If
Form_Load_Salir:
On Error GoTo 0
Exit Sub
Form_Load_TratamientoErrores:
If Not Err = 2462 Then 
    MsgBox "Error " & Err.Number & " en Procedimiento.: Form_Load de Documento VBA: Form_AgrupaReservass (" & Err.Description & ")"
Else
    If Err = 2462 Then
         MsgBox "Este formulario no tiene cabecera",vbCritical, "FALTA CABECERA"
    End If
End If
Resume Form_Load_Salir
End Sub 'Form_Load

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas