collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 81
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14256
  • stats Beiträge insgesamt: 69728
  • stats Themen insgesamt: 9380
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Listenfeld ersten Wert anzeigen (Schieberegler von Bildlaufleiste immer oben)  (Gelesen 1799 mal)

Offline jagger

  • Access-User
  • *
  • Beiträge: 99
Hallo in die Runde,

beim Anzeigen eines Formulars lasse ich in einer Listbox
(mit einfacher Mehrfachauswahl) einen oder einige Wert(e) markieren.
Die Werte kommen aus einer Tabelle und sind die Werte der letzten Auswahl (vor dem Schließen des Formulars) in der Listbox.

Dim I As Long, RS As DAO.Recordset
  With Me!lbxKollektionen
           Set RS = CurrentDb.OpenRecordset("SELECT * FROM tab_intex_KM_Filter_code ", dbOpenSnapshot)
        For I = 0 To .ListCount - 1
          RS.FindFirst "code = " & Nz(.Column(0, I), -1)
           .Selected(I) = Not RS.NoMatch
        Next I
      RS.Close
   End With

Die Listbox zeigt 8 Zeilen an. Da es aber mehr als 8 Werte (Zeilen) gibt, hat die Listbox eine vertikale Bildlaufleiste.

Das Problem ist, dass die Listbox beim Öffnen des Formulars
immer zu letzten Wert springt, der Schieberegler ist also ganz "unten". Das geschieht unabhängig von den markierten Zeilen.

Wie kann ich erreichen, dass immer der ersten Wert oben
angezeigt wird, also der Schieberegler "oben" steht?

Mit Dank im Voraus
jagger
« Letzte Änderung: Januar 11, 2019, 00:36:39 von jagger »
 

Online ebs17

  • Access Guru
  • ****
  • Beiträge: 1065
Eine übersichtliche Maßnahme wäre, das Ganze einfach rückwärts laufen zu lassen, also bspw. im Recordset eine umgedrehte Sortierung zu verwenden.

Daneben könnte man den Code noch etwas optimieren, z.B. bei passender Sortierung einfach statt jeweils Anfang Liste und FindFirst gleich FindNext anwenden und direkt springen.
Sowie : Warum "SELECT *", wenn nur das Feld code verwendet wird?
Mit freundlichem Glück Auf!

Eberhard
 

Offline jagger

  • Access-User
  • *
  • Beiträge: 99
Hallo ebs17,

meinst Du mit rückwärts laufen zu lassen 
"For I = .ListCount - 1 To 0" ?
Wenn ich das mache, wird nix markiert.

"FindFirst" habe ich gegen "FindNext" ausgetauscht.
"SELECT *" hab ich gegen "SELECT code" ausgetauscht, wobei die Tabelle sowieso nur die Spalte "code" hat.

Das Problem besteht allerdings weiterhin.

LG
jagger
« Letzte Änderung: Januar 11, 2019, 17:15:06 von jagger »
 

Online ebs17

  • Access Guru
  • ****
  • Beiträge: 1065
Das wird eine Frage der genauen Umsetzung sein.

Eine denkbare andere Variante: Zeile in Kombinations-/Listenfeld auswählen
Dazu müsste man sich die Zeilennummer der ersten Selektierung merken.
Mit freundlichem Glück Auf!

Eberhard
 

Offline jagger

  • Access-User
  • *
  • Beiträge: 99
@alle,

so etwas wie "TopIndex" gibt es wohl für die StandardListbox bei Access nicht?
Ich habe leider noch immer keine Lösung gefunden.

LG
jagger
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23571
Hallo,

habe jetzt nicht alles durchgelesen, aber probier mal dies:

Me!lbxKollektionen= Me!lbxKollektionen.Column(0,0)

Offline jagger

  • Access-User
  • *
  • Beiträge: 99
Hallo Franz,

das bringt leider auch nicht den gewünschten Effekt.  :(

Trotzdem Danke!

LG
jagger
 

Offline jagger

  • Access-User
  • *
  • Beiträge: 99
Guten Abend,

nach wochenlangem Suchen habe ich endlich die Lösung gefunden:
Dim I As Long, RS As DAO.Recordset
  With Me!lbxKollektionen
           Set RS = CurrentDb.OpenRecordset("SELECT * FROM tab_intex_KM_Filter_code ", dbOpenSnapshot)
        For I = 0 To .ListCount - 1
          RS.FindFirst "code = " & Nz(.Column(0, I), -1)
           .Selected(I) = Not RS.NoMatch
        Next I
      RS.Close
   End With

muss beim Ereignis "beim Laden" ausgefürt werden.
Dann ist auch die Sortierung richtig bzw.
der Schieberegler ist ganz "oben".
Hatte es vorher bei "beim Öffnen".

It is so easy!

LG
jagger

« Letzte Änderung: Februar 22, 2019, 19:31:26 von jagger »
 

 

Listenfeld Datensatzquelle treibt mich in den Wahnsinn

Begonnen von hanskuhnBoard Formular

Antworten: 2
Aufrufe: 4321
Letzter Beitrag Juni 17, 2010, 14:28:35
von hanskuhn
Select Statement in ein Listenfeld einlesen

Begonnen von strolliBoard Access Programmierung

Antworten: 30
Aufrufe: 13716
Letzter Beitrag Juli 07, 2010, 10:48:42
von blackoutNO
Listenfeld durch Checkbox einschränken

Begonnen von _schneggal_06Board Formular

Antworten: 33
Aufrufe: 17860
Letzter Beitrag August 13, 2010, 11:33:00
von _schneggal_06
Inhalt von Listenfeld automatisch aktualisieren

Begonnen von myhanniBoard Formular

Antworten: 2
Aufrufe: 5854
Letzter Beitrag August 17, 2010, 14:26:49
von myhanni
Benötige Hilfe um Mehrfachauswahl (Listenfeld) an Abfrage zu übergeben

Begonnen von joerg_wBoard Tabelle/Abfrage

Antworten: 10
Aufrufe: 13121
Letzter Beitrag Oktober 07, 2010, 09:03:12
von database