PDA

Vollständige Version anzeigen : Unterformular


<Axel>
06.10.2002, 00:34
Hallo Accessprofis!!
Ich habe da ein Endlosformular als Unterformular.
Wie kann ich ein sogenanntes 'BOOKMARK' setzten damit nach der Aktualisierung der vohergehende Datensatz markiert ist, und wie kann ich nach Art 'GOTORECORD'zu einem bestimmten Datensatz springen? Wäre toll wenn Ihr mir einen Tipp geben könntet. Vielen Dank im Voraus!!

Gustav Kurz
06.10.2002, 09:54
<font size="2" face="verdana">Hallo Axel,

angenommen in der Datenquelle Deines UF's existiert ein eindeutiges Feld "ID" mit dem Datentyp Zahl dann könnte dein Code in etwa so aussehen:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>
<span class="REM">'//Die Syntax ist auf eine Ausführung im Unterformular angepasst!</span>
<span class="REM">'//Einlesen des Feldinhaltes des Felds "ID" des aktiven DS im UF.</span>
<span class="TOKEN">Dim</span> lngID as <span class="TOKEN">Long</span>
lngID = Me!ID

<span class="REM">'//Die Datenquelle des UF's wird neu eingelesen - dabei</span>
<span class="REM">'//wird der 1.Datensatz des Unterformulars zum aktuellen Datensatz</span>
<span class="REM">'//der vorher aktive DS wird verloren.</span>
Me.Requery

<span class="REM">'//suchen im UF nach der zuvor eigelesenen ID</span>
Me.RecordsetClone.FindFirst "ID=" & lngID
<span class="REM">'//Synchronisieren des "Clones" mit dem Unterformular</span>
Me.Bookmark = Me.RecordsetClone.Bookmark</pre></div>

<Axel>
06.10.2002, 10:37
Danke Gustav für Deinen Tip!
Nur ist es doch so, daß mir im geöffneten Unterformular keine Ereigniprozedure zur Verfügung steht außer beim Öffnen oder Schliessen.

Unter welche Procedure soll ich Deine Befehle setzten?

Gustav Kurz
06.10.2002, 10:42
<font size="2" face="verdana">Hallo,
welche Prozedur löst den Deine Aktualisierung aus?

Aktualisieren Daten = Me.Requery

Gustav

<Axel>
06.10.2002, 12:08
Das ist das Problem nicht me!requery sondern aus einer Procedure eies anderen Formulars.

WalterS
06.10.2002, 12:22
Hi!
Dann darfst du nicht mit me referenzieren sondern über
forms!DeinFormular!DeinUnterFormular.Form


Dim lngID as Long
with forms!DeinFormular!DeinUnterFormular.Form
lngID = !ID
.Requery
.RecordsetClone.FindFirst "ID=" & lngID
.Bookmark = .RecordsetClone.Bookmark
end with