PDA

Vollständige Version anzeigen : Recordset - GehezuDatensatz Nr. X - aber wie?


OlliU
11.05.2001, 07:23
Hallo, Accessler!

Ich habe folgendes Problem, das ich mit der Methode Docmd.gotorecord nicht lösen kann:

Wie kann ich bei einem gegebenen Recordset zu einem bestimmten Datensatz springen (z.B. zu Datensatz Nummer 23?) Mit der Kombination Movefirst und Movenext sieht das nicht sauber aus, und mit .absolutePosition bin ich nicht klar gekommen.
Wer weis die Lösung (Danke schon mal!)

OlliU

MarkusR
11.05.2001, 09:54
Ich gehe davon aus, dass du dich in einem Formular befindest:

me.recordsetclone.findfirst "nummer=23"
if not me.recordsetclone.nomatch then
me.bookmark=me.recordsetclone.bookmark
end if

Häufig ist so eine Suche an eine Combo oder
Liste gekoppelt (ich nenne sie hier mal cbo_nav), dann sähe das ganze wie folgt aus:

sub cbo_nav_AfterUpdate()
me.recordsetclone.findfirst "nummer=" & cstr(cbo_nav.value)
if not me.recordsetclone.nomatch then
me.bookmark=me.recordsetclone.bookmark
end if
end sub

OlliU
11.05.2001, 10:17
Hi, Markus!
Nein, ich bin nicht in einem Formular (zumindest werden die Datensaetze da zur Laufzeit noch nicht angezeigt).

Mein Code lautet in etwa wie folgt.

Dim DB as Database
Dim R as Recordset
Dim strSQL as string 'SQL-Statement

strSQL = "Select * from tblIrgendwas;"

Set DB = CurrentDB
Set R = DB.openrecordset(strSQL)

'##########################################
'So und hier ist mein Problem: Wie kann ich jetzt z.B. zum 23. (oder 725.) Datensatz springen und diesen Datensatz in VBA auslesen?
'##########################################


'Die weitere Bearbeitung geht dann in etwa wie folgt...
R.Edit
With R
R![Feld1] = ...
R![Feld2] = ...
End With
R.update

Wer weiss die Loesung???

Viele Gruesse

Olli U

Sascha Trowitzsch
11.05.2001, 10:43
Set R = DB.openrecordset(strSQL, dbOpenDynaset)

'##########################################
R.AbsolutePosition = 23-1 '...oder gleich = 22
'##########################################

Was funktioniert bei dir mit AbsolutePosition nicht?

Ciao, Sascha

Ah, noch was:

With R
.Feld1=
.Feld2=
End With

OlliU
11.05.2001, 11:03
Hi Sascha!

Ich werd das nachher mal probieren -
ich glaube, ich habe folgenden Fehler gemacht:
"Set R.absolutePosition = ..."
Mal sehen, was die Angabe ohne Set bringt.


Aber zu dem

With R
![Feld1] =
![Feld2] =
End with

Ich dachte bisher, die "!" wären hier richtig, da die "." Accessmethoden ankündigen - oder wo liegt hier der Fehler?

Gruss OlliU