Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Formularhöhe bei Endlosformular

Begonnen von huith, Januar 27, 2017, 18:44:51

⏪ vorheriges - nächstes ⏩

huith

Hallo zusammen,
folgendes Problem:
dem Endlosformular wird erst beim Öffnen das Recordset zugewiesen. Das führt dazu, dass das Formular immer nur einen Datensatz hoch angezeigt wird.
Wie kann ich die Gesamthöhe z.B. auf Formularkopf + 20 Datensätze + Formularfuß zwingen?

Danke für Tipps
Michael

MzKlMu

Hallo,
ZitatDas führt dazu, dass das Formular immer nur einen Datensatz hoch angezeigt wird.
Das kann ich mit nicht vorstellen. Wenn das Formular an das Recordset gebunden ist (über den Steuerlementinhalt der Felder) werden automatisch alle Datensätze angezeigt.
Hast Du das Formular auch auf Endlosformular stehen ?
Gruß Klaus

huith

Ja, das Formular ist als Endlosformular gekennzeichnet. Es werden natürlich alle Datensätze angezeigt, aber der Detailbereich ist nur 1 Datensatz hoch.
Wenn ich das ganze Formular weiter aufziehe und speichere, ist es trotzdem beim erneuten Öffnen wieder so klein. Docmd.movesize ist nicht möglich, weil ich ja nur die Detailbereichhöhe ändern könnte, was aber nicht erwünscht ist.

Gruß
Michael

MzKlMu

Hallo,
der Detailbereich ist immer ein Datensatz hoch, wenn Du den höher machst, ist trotzdem nur ein Datensatz im Detailbereich.
Die Detailbereichshöhe kann man nur im Formularentwurf ändern und speichern. Änderungen während der Datensicht gehen verloren.

Erkläre mal den Hintergrund des Vorhabens genauer.
Gruß Klaus

Lachtaube

Ich rate, dass die Formulareigenschaft AutoResize (Größe anpassen) auf Ja steht.
Grüße von der (⌒▽⌒)

huith

Ob autoresize auf ja oder nein steht, macht keinen Unterschied.
Nochmals zur Erläuterung:
Die Datenbasis wird erst beim Öffnen zugewiesen, weil das Formular je nach Situation verschiedenen recordsets zugewiesen wird.
Das Problem liegt offensichtlich darin, dass zu dem Zeitpunkt, an dem die Formulargröße (oder auch Detailbereichhöhe) eingestellt wird, noch kein Datensatz vorhanden ist.
Die Frage ist also: wie kann ich in einem offenen Formular die Höhe per VBA ändern (per VBA nachvollziehen was ich manuell mit der Maus mache)?

Gruß
Michael

huith

Ich habe das Problem jetzt etwas unschön gelöst:
Eine  Tabelle mit 20 leeren Datensätzen als permanente Datenquelle, die dann beim Öffnen durch die eigentliche Datenquelle ersetzt wird.
Weiß jemand eine elegantere Lösung?

Gruß
Michaeö

MzKlMu

Hallo,
mir ist nach wie vor unklar wo das Problem ist. Der Detailbereich ist immer ein Datensatz hoch.
Gruß Klaus

DF6GL

Hallo,

vielleicht führt ja die Einstellung der Form-Eigenschaft "Rahmenart" auf "dünn" zum Ziel, das ich aber auch nicht so genau
erkennen kann.

huith

Ja, das ist klar, dass der Detailbereich immer nur einen Datensatz hoch ist. Die Frage ist aber, wie viele Datensätze beim Öffnen angezeigt werden, also: Höhe Formularkopf + x mal Höhe Dateilbereich + Höhe Formularfuß.
Wenn das Formular ohne Recordset geöffnet wird, wird immer nur der Detailbereich = 1 Datensatz angezeigt, aber nach Zuweisung eines Recordsets mit mehreren Datensätzen wird das Formular nicht automatisch vergrößert; ich muss es manuell machen.
Deshalb die Frage, ob das auch per VBA erfolgen könnte.

Gruß
Michael

Beaker s.a.

Hallo Michael,
Versuche es Mal mit den Eigenschaften "vergrösser-" und "verkleinerbar"
des Detailbereichs.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

markusxy

Weist du das Recordset im Load oder Open Event zu, oder wie machst du das?
Die Größe des Forms kannst du jedenfalls per Form.move Methode festlegen.
Oder auch WindowHeight wenns nur um die Höhe geht.


Joss

Hallo Michael,

vielleicht geht's so:

DoCmd.OpenForm "MeinFormular"
DoCmd.MoveSize , , , 567 * 15


Gruß
Josef