[Access97] Frage zu RecordsetClone

Hallo zusammen

Habe folgendes Problem mit Access 97:

Ein Endlosformular ist an eine Abfrage gebunden, welche sich zur Laufzeit ändern kann.

Doppelklicke ich nun einen Eintrag, dann wird das Endlosformular minimiert und ein Detailfenster (ungebunden) wird mit den jeweiligen Informationen angezeigt.

Im Detailfenster kann ich nun Änderungen vornehmen, die evt. die Reihenfolge im Endlosformular beeinflussen.

Wenn ich also Änderungen gemacht habe, dann führe ich folgenden Code aus, um das Endlosform wieder richtig zu positionieren:


Endlosform.Requery
rsFormRS =EndlosForm.RecordsetClone
rsFormRS.FindFirst „[ID] =“ & nID
EndlosForm.Bookmark =rsFormRS.Bookmark

Lustig ist nun, dass dies beim ersten mal, wenn ich das Endlosform aufgerufen habe funktioniert. Wenn ich dann (bei offenem Endlosform) einen zweiten Satz auswähle und wie gezeigt zurückkomme, dann kommt die Meldung „Objekt nicht mehr aktiv“ 3420.

Kann mir jemand von Euch helfen?

TIA & Gruss
Martin Bucher, Zürich

Hallo zusammen

Habe folgendes Problem mit Access 97:

Ein Endlosformular ist an eine Abfrage
gebunden, welche sich zur Laufzeit ändern
kann.

Doppelklicke ich nun einen Eintrag, dann
wird das Endlosformular minimiert und ein
Detailfenster (ungebunden) wird mit den
jeweiligen Informationen angezeigt.

Im Detailfenster kann ich nun Änderungen
vornehmen, die evt. die Reihenfolge im
Endlosformular beeinflussen.

Wenn ich also Änderungen gemacht habe,
dann führe ich folgenden Code aus, um das
Endlosform wieder richtig zu
positionieren:


Endlosform.Requery
rsFormRS =EndlosForm.RecordsetClone
rsFormRS.FindFirst „[ID] =“ & nID
EndlosForm.Bookmark =rsFormRS.Bookmark

Lustig ist nun, dass dies beim ersten
mal, wenn ich das Endlosform aufgerufen
habe funktioniert. Wenn ich dann (bei
offenem Endlosform) einen zweiten Satz
auswähle und wie gezeigt zurückkomme,
dann kommt die Meldung „Objekt nicht mehr
aktiv“ 3420.

Wo wird denn Endlosform definiert bzw. gesetzt? Wenn das zugehörige Objekt zwischenzeitlich untergegangen ist, ist natürlich auch der Verweis nicht mehr gültig. Besser ist es, sich mit der vollständigen Syntax (also z.B. Forms!MeinFormular!MeinUnterformular.Form oder im Hauptformular mit Me!MeinUnterformular.Form) auf das Unterformular zu beziehen.

Reinhard

Hallo Reinhard

Wo wird denn Endlosform definiert bzw.
gesetzt? Wenn das zugehörige Objekt

Das Endlosform wird am Anfang geöffnet und wird ab und zu nur verkleinert - bleibt ansonsten immer offen.

Das Detailform wird darüber geöffnet und dann auch wieder geschlossen.

Forms!MeinFormular!MeinUnterformular.Form
oder im Hauptformular mit

Ich gebe eigentlich immer die ganze Syntax an.

Gruss
Martin Bucher, Zürich

Forms!MeinFormular!MeinUnterformular.Form
oder im Hauptformular mit

Ich gebe eigentlich immer die ganze
Syntax an.

In deinem Beispielcode aber nicht! Poste dann doch mal den Originalcode, dann kann man mehr sagen…

Was meinst du denn mit „die Abfrage kann sich zur Laufzeit ändern“. Änderst du die Recordsource des Formulars oder die SQL der Abfrage?

Wie auch immer: Auch das kann dazu führen, das der Recordsetclone bzw. die Bookmarks nicht mehr gültig sind - was allerdings bei einer erneuten Zuweisung des Recordsetclones keine Rolle mehr spielen sollte.

Es muss dann aber auch heissen:

Dim rsFormRS as Recordset
Endlosform.Requery
Set rsFormRS =EndlosForm.RecordsetClone
'...

Das ganze steht und fällt mit der exakten Schreibweise - und dem Ort der Variablendeklaration. An deinem Beispielcode kann ich beides nicht erkennen. Also wie gesagt: Ich bräuchte den Originalcode, um mehr sagen zu können.

Reinhard