** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Redimensionar rectangulo con cajas de texto
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRedimensionar rectangulo con cajas de texto

 Responder Responder
Autor
Mensaje
12345qwerty Ver desplegable
Nuevo
Nuevo


Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Tema: Redimensionar rectangulo con cajas de texto
    Enviado: 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.
Arriba
12345qwerty Ver desplegable
Nuevo
Nuevo


Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Enviado: 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

Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 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

Arriba
12345qwerty Ver desplegable
Nuevo
Nuevo


Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Enviado: 17/Diciembre/2019 a las 08:12
Perfecto, lo pruebo en cuanto pueda y te digo si me funciona.

Gracias!
Arriba
12345qwerty Ver desplegable
Nuevo
Nuevo


Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Enviado: 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.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 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
Arriba
12345qwerty Ver desplegable
Nuevo
Nuevo


Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Enviado: 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.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 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
Arriba
12345qwerty Ver desplegable
Nuevo
Nuevo


Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
Enlace directo a este mensaje Enviado: 19/Diciembre/2019 a las 08:02
Sí, me ha funcionado a la perfección, muchas gracias por tu ayuda!

Saludos!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable