¿Como cambio el tamaño del detalle en un formulario?

Tengo un formulario que en detalle tiene cuadros en varias línea. Mediante un boton controlo que estos cuadros se vean o desaparezcan. El caso es que cuando se pulsa para verlas aumenta el alto de la línea de detalle y se ve todo correctamente, pero cuando vuelvo a pulsar para que desaparezcan los cuadros el detalle sigue con el mismo alto, es decir, no se ajusta bien y aparece mucho espacio en blanco ¿Cómo puedo ajustar el alto de la línea?

He probado con Me.Detalle.Height = 400 y cambiando las propiedades a ancho y alto automatico y ajstar tamaño automatico pero no me hace nada. 

¿Se puede hacer?

2 respuestas

Respuesta
2

Eloy: Sin profundizar en lo que quieres obtener, prueba con:

Me.Section(acDetail).Height = 400

Un saludo y feliz 2021 >> JTJ

Lo primero, gracias por intentar ayudarme y feliz año.

No me funciona, lo que intento es, cuando pulso "+", me sale esto

Cuando vuelvo a pulsar:

Lo que quería es que también se me redujera ese espacio en blanco y me ajustar el alto de la línea de detalle. No sé si me he explicado bien.

Eloy: Ignoro que código tienes en ese "+". Si lo citas es posible que me dé una pista.

Un saludo >> JTJ

En el + solamente juego con las propiedades de los cuadros, el código sería este:

If Me.Ubicacion.Visible = True Then

Me.Section(acDetail).Height = 400

Me.Ubicacion.Visible = False
Me.PVP.Visible = False
Me.Stock.Visible = False
Me.UbicacionEtiqueta.Visible = False
Me.PVPEtiqueta.Visible = False
Me.StockEtiqueta.Visible = False


Me.SubTotal.Visible = False
Me.PCosteIva.Visible = False
Me.Margen2.Visible = False
Me.Tarifa2.Visible = False
Me.TarifaIva2.Visible = False
Me.Margen3.Visible = False
Me.Tarifa3.Visible = False
Me.TarifaIva3.Visible = False

Me!UbicacionEtiqueta.Width = 0
Me!PVPEtiqueta.Width = 0
Me!StockEtiqueta.Width = 0

Me.SubTotal.Height = 0
Me.PCosteIva.Height = 0
Me.Margen2.Height = 0
Me.Tarifa2.Height = 0
Me.TarifaIva2.Height = 0
Me.Margen3.Height = 0
Me.Tarifa3.Height = 0
Me.TarifaIva3.Height = 0

Else

Me.Ubicacion.Visible = True
Me.PVP.Visible = True
Me.Stock.Visible = True

Me.UbicacionEtiqueta.Visible = True
Me.PVPEtiqueta.Visible = True
Me.StockEtiqueta.Visible = True
Me.TARIFA1ETIQUETA.Visible = True
Me.TARIFA2ETIQUETA.Visible = True
Me.TARIFA3ETIQUETA.Visible = True

Me.SubTotal.Visible = True
Me.PCosteIva.Visible = True
Me.Margen2.Visible = True
Me.Tarifa2.Visible = True
Me.TarifaIva2.Visible = True
Me.Margen3.Visible = True
Me.Tarifa3.Visible = True
Me.TarifaIva3.Visible = True

Me!UbicacionEtiqueta.Width = 1100
Me!PVPEtiqueta.Width = 900
Me!StockEtiqueta.Width = 700

Me.Detalle.Height = 990
Me.SubTotal.Height = 330
Me.PCosteIva.Height = 330
Me.Margen2.Height = 330
Me.Tarifa2.Height = 330
Me.TarifaIva2.Height = 330
Me.Margen3.Height = 330
Me.Tarifa3.Height = 330
Me.TarifaIva3.Height = 330

End If

Eloy: Realmente poco puedo ver para estar seguro de una respuesta, pero en cualquier caso si quieres que no se vea la línea de Nuevo registro en blanco, has de poner el Añadir registros a False.

Usa un código como éste:

Private Sub Form_Current()
Me.AllowAdditions = False
Form_Resize
End Sub
Private Sub Form_Resize()
Me.InsideHeight = Me.Section(acHeader).Height + Me.Section(acFooter).Height + _
                                        (Me.RecordsetClone.RecordCount) * Me.Section(acDetail).Height
End Sub

Después y con un botón has de activar el que se vuelvan a añadir nuevos Registros con un:

Me.AllowAdditions = True

Form_Resize

DoCmd. GoToRecord acDataForm, Me. Name, acNewRec

Ese código tiene limitaciones, ya que si la altura supera a la pantalla no va a funcionar.

Yo lo tengo en una BBDD personal, por lo que no puedo hacerla publica aquí, pero si con eso no resuelves el problema te prepararía un ejemplo y te lo pongo aquí, para que otros usuarios puedan verlo. Sería mañana o pasado >> Saludos >> JTJ

Hola Jacinto, no la línea de añadir la quiero como está. Lo que querría era que el alto de la fila de detalle se me ajustara al alto de los cuadros, es decir, que en la 2º imagen, debajo de donde pone filtros, me apareciera ya el siguiente registro, y no ese espacio en blanco. A lo mejor no se puede hacer, es un tema visual asi que tampoco me importa demasiado. Muchas gracias de todas formas.

Eloy: Tal como ayer te anunciaba, he preparado un ejemplo simple que tienes en éste enlace:

https://www.mediafire.com/file/87epp00qa4rzjl1/AltoAutoFormContinuo.rar/file 

Saludos >> JTJ

No me deja descargar el archivo. Un saludo

Modifiqué la BBDD para añadir una utilidad de otro usuario. Lo que deseas, al menos yo no sé como hacerlo.

https://www.mediafire.com/file/afffn7eizvnliw4/AltoAutoFContinuoYAchoHojaDat.rar/file 

Saludos >> JTJ

Respuesta
1

No sé como determinas que registros deben mostrarse, pero si tengo un formulario Pedidos, basado en la tabla Pedidos y con ella construyo un formulario, donde te muestro con una etiqueta y un color distinto el pié del formulario

Si en el combinado ElegirPais, selecciono un país de los destinatarios, en este caso Venezuela

Si elijo Francia

Si elijo Brasil

Es decir, me va modificando la altura del pié del formulario. En este caso en particular el código del evento Después de actualizar del combinado es

Private Sub ElegirPais_AfterUpdate()
Me.RecordSource = "SELECT FechaPedido,Destinatario FROM CopiaPedidos GROUP BY FechaPedido,Destinatario,Pais HAVING (Pais) Like '" & Me.ElegirPais & "'"
Select Case DCount("*", "copiapedidos", "pais='" & Me.ElegirPais & "'")
Case Is = 1
Me.PieDelFormulario.Height = 9.2 * 570
Case Is = 2
Me.PieDelFormulario.Height = 8.7 * 570
Case Is = 3
Me.PieDelFormulario.Height = 8.2 * 570
Case Is = 4
Me.PieDelFormulario.Height = 7.7 * 570
End Select
End Sub

O sea, con lo que hay que "jugar" es con la altura del pie del informe, con la sección Detalle no.

Uso lo de select case porque sé que no va a mostrar más registros que 4, pero si tuviera que mostrar más, entonces sería conveniente usar

dim i as integer

for i=1 to Dcount("*",....lo del select case

me.piedelformulario.Height=....

next

Pero claro, si fueran muchos registro los que tuviera que mostrar lo que no se vería sería el pié del formulario, al menos en mi ordenador, que es un portátil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas