PDA

Vollständige Version anzeigen : Subformular unsichtbar setzen


guenther_p
06.05.2011, 21:02
Hallo Gemeinde

Beschäftige mich mal wieder mit variabel einsetzbaren Formularen.

Mittlerweile habe ich mich davon überzeugen lassen, dass Controls nicht zur Laufzeit angelegt werden sollen. Stattdessen greife ich nun auf vorrätige unsichtbarer Controls (.visible = false) zurück. Für die Datenblattansicht muss ich zusätzlich ColumnHidden = True setzen.Das funktioniert auch so weit für Subforms.

Aber... nun möchte ich in der Subform eine weitere Subform vorrätig haben.

Da stehe ich nun vor dem Problem, dass ich diese Subform in der Datenblattansicht nicht mehr verstecken kann. Es bleibt mir immer das + für die Erweiterung des Bereiches stehen.

Bitte um Eure Unterstützung

Günther

SaschaBHH
06.05.2011, 21:29
Hallo Günther.

Vielleicht erübrigt sich Dein Problem mit anderer Angehensweise. Verzichte auf das Unsichtbar/Sichbar machen des Subforms. Statt dessen könntest das das Subform erst Laden, wenn Du es benötigst. Hierfür ist die Herkunfstobjekt-Eigenschaft des UF-Controls einzustellen. Bedenke: Alle UF werden vor dem HF geladen, Du würdest also auch die Ladezeiten des HF beschleunigen. Nur Anregung, nicht unmittelbare Lösung Deines Problems.

ebs17
06.05.2011, 22:01
Es bleibt mir immer das + für die Erweiterung des Bereiches stehen.
Du verwendest die Subdatasheet-Eigenschaft? Üblicherweise ist diese Performancebremse deaktiviert und spielt dann auch keine Rolle mehr.

guenther_p
06.05.2011, 22:07
Danke Sascha für den Hinweis, das + kann ich somit vermeiden.

Mittlerweile bin ich auf den Punkt gestossen, dass ich nicht zwischen "echten-ausgeblendeten" Columns und "vorrätigen-ausgeblendeten" Columns unterscheiden kann.

Beide sind über Rechte-Maustaste/Spalten einblenden verfügbar.

Das Feature brauche ich auch, aber eben nur für die "verwendeten" Spalten.

Gruß
Günther

Lanz Rudolf
08.05.2011, 09:01
Hallo
hilft evtl das.
http://cid-0838611f737bd3d9.office.live.com/self.aspx/ACC/ACCESS%202000BU%20Begleitunterlagen.pdf
öffne die PDF-Datei
und liese auf Seite 118 (6.17 UnterFormulare Ausblenden / Wechseln)

guenther_p
08.05.2011, 17:15
Du verwendest die Subdatasheet-Eigenschaft? Üblicherweise ist diese Performancebremse deaktiviert und spielt dann auch keine Rolle mehr.

wo wäre diese Eigenschaft zu aktivieren/deaktivieren? Tabellen oder Abfragen können da noch nicht im Spiel sein, da das Formular noch ungebunden ist.

Gruß
Günther

ebs17
08.05.2011, 17:35
Siehe S. 13, Performance in Abfragen (http://www.donkarl.com/AEK/AEKDownloads/AEK8_Abfragen_Performance.zip). Diese Eigenschaft wird dann an Formulare (Datenblattansicht) weitergereicht.
da das Formular noch ungebunden ist
"ungebunden" wird recht oft gelassen, aber unberechtigt ausgesprochen
-> keine Datenherkunft des Formulars (auch zur Laufzeit, nicht nur bei DB-Start)?
-> keine ControlSource der Felder, die auf eine Datenherkunft des Formulars aufbaut?

guenther_p
08.05.2011, 18:23
in diesem Fall ist ungebunden zurecht verwendet:

-> keine Datenherkunft des Formulars (auch zur Laufzeit)
-> keine ControlSource der Felder, die auf eine Datenherkunft des Formulars aufbaut

Gruß
Günther

ebs17
08.05.2011, 18:39
Gegenfrage: Wie kann man in einem ungebundenen Accessformular Spalten ausblenden? Spalte steht für Feld, und Feld steht für eine Bindung an eine Tabelle.
In einem ungebundenen Formular könnte man einzelne Controls ausblenden.

guenther_p
08.05.2011, 19:33
Hallo Eberhard

hast natürlich recht, korrekterweise muss ich von Controls sprechen.

Gruß
Günther

Josef P.
08.05.2011, 19:55
Hallo!

Ich verstehe zwar deine Problemstellung bzw. den Sinn dahinter nicht, aber wenn du unbedingt Formulare dynamsich generieren willst, könntest du statt Access-Formularen auch Form2.0-Formulare verwenden. In diesen Formularen kannst du die Controls zur Laufzeit erstellen.

Möglicherweise ist aber auch Access das falsche Werkzeug für dein Vorhaben und du wärst mit MS.net, Java & Co. besser bedient.


BTW:
Was bringt eine Darstellung in Datenblattansicht bei einem ungebundenen Formular? Bei ungebundenene Formularen können doch niemals mehrere DS angezeigt werden - wozu ist dann die Datenblattansicht gut?

mfg
Josef

guenther_p
08.05.2011, 20:02
Bin gerade am "Erforschen" der Möglichkeiten, daher sind die Formular, Controls noch nicht gebunden. Datenherkunft und Steuerelementinhalt möchte ich ja dann zur Laufzeit einstellen.

Ich gehe aber davon aus dass sich Eigenschafen wie Visible und Columnhidden trotzdem identisch verhalten.

Gruß
Günther

ebs17
08.05.2011, 20:20
Ggf. hilft ja auch Einfachheit. Wenn man nur Datensätze anzeigen und zur Auswahl anbieten will, könnte man ein Listenfeld verwenden. Dort ließe sich die Datenherkunft sehr einfach austauschen, man käme mit immer dem gleichen Element aus, und Spaltenbreiten nach Wunsch zu ändern sollte kein allzu großes Problem sein.