Измените размер формы в MS Access, изменив Detail.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
говорит об этом, и при этом появляется вертикальная полоса прокрутки. booTall
является True
. Но форма не изменит свой вертикальный размер на экране.
Я также попробовал это, но безуспешно (убедившись, что моя кнопка находится в заголовке формы):
Me.Detail.Visible = booTall
Решение, похоже, зависит от свойств раздела «Форма» и «Сведения о форме»: Изменяемый размер, Автоматическая высота, возможно Может расти, и т. д.Но я возился с ними, и ничего не работает.
Я понимаю, что перекрывающиеся элементы управления и другие вещи могут помешать регулировке высоты, поэтому я уменьшил форму до минимального макета.Я использую версию Access 2007/2010.
Некоторая дополнительная информация: На самом деле я работаю над двумя подформами: (A) вверху и (B) внизу, которые можно независимо свернуть или развернуть.Это форма принятия решений с МНОГО данных.Я подумал, что если я сверну высоту (A) или (B), CanShrink
свойство Detail
приведет к изменению общего размера формы.На самом деле, кажется, я сделал это несколько лет назад, используя Access 2003.Что касается использования Максимизировать...мы настраиваем эту форму как многоразовую, можно открыть несколько экземпляров.
Решение
"...измените высоту формы в режиме просмотра формы, нажав кнопку"
Используйте форму .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
Другие советы
У меня возникла аналогичная проблема, и я обнаружил, что даже если бы я скрыл поля (элементы управления), я не хотел, чтобы высота детализации не уменьшалась достаточно.Я обнаружил, что если я переместил элементы управления, которые хотел скрыть (поэтому установите свойства .Visible и .Top), то Detail.Height уменьшится до того, что я хотел.Как будто даже скрытый доступ отказался игнорировать скрытые элементы управления.