詳細を変更することでMSアクセスでフォームをサイズ変更します.Height.

StackOverflow https://stackoverflow.com//questions/22021802

  •  21-12-2019
  •  | 
  •  

質問

ボタンをクリックしてフォームビューでフォームの高さを変更できるようにしたい:

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
.

高さの変化 - Debug.Print SOを述べ、booTallTrueのときに垂直スクロールバーが表示されます。 しかし、フォームはその垂直方向の寸法を画面上で変化させない。

また、成功せずにこれを試してみました(私のボタンがフォームヘッダーにあることを確認してください):

    Me.Detail.Visible = booTall
.

ソリューションは、フォームとフォームディテールセクションのプロパティに依存しているように見えます。サイズ変更可能自動高さ、おそらくなどなど。しかし、私はそれらと一緒にいて、何も機能しません。

私は、重複するコントロールや他のものが高さ調整を防ぐことができるので、フォームを最小限のレイアウトに縮小しました。私はアクセスバージョン2007/2010を使用しています。

いくつかの追加情報:実際にどのように取り組んでいるのか、下記の2つのサブフォーム、(a)、下記(b)はそれぞれ異なる崩壊や拡大を崩壊させることができます。これは、データがたくさんある意思決定フォームのためのものです。 (a)または(b)の高さを折りたたんだと思ったと思った、CanShrinkDetailプロパティは全体的なフォームディメンションを変更すると変化します。実際、私はAccess 2003を使用してこのフォームを再利用可能に設定することができるため、複数のインスタンスが開くことができるように、このフォームを設定することができます。

役に立ちましたか?

解決

"...ボタンをクリックしてフォームの高さを変更してください"

フォームのサイズを変更するためにFormの.Moveメソッドを使用します。このサンプルは、4044から8000のTwipsの間の私の形の高さを切り替えます。

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
.

他のヒント

私は同様の問題を抱えていて、フィールド(コントロール)をHIDしても詳細な高さを見たくなかった場合でも十分に縮小しないことがわかりました。私が非表示にしたコントロールを移動した場合は見つかりました(そのため、Visibleと.top propertiesを設定します)、detail.heightが私が欲しかったものに減らすだろう。隠されたコントロールを無視することを拒否さえ拒否されたのと同じくらいです

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top