Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Erster Wert in Listenfeld in Formular anzeigen

Begonnen von DaveWilli, Januar 27, 2022, 08:06:00

⏪ vorheriges - nächstes ⏩

DaveWilli

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.
  •  

DaveWilli

Tatsächlich hat sichs jetzt doch erledigt. Bitte Thema löschen.
  •  

DF6GL

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.)