Hallo zusammen,
ich habe folgendes wahrscheinlich kleines Problem.
Mein Recordset das ich aus einer Tabelle erzeuge, schreibt beim schliessen den Datensatz der als nächstes in der Liste dran wäre zurück an die erste Stelle der DB.
Das ist eher suboptimal.
Anbei mein Code...
Option Compare Database
Option Explicit
Dim db As DAO.Database
Dim rs As DAO.Recordset
Private Sub cmbclose_Click()
DoCmd.Close
DoCmd.OpenForm ("frmportal")
End Sub
Private Sub cmblast_Click()
If Not rs.EOF Then
rs.MoveLast
refreshData
End If
Me.txtdeutsch = ""
End Sub
Private Sub cmbpruefen_Click()
If IsNull(Me.txtdeutsch) Then
MsgBox "keine Eingabe"
Me.txtdeutsch.SetFocus
ElseIf Me.txtdeutsch.Value = Me.txtloesung.Value Then
MsgBox "Super ... zum nächsten"
Me.txtloesung.Visible = True
Else
If MsgBox("Leider falsch ... nochmal ?", vbYesNo + vbQuestion) = vbYes Then
Me.txtdeutsch = ""
Me.txtdeutsch.SetFocus
Else
MsgBox "OK, dnn zum nächsten"
Me.txtdeutsch = ""
Me.txtdeutsch.SetFocus
End If
End If
End Sub
Private Sub cmbvor_Click()
If Not rs.EOF Then
rs.MoveNext
refreshData
End If
Me.txtdeutsch = ""
Me.txtloesung.Visible = False
End Sub
Private Sub cmbzuruck_Click()
If Not rs.BOF Then
rs.MovePrevious
refreshData
End If
Me.txtdeutsch = ""
End Sub
Private Sub cmdbegin_Click()
If Not rs.BOF Then
rs.MoveFirst
refreshData
End If
Me.txtdeutsch = ""
End Sub
Private Sub Form_Load()
Set db = CurrentDb
Set rs = db.OpenRecordset("tabvok", dbOpenSnapshot)
rs.MoveFirst
refreshData
End Sub
Private Sub refreshData()
If Not rs.BOF And Not rs.EOF Then
Me.txtloesung = rs!deutsch
Me.txtspanisch = rs!spanisch
End If
End Sub
Igendjemand eine Idee waran es liegen könnte ... ?
Zitat von: Uwe_Noob am März 26, 2020, 12:05:13
Mein Recordset das ich aus einer Tabelle erzeuge, schreibt beim schliessen den Datensatz der als nächstes in der Liste dran wäre zurück an die erste Stelle der DB.
Das ist Problem ist unklar für mich.
Ich erkenne aus deinem Code nicht, dass das Recordset überhaupt aktualisiert (beschrieben) wird.
Was aber viel relevanter ist: Eine Tabelle und ebenso ein Recordset ist eine unsortierte Menge. Wenn du in einer Abfrage keine Sortierung vorgibst, kannst du dich nicht darüber beschweren, dass die Daten anders sortiert sind, als du erwartest.
Lektüre dazu: Der Mythos der sortierten Ergebnismenge (https://codekabinett.com/rdumps.php?Lang=1&targetDoc=dfirst-dlast-sortierte-ergebnismenge)
Hallo Phil, dank für die Antwort.
Ich versuche es mal anders.
Die Daten die bekommen möchte bekomme ich auch.
Ich kann diese vergleichen, vor zurück Anfang ende alles schick.
Vergleiche ich sagen wir mal 5 Werte, schliesse dann das Formular wird der 6 Wert aus der Liste, an die erste Stelle der Tabelle geschrieben. Alles andere funktioniert tadellos.
Gruß
Uwe
Hallo,
erklär nochmal, was Du da überhaupt machen willst.
Lt. Code bewegst Du Dich durch einen Recordset mit "Deutsch" und "Spanisch" als Felder, die bei jeder Bewegung durch das Recordset in Form-Textfelder des aktuell im Form angezeigten DS geschrieben werden. Wenn das Form gebunden ist, werden die Inhalte der Form-Textfelder auch in die Tabelle gespeichert(, sobald man den aktuellen DS des Form ändert. Schließen des Forms ist auch eine "Änderung".)
Willst Du das so ? Oder sollte das Form ungebunden sein und nichts in eine Tabelle gespeichert werden?
Zitat von: Uwe_Noob am März 26, 2020, 12:47:22
Vergleiche ich sagen wir mal 5 Werte, schliesse dann das Formular wird der 6 Wert aus der Liste, an die erste Stelle der Tabelle geschrieben. Alles andere funktioniert tadellos.
Wie und wann der 6. Wert in die Tabelle kommt, bleibt bei der bisherigen Beschreibung weiterhin unklar. - Allerdings ist das auch nicht relevant.
Es gibt keine "erste Stelle" in einer Tabelle. Die Daten in einer Tabelle bilden, wenn man interne Implementierungsdetails außen vor lässt, eine
unsortierte Menge. Wenn du die Daten in einer bestimmten Reihenfolge sehen oder bearbeiten willst, dann musst du diese gewünschte Sortierung auch explizit angeben. Das macht man explizit durch eine ORDER BY Klausel in einer Abfrage.
Hallo DF6GL,
manchmal sieht man den Wald vor Bäumen nicht.
Form und Felder entkoppelt und schon läuft es ^^
@Phil
die sortierung werde ich mir auch noch anschauen.
Danke euch beiden
Gruß
Uwe