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
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 ?
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
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.
Ich rate, dass die Formulareigenschaft AutoResize (Größe anpassen) auf Ja steht.
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
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ö
Hallo,
mir ist nach wie vor unklar wo das Problem ist. Der Detailbereich ist immer ein Datensatz hoch.
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.
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
Hallo Michael,
Versuche es Mal mit den Eigenschaften "vergrösser-" und "verkleinerbar"
des Detailbereichs.
gruss ekkehard
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.
Hallo Michael,
vielleicht geht's so:
DoCmd.OpenForm "MeinFormular"
DoCmd.MoveSize , , , 567 * 15
Gruß
Josef