Unterformular in Access

Hallo zusammen

Ich habe in einem Formular (Access 97) ein Unterformular. Beim Open-Event dieses Unterformulars setze ich die Recordssource-Eigenschaft.

Nachdem die Forms nun offen sind und gearbeitet wird, möchte ich zur Laufzeit die Recordsource-Eigenschaft dieses Unterformulars erneut ändern.

Kennt jemand einen Trick, wie das zu bewerkstelligen ist?

Gruss
Martin Bucher, Zürich

Wo ist das Problem? Du kannst die Recordsource jederzeit ändern! Danach solltest Du ggf. ein Requery auf das Unterformular machen.

Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Lieber Reinhard

Vielen Dank für Deine Antwort.

Also ich habe ein ungebundenes Formular mit einem Unterformular drauf.

Das Unterform initialisieren ich im Open-Event des Subforms mit „me.recordsource =select * …“

Wenn ich das Hauptform nun öffne, sehe ich schön alle Daten.

Über eine ComboBox kann nun eine Veränderung der Datenansicht gewählt werden. Ich habe dann mit „Forms![HauptForm]![SubForm].Recordsource=ne uer SQL-String“, versucht dies zu erreichen. Leider ohne Erfolg.

Es scheint so, als sei „Recordsource“ im Subform gar nicht bekannt.

TIA & Gruss
Martin Bucher, Zürich

Ich habe dann mit
„Forms![HauptForm]![SubForm].Recordsourc e=ne
uer SQL-String“, versucht dies zu
erreichen. Leider ohne Erfolg.

Die Syntax ist:
Forms!HauptForm!UnterformularSteuerelement.F orm.Recordsource = SQL

bzw. besser, vom Hauptformular aus:

Me!UnterformularSteuerelement.Form.Recordsou rce = SQL

oder vom Unterformular aus:

Me.Recordsource = SQL

allerdings werden bestimmte Ereignisse des Unterformulars gar nicht oder in merkwürdiger Reihenfolge ausgeführt.

„UnterformularSteuerelement“ ist der Name des Unterformular-Steuerelements im Hauptformular, der ja nicht notwendigerweise mit dem Namen des Unterformulars identisch ist - aber es sein sollte…

Reinhard

Lieber Reinhard

Vielen Dank für Deine Antwort. Es hat jetzt geklappt mit dem Unterform.

Habe vergessen nach dem SubForm-Name nochmals „Form“ anzugeben:

me!subformname!form!recordsource = csql

So funktionierts. Vielen Dank.

Gruss
Martin Bucher, Zürich

Es sollte heißen:

Me!subformname.form.recordsource = csql

die andere Syntax wird zwar (leider) auch verstanden, ist aber falsch, d.h. kann in gewissen Konstellationen - oder in späteren Versionen - Probleme bereiten.

Als Merkregel:
vor benutzerdefinierten Namen ein „!“
vor Methoden oder Eigenschaften ein „.“

Reinhard

Lieber Reinhard

Als Merkregel:
vor benutzerdefinierten Namen ein „!“
vor Methoden oder Eigenschaften ein „.“

Vielen Dank, schon wieder was gelernt. Werde mir diese Regel gross aufschreiben und an den Monitor hängen :smile:

Gruss
Martin Bucher, Zürich