Splitform im geöffneten Formular mit VBA wegschalten?
Lorenz
Gesendet: 30.01.13 21:05
Betreff: RE: Splitform im geöffneten Formular mit VBA wegschalten?


Veteran

Beiträge: 102
100
Hallo an alle,

ich habe die geteilten Tabellen jetzt wieder ganz rausgenommen. So als erster Ansatz sind die super, aber sobald man programmieren muss, zeigen sich die üblen Details:

Die beiden "Hälften" sind intern offenbar zwei einzelne Formulare, von denen zwar das "DatasheetForm" einzeln angeprochen werden kann, aber nicht vom "richtigen" Formular zu unterscheiden ist, auch nicht namentlich. Das "richtige" Formular hingegen hat nicht einmal ein eigenes Objekt. Das hat zur Folge, dass sich der Fokus nicht per VBA zwischen den beiden verschieben lässt.

Hat mein Benutzer also im DataSheet einen Datensatz per Klick ausgewählt und ruft nun via Ribbon einen Befehl von mir auf, scheitert dieser beispielsweise beim Deaktivieren eines Objekts "abc". Dieses "abc" liegt auf dem "richtigen" Formular und hatte dort noch den Fokus. Um den wegzukriegen, rufe ich vorher "Me.xyz.SetFocus" auf, weil ich es ja sonst nicht deaktivieren darf. Die Fehlermeldung sagt dann, dass ein Objekt "xyz" nicht existiert. Natürlich existiert das im "richtigen" Formular, es fehlt nur im DataSheet, wo ich dessen Spalte weggeblendet hatte. Leider gibt es keine Möglichkeit, dem Code beizubringen, dass ich gar nicht das DataSheet meine, sondern die andere Hälfte.

Es kommt rein optisch die ärgerliche Eigenheit hinzu, dass der (senkrechte) Split-Balken von rechts rechnet. Habe ich also einen kleinen Entwurfsbildschirm und das DataSheet links am Rand, so ergibt sich eine schmale Breite für das "richtige" Formular. Dessen Objekte sind natürlich mit Anker so eingestellt, dass sie sich bei Bedarf nach rechts verlängern. Öffnet nun jemand das Formular auf einem großen Bildschirm, ist das DataSheet überflüssigerweise total breit und das "richtige" Formulare klebt immer noch klein am rechten Rand. Nix von wegen Anker und nach rechts verlängern. Das ist erst, wenn der Split-Balken wieder manuell nach links geschoben wird. Da müsste ich also dauernd mit VBA und Bildschirmbreite herumrechnen, um das abzufangen. Das wiederum kollidiert mit den Ankern, wie ich inzwischen gelernt habe.

Also gut gemeint, aber VBA-technisch nicht gut gemacht.

tschö, Lorenz
Top of the page Bottom of the page