La Web del Programador: Comunidad de Programadores
 
    Pregunta:  59444 - TAMAÑO SECCIÓN DETALLE INFORME ACCESS
Autor:  Paula Alonso Cantón
¿Es posible controlar el tamaño de la sección detalle en un informe de Access de manera que, independientemente del número de registros que se impriman, tenga siempre el mismo tamaño?
Gracias

  Respuesta:  Lenin Notas Académicas valderrama alvis
En el software de notas que promociono para los Colegios, necesité algo similar, y lo que hice fue colocar todos los objetos, y luego programar el tamaño del Detalle y la posición de los campos. El código que se coloca al dar formato es(Aunque es como guía porque depende de cada caso):
On Error GoTo Errorleva

If Me.codasighist = 1 Then '1 ES COMPORTAMIENTO EN LA ASIGNATURA
Me.DIRECTORG = Me.coddochist
End If
Me.Detalle.Height = 3000
For X = 1 To 10
posi(X) = 0
Next X
If Me.nrolog11 > posi(1) Then posi(1) = Me.nrolog11
If Me.nrolog12 > posi(2) Then posi(2) = Me.nrolog12
If Me.nrolog13 > posi(3) Then posi(3) = Me.nrolog13
If Me.nrolog14 > posi(4) Then posi(4) = Me.nrolog14
If Me.nroval11 > posi(5) Then posi(5) = Me.nroval11
If Me.nroval12 > posi(6) Then posi(6) = Me.nroval12
If Me.nroval13 > posi(7) Then posi(7) = Me.nroval13
POSIF(1) = 250
POSIF(2) = 670
POSIF(3) = 1090
POSIF(4) = 1510
POSIF(5) = 1930
POSIF(6) = 2350
POSIF(7) = 2770
For X = 1 To 7
If posi(X) > 0 Then
posi(X) = 1
End If
If posi(X) = 0 Then
For y = 7 To X Step -1
POSIF(y) = POSIF(y - 1)
Next y
POSIF(X) = 0
POSIF(8) = 0
End If
Next X
Dim VALOR(3) As String
VALOR(1) = "TRUE"
VALOR(0) = "FALSE"


Me.n11n.Visible = VALOR(posi(1))
Me.n11n.Top = POSIF(1)
Me.n12n.Visible = VALOR(posi(2))
Me.n12n.Top = POSIF(2)
Me.n13n.Visible = VALOR(posi(3))
Me.n13n.Top = POSIF(3)
Me.n14n.Visible = VALOR(posi(4))
Me.n14n.Top = POSIF(4)


Me.n11.Visible = VALOR(posi(1))
Me.nrolog11.Visible = VALOR(posi(1))
Me.nrolog11desc.Visible = VALOR(posi(1))
Me.n11.Top = POSIF(1)
Me.nrolog11.Top = POSIF(1)
Me.nrolog11desc.Top = POSIF(1)
Me.n12.Visible = VALOR(posi(2))
Me.nrolog12.Visible = VALOR(posi(2))
Me.nrolog12desc.Visible = VALOR(posi(2))
Me.n12.Top = POSIF(2)
Me.nrolog12.Top = POSIF(2)
Me.nrolog12desc.Top = POSIF(2)
Me.n13.Visible = VALOR(posi(3))
Me.nrolog13.Visible = VALOR(posi(3))
Me.nrolog13desc.Visible = VALOR(posi(3))
Me.n13.Top = POSIF(3)
Me.nrolog13.Top = POSIF(3)
Me.nrolog13desc.Top = POSIF(3)
Me.n14.Visible = VALOR(posi(4))
Me.nrolog14.Visible = VALOR(posi(4))
Me.nrolog14desc.Visible = VALOR(posi(4))
Me.n14.Top = POSIF(4)
Me.nrolog14.Top = POSIF(4)
Me.nrolog14desc.Top = POSIF(4)
Me.nroval11.Visible = VALOR(posi(5))
Me.nroval11des.Visible = VALOR(posi(5))
Me.nroval11.Top = POSIF(5)
Me.nroval11des.Top = POSIF(5)
Me.nroval12.Visible = VALOR(posi(6))
Me.nroval12des.Visible = VALOR(posi(6))
Me.nroval12.Top = POSIF(6)
Me.nroval12des.Top = POSIF(6)
Me.nroval13.Visible = VALOR(posi(7))
Me.nroval13des.Visible = VALOR(posi(7))
Me.nroval13.Top = POSIF(7)
Me.nroval13des.Top = POSIF(7)
VALOR1 = 0
For y = 1 To 7
If (POSIF(y) > VALOR1) Then
VALOR1 = POSIF(y)
End If
Next y
Me.Detalle.Height = VALOR1 + 300

Exit Sub
Errorleva:
Exit Sub