DoCmd.GoToRecord springt zu neuem DS

15/12/2009 - 15:26 von Michael Alexander | Report spam
Hallo NG!

Ich habe ein Problem mit dem vor-Springen bei Datensàtzen.

Konkret geht es darum dass ich mit

Private Sub SchNàchster_Click()
Dim intNàchster

On Error Resume Next
intNàchster = DSNummerermitteln(Me) + 1
DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, intNàchster

alternativ auch DoCmd.GoToRecord , , acNext versucht!

End Sub


IMMER einen neuen DS anlege, was nicht gewollt ist!
Wobei es egal ist, ob ich am letzten DS oder irgendwo dazwischen (aber nicht
auf dem 1. DS!) stehe, es wird ein neuer angelegt.

Function DSNummerermitteln sieht so aus:

Function DSNummerermitteln(frm As Form) As Long
On Error Resume Next
Dim rst As Recordset
Dim lngNumRecords As Long
Dim lngCurrentRecord As Long
Dim strTmp As String

Set rst = frm.RecordsetClone
rst.MoveLast
rst.Bookmark = frm.Bookmark
lngNumRecords = rst.RecordCount
lngCurrentRecord = rst.AbsolutePosition + 1

DSNummer_Exit:
On Error Resume Next
DSNummerermitteln = lngCurrentRecord
rst.Close
Set rst = Nothing
Exit Function

End Function


Ergànzend dazu ist zu sagen, dass das frm, in dem geblàttert wird, aus einem
anderen frm geöffnet wird und nur die DS mit gleichem Datum angezeigt werden
sollen
DoCmd.OpenForm "KaBewListe", , , "[Datum]= " & vglDatum(Me.Datum)
'vgldatum formatiert das Datum SQL-spezifisch
d.h. das zu öffnende frm zeigt gefilterte Daten.

Die Datenherkunft des zu öffenden frm "KaBewListe" sieht so aus:
SELECT KassaBewListe.* FROM KassaBewListe WHERE
(((KassaBewListe.Datum)=[formulare]![kassabuch]![Datum])) ORDER BY
KassaBewListe.KaBewID;

und grenzt eigentlich das Datum auch ein.

Standard sind zwei DS pro Datum. Sofern das so ist, kann ich einmal richtig
mit Private Sub SchNàchster_Click()
vor springen, beim zweiten mal wird ein neuer DS erstellt. Beim Öffnen des
frm steht der Fokus auf dem 1. DS des Datums.

Wenn ich zum Nàchsten springe wird sofort ein neuer DS angelegt.

Wie kann ich das Anlegen eines neuen DS mit diesen fnc unterbinden, bzw. wo
ist der Fehler?
0
Danke
Michael

Win XP Pro SP2, A2k SP 3
 

Lesen sie die antworten

#1 Bernd Gilles
15/12/2009 - 15:34 | Warnen spam
Michael Alexander schrieb:
On Error Resume Next
intNàchster = DSNummerermitteln(Me) + 1
DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, intNàchster

Wie kann ich das Anlegen eines neuen DS mit diesen fnc unterbinden, bzw. wo
ist der Fehler?



warum nimmst Du nicht 'acNext' statt 'acGoTo'?
Dann könntest Du Dir das ganze Gerechne sparen.

Gruß, Bernd

Access goes Subversion - http://oasis.dev2dev.de

Ähnliche fragen