Imprimir página | Cerrar ventana

Redimensionar rectangulo con cajas de texto

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=84897
Fecha de impresión: 26/Marzo/2026 a las 15:42


Tema: Redimensionar rectangulo con cajas de texto
Publicado por: 12345qwerty
Asunto: Redimensionar rectangulo con cajas de texto
Fecha de publicación: 16/Diciembre/2019 a las 12:58
Buenas!

Tengo un rectangulo que incluye en su interior dos cuadros de textos. Estos campos son autoextensibles y autocomprimibles.

En el caso de que no haya texto en los cuadros, los dos cuadros de texto y el rectangulo que los contiene no aparecen en el informe final, no obstante, en el caso de que los cuadros de texto dispongan de mucho texto en su interior, se incrementa su tamaño pero no consigo aumentar el tamaño del rectangulo en las mismas condiciones y se queda en el tamaño original en el que lo había definido.

¿Sabríais que se puede hacer para que el rectangulo se adapte al tamaño de los cuadros de texto al extenderse?

Un saludo.



Respuestas:
Publicado por: 12345qwerty
Fecha de publicación: 16/Diciembre/2019 a las 13:03
De momento lo que tengo en el editor de VBA es lo siguiente, y el problema que no me aumenta el tamaño del texto es la parte en rojo:


Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)

If IsNull(Me.Texto110.Value) Or Me.Texto110.Value = "" Then
             Me.Etiqueta53.Visible = False
             Me.Etiqueta111.Visible = False
             Me.Etiqueta112.Visible = False
             Me.Cuadro113.Visible = False
Else
            Me.Etiqueta53.Visible = True
            Me.Etiqueta111.Visible = True
            Me.Etiqueta112.Visible = True
            Me.Cuadro113.Visible = True
            Me.Cuadro113.Height = Me.Texto52.Height + Me.Texto110.Height + Me.Etiqueta111.Height
           
End If

End Sub



Publicado por: prga
Fecha de publicación: 16/Diciembre/2019 a las 19:26
Hola.
Bienvenid@ al foro.
Una solución pasa por en el evento "detalle print" ( sólo sirve para la vista previa o impresa del informe).
Habrá que sustituir la línea en rojo por algo parecido a:

Dim altura As Long
Dim anchura As Long
Dim distcuadroaetiqueta As Long
Dim micolor As Long
micolor = Me.Cuadro113.BorderColor
distcuadroaetiqueta = Me.Etiqueta111.Top - Me.Cuadro113.Top
anchura = Me.Cuadro113.Left + Me.Cuadro113.Width
altura = Me.Cuadro113.Top + Me.texto52.Height + Me.texto110.Height + Me.Etiqueta111.Height + distcuadroaetiqueta
Me.Cuadro113.Visible = False
Me.Line (Me.Cuadro113.Left, Me.Cuadro113.Top)-(anchura, altura), micolor, B

Seguro que no es la solución mas sencilla, pero.....
Ya comentas.
Un saludo a todos



Publicado por: 12345qwerty
Fecha de publicación: 17/Diciembre/2019 a las 08:12
Perfecto, lo pruebo en cuanto pueda y te digo si me funciona.

Gracias!


Publicado por: 12345qwerty
Fecha de publicación: 17/Diciembre/2019 a las 08:18
Publicado originalmente por prga prga escribió:

Hola.
Bienvenid@ al foro.
Una solución pasa por en el evento "detalle print" ( sólo sirve para la vista previa o impresa del informe).
Habrá que sustituir la línea en rojo por algo parecido a:

Dim altura As Long
Dim anchura As Long
Dim distcuadroaetiqueta As Long
Dim micolor As Long
micolor = Me.Cuadro113.BorderColor
distcuadroaetiqueta = Me.Etiqueta111.Top - Me.Cuadro113.Top
anchura = Me.Cuadro113.Left + Me.Cuadro113.Width
altura = Me.Cuadro113.Top + Me.texto52.Height + Me.texto110.Height + Me.Etiqueta111.Height + distcuadroaetiqueta
Me.Cuadro113.Visible = False
Me.Line (Me.Cuadro113.Left, Me.Cuadro113.Top)-(anchura, altura), micolor, B

Seguro que no es la solución mas sencilla, pero.....
Ya comentas.
Un saludo a todos




Me dibuja el cuadro perfectamente con las dimensiones que tienen los elementos del interior, el único problema es que en el momento de impresión, el elemento Texto110 tiene la propiedad de autoextensible, y si el texto es largo, el rectangulo no llega a adaptarse en proporcionalidad a este y el texto sobresale por debajo.


Publicado por: prga
Fecha de publicación: 17/Diciembre/2019 a las 10:03
Hola
Una pregunta, ¿el código lo has puesto en el evento detalle_print?, ya que en el evento detalle_format la altura de los cuadros autoextensibles continua siendo el "original".
Ya comentas.
Un saludo a todos


Publicado por: 12345qwerty
Fecha de publicación: 18/Diciembre/2019 a las 12:49
Muchísimas gracias, era por eso. Lo tenia puesto en detalle_format, por eso no me aparecía.

¿Hay algún modo de hacer que el borde del cuadro sea de 2 puntos?

Muchas gracias de nuevo!

Un saludo.


Publicado por: prga
Fecha de publicación: 18/Diciembre/2019 a las 15:27
Hola
Prueba con:
Me.DrawWidth = 20 antes del Me.line

Busca en la ayuda o por ahí los términos, drawwidth, drawmode y drawstyle, casi seguro que ayudan a resolver la duda.
Ya comentas.
Un saludo a todos


Publicado por: 12345qwerty
Fecha de publicación: 19/Diciembre/2019 a las 08:02
Sí, me ha funcionado a la perfección, muchas gracias por tu ayuda!

Saludos!



Imprimir página | Cerrar ventana