通过更改Detail.Height调整MS Access中的窗体大小

Sma*_*oli 2 ms-access access-vba

我希望用户能够在窗体视图中通过单击按钮更改窗体的高度:

Private Sub btnChangeHeight_Click()

    booTall = Not booTall

    If booTall Then
        lngHeight = 12400   ' (twips)
    Else
        lngHeight = 1200
    End If

    Me.Detail.Height = lngHeight
    Me.Repaint

    Debug.Print Me.Detail.Height

End Sub
Run Code Online (Sandbox Code Playgroud)

高度变化 - Debug.Print这样说,并且当出现时booTall会出现垂直滚动条True. 但表格不会改变其在屏幕上的垂直尺寸.

我也试过这个,没有成功(确保我的按钮在Form标题上):

    Me.Detail.Visible = booTall
Run Code Online (Sandbox Code Playgroud)

解决方案似乎取决于表单和表单详细信息部分的属性:可调整大小,自动高度,也许可以增长等等.但我已经摆弄了这些并且没有任何作用.

我理解重叠控件和其他东西可以防止高度调整,所以我将表单缩小到最小的布局.我正在使用Access版本2007/2010.

一些额外的信息: 我实际上正在努力的是两个子表单,上面的(A)和下面的(B),它们可以独立地折叠出视图或展开.这是一个决策表格,上面有很多数据.我想如果我折叠了(A)或(B)的高度,那么CanShrink属性Detail会导致整体形状尺寸发生变化.事实上,我想我几年前使用Access 2003做过这样的事情.至于使用Maximize ...我们将这个表单设置为可重用,多个实例可以打开.

Han*_*sUp 6

"...通过单击按钮在窗体视图中更改窗体的高度"

使用表单的.Move方法更改表单的大小.此示例切换我的表单高度在4044和8000缇之间.

Private Sub btnChangeHeight_Click()
    Dim lngHeight As Long

    If Me.WindowHeight = 4044 Then
        lngHeight = 8000
    Else
        lngHeight = 4044
    End If
    Me.Move Me.WindowLeft, Height:=lngHeight
End Sub
Run Code Online (Sandbox Code Playgroud)