Ändern Sie die Größe des Formulars in MS Access, indem Sie Detail.Height ändern
-
21-12-2019 - |
Frage
Ich möchte, dass der Benutzer in der Formularansicht die Höhe des Formulars ändern kann, indem er auf eine Schaltfläche klickt:
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
Die Höhe ändert sich – Debug.Print
sagt es, und eine vertikale Bildlaufleiste erscheint, wenn booTall
Ist True
. Aber das Formular ändert seine vertikale Dimension auf dem Bildschirm nicht.
Ich habe auch Folgendes versucht, ohne Erfolg (wobei ich darauf geachtet habe, dass sich meine Schaltfläche in der Kopfzeile des Formulars befindet):
Me.Detail.Visible = booTall
Die Lösung scheint von den Eigenschaften für den Abschnitt „Formular“ und „Formulardetails“ abzuhängen: Der Größe veränderbar, Automatische Höhe, vielleicht Kann wachsen, usw.Aber ich habe damit herumgespielt und nichts funktioniert.
Mir ist bewusst, dass überlappende Steuerelemente und andere Dinge Höhenanpassungen verhindern können, daher habe ich das Formular auf ein minimales Layout reduziert.Ich verwende die Access-Version 2007/2010.
Einige zusätzliche Informationen: Worauf ich eigentlich hinarbeite, sind zwei Unterformulare, (A) oben und (B) unten, die unabhängig voneinander ausgeblendet oder erweitert werden können.Dies ist für ein Entscheidungsformular mit einer Menge Daten.Ich dachte, wenn ich die Höhe von (A) oder (B) zusammenfalte, würde das CanShrink
Eigentum von Detail
würde dazu führen, dass sich die gesamte Formdimension ändert.Tatsächlich glaube ich, dass ich das vor ein paar Jahren mit Access 2003 gemacht habe.Was die Verwendung von Maximize betrifft ...Wir richten dieses Formular als wiederverwendbar ein, es können mehrere Instanzen geöffnet werden.
Lösung
„...Ändern Sie die Höhe des Formulars in der Formularansicht, indem Sie auf eine Schaltfläche klicken.
Nutzen Sie die Formulare .Move
Methode, um die Größe des Formulars zu ändern.Dieses Beispiel schaltet die Höhe meines Formulars zwischen 4044 und 8000 Twips um.
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
Andere Tipps
Ich hatte ein ähnliches Problem und stellte fest, dass selbst wenn ich die Felder (Steuerelemente) ausblendete, die ich nicht sehen wollte, die Detailhöhe nicht ausreichend schrumpfte.Ich habe festgestellt, dass sich Detail.Height auf das von mir gewünschte Maß reduzieren würde, wenn ich die Steuerelemente verschob, die ich ausblenden wollte (also sowohl die Eigenschaften „.Visible“ als auch „.Top“ festlegte).Es ist, als ob selbst versteckter Access sich geweigert hätte, die versteckten Kontrollen zu ignorieren