Januar 26, 2021, 12:44:33

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datensatzposition übergeben

Begonnen von T417, Mai 27, 2010, 14:07:58

⏪ vorheriges - nächstes ⏩

T417

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.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

probier mal:

PosVar=Me.Recordset.Absoluteposition

Besser wär, auf den Datensatz mittels der Findfirst-Methode zu positionieren.

T417

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?
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

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)

T417


  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.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

database

Hallo,

PosVar = Me!Unterform2.Recordset.AbsolutePosition

oder

PosVar = Me!Unterform2.Form.Recordset.AbsolutePosition

??

Greets Peter

T417

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.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7