RS auf letzten Datensatz stellen

11/11/2008 - 08:21 von Beck, Alwin | Report spam
Hallo,

ich habe irgendwo ein Denkfehler : Ich möchte leere Datensàtzle in die
Tabelle "Inventurdatei" schreiben.
Die neuen Datensàtze sollen jedoch ans Ende und nicht zu Beginn
eingefügt werden. Habe daher .MoveLast
verwendet. Jedoch werden die Datensàtze immer am Anfang eingefügt. Was
stimmt hier nicht ?


Private Sub BS_Blankobelege_einfügen_Click()
'Leere Datensàtze sollen in die Datenbank Inventurdatei eingefügt
werden
'In das Feld ARTN wird ein Zeichen B geschrieben
Dim Belege
Dim DBS As DAO.Database
Dim rs As DAO.Recordset
Dim i

Belege = Val(InputBox("Anzahl der Blankobelege eingeben"))
For i = 1 To Belege
Set DBS = Application.CurrentDb
Set rs = DBS.OpenRecordset("Inventurdatei", dbOpenDynaset)

With rs
.MoveLast --> hier liegt das Problem - letzter
Datensatz wird nicht "angesteuert"
.AddNew
.Fields("ARTN") = "B"
.Update
.Close

End With

Set rs = Nothing
Set DBS = Nothing
Next i

End Sub


Danke
Gruß
Albe
 

Lesen sie die antworten

#1 Henry Habermacher
11/11/2008 - 08:28 | Warnen spam
Hallo Beck

Beck, Alwin wrote:
ich habe irgendwo ein Denkfehler : Ich möchte leere Datensàtzle in die
Tabelle "Inventurdatei" schreiben.
Die neuen Datensàtze sollen jedoch ans Ende und nicht zu Beginn
eingefügt werden. Habe daher .MoveLast
verwendet. Jedoch werden die Datensàtze immer am Anfang eingefügt. Was
stimmt hier nicht ?



Dein Ansatz stimmt nicht. AddNew fügt einen neuen Datensatz hinzu, das ist
richtig. Hat aber mit der Reihenfolge überhaupt nichts zu tun. Die wird
bestimmt über den Index, über den die Daten ausgelesen werden. Wenn Du der
Tabelle z.B. eine Autowert Zeile spendierst und den Primàrschlüssel darüber
laufen làsst, dann ist die Chance ziemlich gross, dass dieser Datensatz
anschliessend am Ende der Darstellung erscheint, es sei denn, Du sortierst
explizit nach einem anderen Feld.

Gruss Henry


Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen