Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Access 2010 - Unterformular - Recordsource

571 views
Skip to first unread message

Ortwin Taube

unread,
Sep 20, 2011, 2:46:42 AM9/20/11
to
Nutze Access 2010 - toll
sehr schön - Menüband aber überflüssig - normale Menüs fehlen - das
ist sehr bedauerlich.

Habe in einem Register-Steuerelement ein Unterformular eingefügt (ohne
Verknüpfung zum Hauptformular). Beide Formulare haben den gleichen
Recordsource. Das eine Formular zeigt immer nur einen Datensatz (zum
Bearbeiten).
Das zweite Formular (UForm) zeigt die Datensätze in Datenblattansicht
(zum Suchen und Auswählen).

Das Unterformular soll die Datensätze via VBA zusätzlich selektieren
können (deutliche Reduzierung der Anzahl der Datensätze). Dazu habe
ich Befehlsschaltflächen untergebracht, die auch prima funktionieren,
so lange das UForm als Einzelformular geöffnet wird. Als Unterformular
wird zwar die Recordsource geändert aber das Ergebnis erscheint nicht
im Formular.

Me.Recordsource = SQL
me.Hauptformular.Unterformular.Form.Recordsource = SQL
mit anschließendem requery
funktioniert einfach nicht.

Ich vermute einen BUG in Access (oder im Kopf ?)

Bin gespannt auf Eure Meinung.

Henry Habermacher

unread,
Sep 20, 2011, 2:53:45 AM9/20/11
to
Hallo Ortwin

Ortwin Taube wrote:
> me.Hauptformular.Unterformular.Form.Recordsource = SQL

Du führst den Code im Hauptformular aus, oder? Dieses wird über Me. Bereits
referenziert. Den Namen des HFOs anschliessend noch anzugeben ist falsch.

Entweder:
Me!Unterformular.Form.Recordsource = SQL

oder dann:
Forms!Hauptformular.Unterformular.Form.Recordsource = SQL

HTH
Henry

Ortwin Taube

unread,
Sep 20, 2011, 3:51:53 AM9/20/11
to
On 20 Sep., 08:53, "Henry Habermacher" <DontSpamHe...@psp-online.com>
wrote:

> Hallo Ortwin
>
> Ortwin Taube wrote:
> > me.Hauptformular.Unterformular.Form.Recordsource = SQL
>
> Du f hrst den Code im Hauptformular aus, oder? Dieses wird ber Me. Bereits

> referenziert. Den Namen des HFOs anschliessend noch anzugeben ist falsch.
>
> Entweder:
> Me!Unterformular.Form.Recordsource = SQL
>
> oder dann:
> Forms!Hauptformular.Unterformular.Form.Recordsource = SQL
>
> HTH
> Henry


Hallo Henry,

Danke für Deine Antwort.
Du hast natürlich recht.
Das war aber leider nur ein Schreibfehler in meinem Beitrag. Sorry.

Ich habe beide Varianten ausprobiert:

1. Funktionsaufruf über Buttons im UForm selbst integriert.
(funktioniert, wenn das Formular als Einzelformular aufgerufen wird)
Me.Recordsource = sql....

2. Funktionsaufruf über das Hauptformular
Me.Unterformular.Form.Recordsource = sql....

Nach Funktionsaufruf wird die Recordsource geändert (msgbox
me.recordsource liefert korrekte Angaben)
Daten werden aber nicht korrekt dargestellt - trotz
me.unterformular.form.REQUERY

Nach dem ersten Aufrufen der Funktion passiert etwas:
Es wird nur noch ein Datensatz angezeigt (obwohl es mehrere sein
müssten).
Jeder weiterer Funktionsaufruf ändert offensichtich nichts mehr.

Gruß Ortwin

Ortwin Taube

unread,
Sep 20, 2011, 3:34:27 AM9/20/11
to
On 20 Sep., 08:53, "Henry Habermacher" <DontSpamHe...@psp-online.com>
wrote:
> Hallo Ortwin
>
> Ortwin Taube wrote:
> > me.Hauptformular.Unterformular.Form.Recordsource = SQL
>
> Du f hrst den Code im Hauptformular aus, oder? Dieses wird ber Me. Bereits
> referenziert. Den Namen des HFOs anschliessend noch anzugeben ist falsch.
>
> Entweder:
> Me!Unterformular.Form.Recordsource = SQL
>
> oder dann:
> Forms!Hauptformular.Unterformular.Form.Recordsource = SQL
>
> HTH
> Henry


Hallo Henry,

Du hast natürlich recht.
Habe ich aber leider nur in diesem Beitrag falsch geschrieben.

Habe beide Varianten ausprobiert:
1. über Buttons die schon im Unterformular integriert wurden
(funktioniert aber nur wenn das Unterformular alleine geöffnet wird)
Me.recordsource = sql

2. über Funktionsaufrufe des Hauptformulares
me.Unterformular.form.recordsource = sql

Wenn ich anschließend die aktuelle recordsource abrufe erscheint der
korrekte Eintrag.
Trotz REQUERY wird aber die Tabelle nicht korrekt dargestellt.
Bei ersten Aufrufen erscheint nur noch ein Datensatz (obwohl es
mehrere sein müssten)
Bei jedem weiteren Aufrufen ändert sich gar nichts mehr.

Gruß
Ortwin

Henry Habermacher

unread,
Sep 20, 2011, 6:12:05 AM9/20/11
to
Hallo Ortwin

Ortwin Taube wrote:

> Trotz REQUERY wird aber die Tabelle nicht korrekt dargestellt.
> Bei ersten Aufrufen erscheint nur noch ein Datensatz (obwohl es
> mehrere sein müssten)

Wo machst denn Du den Requery? Im HFO? Da das UFO nicht gebunden ist, wird
das damit u.U. nicht automatisch ebenfalls neu eingelesen. Versuch mal

Me.Requery
Me.Unterformular.Form.Requery

Gruss
Henry

Ortwin Taube

unread,
Sep 21, 2011, 5:10:28 AM9/21/11
to
On 20 Sep., 12:12, "Henry Habermacher" <DontSpamHe...@psp-online.com>
wrote:
Hallo Henry,

beide Varianten habe ich schon ausprobiert.
Was mich stutzig macht:
Bei ersten Aufrufen der Funktion erfolgt ja durchaus eine Reaktion:
Es wird nur noch 1 Datensatz angezeigt (obwohl es mehrere sein
müssten)
Bei jedem weiteren Auruf ändert sich dann aber nichts mehr - der eine
Datensatz wird dann weiterhin angezeigt.

Vielleicht ist es noch von Bedeutung, dass das UFO im Hauptformular in
einem Register-Steuerelement plaziert ist?
Kann ich mir aber nicht wirklich vorstellen.


Gruß
Ortwin



Karl Donaubauer

unread,
Sep 21, 2011, 4:54:11 PM9/21/11
to
Ortwin Taube wrote:
> ...
> Ich habe beide Varianten ausprobiert:
>
> 1. Funktionsaufruf über Buttons im UForm selbst integriert.
> (funktioniert, wenn das Formular als Einzelformular aufgerufen wird)
> Me.Recordsource = sql....
>
> 2. Funktionsaufruf über das Hauptformular
> Me.Unterformular.Form.Recordsource = sql....
>
> Nach Funktionsaufruf wird die Recordsource geändert (msgbox
> me.recordsource liefert korrekte Angaben)
> Daten werden aber nicht korrekt dargestellt - trotz
> me.unterformular.form.REQUERY
>
> Nach dem ersten Aufrufen der Funktion passiert etwas:
> Es wird nur noch ein Datensatz angezeigt (obwohl es mehrere sein
> müssten).
> Jeder weiterer Funktionsaufruf ändert offensichtich nichts mehr.

Bist du ganz sicher, dass das UFo nicht mit dem HFo verknüpft ist?
Überprüfe das auch nochmal nach dem Ändern der Recordsource,
z.B. mit:

debug.print Me.Unterformular.LinkMasterFields, _
Me.Unterformular.LinkChildFields

oder dergl.

Wenn du nicht weiterkommst, dann kopiere hier deinen echten,
relevanten Code rein.

--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com + Info zur AEK14
Access-Entwickler-Konferenz, Nürnberg+Hannover im Oktober


Ortwin Taube

unread,
Sep 22, 2011, 3:51:53 AM9/22/11
to
> Access-FAQ:http://www.donkarl.com+ Info zur AEK14
> Access-Entwickler-Konferenz, Nürnberg+Hannover im Oktober



Hallo Karl,

Danke für Deinen Tipp.
Unglaublich! Obwohl im Eigenschaftsfenster definitiv gelöscht und auch
nicht angezeigt, war die ID in den Linkfeldern hinterlegt.
Nachdem ich diese Werte gelöscht hatte wurde die Selektion sauber
durchgeführt und auch korrekt angezeigt.

Vielen Dank für Deine Hilfe - darauf wäre ich nie gekommen.

Gruß
Ortwin

Karl Donaubauer

unread,
Sep 22, 2011, 5:12:47 AM9/22/11
to
Ortwin Taube wrote:
> ...
> Unglaublich! Obwohl im Eigenschaftsfenster definitiv gelöscht und auch
> nicht angezeigt, war die ID in den Linkfeldern hinterlegt.
> ...

Access setzt diese Eigenschaften gerne von selber, wenn es "logische"
Verknüpfungsfelder findet, die im HFo und UFo gleich heißen.
Das passiert z.B. wenn man das Herkunftsobjekt des UFos ändert.

Muss mal testen, ob sie diese Intelligenzleistung in A10 vielleicht
ausgeweitet haben.

--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com + Info zur AEK14
Access-Entwickler-Konferenz, Nürnberg+Hannover im Oktober


Henry Habermacher

unread,
Sep 22, 2011, 5:29:34 AM9/22/11
to
Karl Donaubauer wrote:
> Muss mal testen, ob sie diese Intelligenzleistung in A10 vielleicht
> ausgeweitet haben.

ROTFL

Henry
0 new messages