Hallo zusammen,
ich habe bereits viel gegoogelt und bin zu keinem Ergebnis zu meinem Problem gekommen.
Hier mein Problem:
Ich habe ein Listenfeld, basierend auf einer Tabelle, welches aber nicht wie die Tabelle sortiert ist, sondern nach dem Datum sortiert ist (also Listenfeld hat andere Reihenfolge als Tabelle).
Jetzt wird beim öffenen des Formulars aber immer der erste Wert der Tabelle angezeigt, und nicht der erste Wert des Listenfeldes.
Mein VBS-Code siet so aus:
Private Sub Form_Open(Cancel As Integer)
If Nz(lstKulturfolge.ListCount) > 0 Then
Me!lstKulturfolge = Me!lstKulturfolge.ItemData(0)
Call lstKulturfolge_AfterUpdate
End If
End Sub
Private Sub lstKulturfolge_AfterUpdate()
If Not IsNull(lstKulturfolge) Then Me.Recordset.FindFirst "par_kulID=" & Me!lstKulturfolge
End Sub
Was muss ich anders machen, damit ich zum Erfolg komme?
Vielen Dank schon einmal.
Tatsächlich hat sichs jetzt doch erledigt. Bitte Thema löschen.
Hallo,
sortiere gleich in einer Abfrage für das Formular (Datenherkunft) entsprechend der Abfrage für das Listenfeld:
Select * from tblTabelle Order by Datum
Dann braucht es nicht diesen überflüssigen Aufwand mit dem Listenfeld...
Zudem wäre Form_Open eh ein falsch benutztes Ereignis. Zu diesem Zeitpunkt sind noch keine Daten geladen (---> Form_Load) und der Code arbeitet im "Leeren".
Die Reihenfolge in einer Tabelle ist nicht "sortiert", sie richtet sich nach der Abfolge der Datensatz-Eingaben. Definiertes Sortieren ist nur in Abfragen oder über die Form-Eigenschaft "Sortieren Nach" ( VBA: Me.OrderBy) möglich. (Weitere Sortier-Möglichkeiten lasse ich hier außen vor.)