Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: T417 am Mai 27, 2010, 14:07:58

Titel: Datensatzposition übergeben
Beitrag von: T417 am Mai 27, 2010, 14:07:58
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.
Titel: Re: Datensatzposition übergeben
Beitrag von: DF6GL am Mai 27, 2010, 14:14:44
Hallo,

probier mal:

PosVar=Me.Recordset.Absoluteposition

Besser wär, auf den Datensatz mittels der Findfirst-Methode zu positionieren.
Titel: Re: Datensatzposition übergeben
Beitrag von: T417 am Mai 27, 2010, 14:27:35
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?
Titel: Re: Datensatzposition übergeben
Beitrag von: DF6GL am Mai 27, 2010, 14:38:56
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)
Titel: Re: Datensatzposition übergeben
Beitrag von: T417 am Mai 27, 2010, 15:07:20

  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.
Titel: Re: Datensatzposition übergeben
Beitrag von: database am Mai 27, 2010, 17:01:37
Hallo,

PosVar = Me!Unterform2.Recordset.AbsolutePosition

oder

PosVar = Me!Unterform2.Form.Recordset.AbsolutePosition

??

Greets Peter
Titel: Re: Datensatzposition übergeben
Beitrag von: T417 am Mai 27, 2010, 17:35:53
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.