Access VBA: Form Größe maximieren
Es kommt vor, dass Formulare bei der Entwicklung auf eine andere Bildschirmgröße abgestimmt sind, als letztendlich der Endanwender vorfinden wird. Hilfreich ist es dann, wenn sich die Fenstergröße automatisch an die Maße des Bildschirmes anpasst.
Hierfür wird im nachfolgenden Quelltext zunächst die Funktionalität, ein Formular zu maximieren, hergestellt. Dann werden die erreichten maximalen Werte für die Dimensionen Höhe und Breite ermittelt und bei Bedarf das Formular jeweils auf maximale Höhe oder maximale Breite gesetzt.
Modul: mod_form_maxDatei: mod_form_max (5).bas
Attribute VB_Name = "mod_form_max"Option Compare DatabasePublic max_form_height As IntegerPublic max_form_width As IntegerPublic Sub set_max_dimensions(frm) DoCmd.Maximize max_form_height = frm.InsideHeight max_form_width = frm.InsideWidth DoCmd.RestoreEnd SubPublic Sub set_max_window_height(frm) If max_form_height = 0 Then: set_max_dimensions frm DoCmd.MoveSize , , , max_form_heightEnd SubPublic Sub set_max_window_width(frm) If max_form_width = 0 Then: set_max_dimensions frm DoCmd.MoveSize , , max_form_widthEnd Sub
Eine sinnvolle Anwendung der Prozeduren set_max_window_height oder set_max_window_width bietet sich dann beim Öffnen-Ereignis eines Formulares der Art:
Private Sub Form_Open(Cancel As Integer) mod_form_max.set_max_window_width Me mod_form_max.set_max_window_height MeEnd Sub
Was mir an dieser Lösung so gefällt, ist der pragmatische Ansatz, einfach das Formular komplett zu maximieren, um dann die maximal möglichen Dimensionen an dem Formular direkt abzulesen, statt z.B. über die Bildschirmauflösung zu gehen und daraus die maximalen Ausmaße zu berechnen. Natürlich kann man sich beim gleichzeitigen Maximieren in beide Richtungen das Hilfsmodul ganz sparen und ausschließlich DoCmd.Maximize aufrufen.