詳細を変更することでMSアクセスでフォームをサイズ変更します.Height.
-
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を述べ、booTall
がTrue
のときに垂直スクロールバーが表示されます。 しかし、フォームはその垂直方向の寸法を画面上で変化させない。
また、成功せずにこれを試してみました(私のボタンがフォームヘッダーにあることを確認してください):
Me.Detail.Visible = booTall
.
ソリューションは、フォームとフォームディテールセクションのプロパティに依存しているように見えます。サイズ変更可能、自動高さ、おそらくなどなど。しかし、私はそれらと一緒にいて、何も機能しません。
私は、重複するコントロールや他のものが高さ調整を防ぐことができるので、フォームを最小限のレイアウトに縮小しました。私はアクセスバージョン2007/2010を使用しています。
いくつかの追加情報:実際にどのように取り組んでいるのか、下記の2つのサブフォーム、(a)、下記(b)はそれぞれ異なる崩壊や拡大を崩壊させることができます。これは、データがたくさんある意思決定フォームのためのものです。 (a)または(b)の高さを折りたたんだと思ったと思った、CanShrink
のDetail
プロパティは全体的なフォームディメンションを変更すると変化します。実際、私は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が私が欲しかったものに減らすだろう。隠されたコントロールを無視することを拒否さえ拒否されたのと同じくらいです