Измените размер формы в MS Access, изменив Detail.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 говорит об этом, и при этом появляется вертикальная полоса прокрутки. 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 уменьшится до того, что я хотел.Как будто даже скрытый доступ отказался игнорировать скрытые элементы управления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top