Ich habe 2 Unterformulare (in einen Hauptformular) die allesamt ihre Daten aus einer Tabelle beziehen.
Wenn ich jetzt zB den Datensatz 14 im ersten Unterform auswähle, soll im zweiten Unterform ebenfalls der Datensatz 14 ausgewählt sein.
PosVar=Me.CurrentRecord
DoCmd.GoToRecord , , acGoTo, PosVar
Bei meinen momentanen Code gibt es nur das Problem, das ich damit nicht die aktuelle Position des Datensatz herausfinde.
Wenn ich die Position genauer Definiere [zB Forms!Hauptformular!Unterform1.CurrentRecord] bekomme ich ebenfalls Fehler.
Wenn ich die Variabel direkt mit zB 14 fülle, funktionert alles bestens.
Hallo,
probier mal:
PosVar=Me.Recordset.Absoluteposition
Besser wär, auf den Datensatz mittels der Findfirst-Methode zu positionieren.
Da bekomme ich Laufzeitfehler '91':
Objektvariabel oder With-Blockvariabel nicht festgelegt
Wie soll denn FindFirst klappen, aus der VBA-Hilfe bin ich da auch nicht schlau geworden?
Hallo,
www.donkarl.com/?FAQ4.5
Anhand Deines Codefragmentes sehe ich nicht, was Du genau machst. Es fehlt mindestens noch das Setzen des Focus auf das UFO-Steuerelement und das darin befindliche Form.
Jedenfalls liefert
Me.Recordset.Absoluteposition
die Position des akt. Datensatzes im Formular-Recordset. (0= 1. Datensatz)
Unterform2.Visible = True
Me!Unterform2.SetFocus
PosVar = Me.Recordset.AbsolutePosition
DoCmd.GoToRecord , , acGoTo, PosVar
Unterform1.Visible = False
Also spannend ist der Code nicht. Aber vieleicht hilft der dir trotzdem weiter.
Immer wenn ich ein Unterform sichtbar mache, schalte ich das andere auf unsichtbar.
Der Compiler geht immer nur bis zu PosVar.
Hallo,
PosVar = Me!Unterform2.Recordset.AbsolutePosition
oder
PosVar = Me!Unterform2.Form.Recordset.AbsolutePosition
??
Greets Peter
Woohuu. :D
Die Lösung lag in:
PosVar = Me!Unterform2.Form.Recordset.AbsolutePosition
Der gibt mir die exakte Position (minus 1 Ziffer für jeden Aufruf).
Also muss ich noch eine +1 an die Variabel ranhängen und das wars. ;)
Danke.