Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Begrenzte Einträge im Listenfeld

Begonnen von Wolfgang Zander, März 21, 2020, 22:27:59

⏪ vorheriges - nächstes ⏩

Wolfgang Zander

Hallo,
ich habe neuerdings folgendes Problem: Aus einer Abfrage mit derzeit 654 Einträgen fülle ich per VBA ein Listenfeld.
Dieses hat 4 Spalten (Nr., deutscher Name, wissenschaftlicher Name, Sortierfeld) also im Durchschnitt ca. 50 Zeichen pro Zeile. Bei Auswahl einer Zeile werden dann weitere Beschreibungen, Bilder, Fundorte usw. der Pflanze angezeigt.
Das Listenfeld zeigt aber grundsätzlich nur die ersten 640 Einträge der Abfrage-Tabelle an. Auch bei einer
Veränderung (i.d.R. Vergrößerung) der Abfrage-Inhalte.
Was mache ich da falsch? Oder gibt es tatsächlich eine maximale Anzahl von Einträgen in einem Listenfeld?
Über eine Antwort würde ich mich sehr freuen.
Vielen Dank und viele Grüße
Wolfgang

MzKlMu

Hallo,
ZitatAus einer Abfrage mit derzeit 654 Einträgen fülle ich per VBA ein Listenfeld.
zeige die Abfrage (SQL) und den VBA Code.

Wie sonst stellst Du Dir Hilfe vor ?

Ein Listenfeld kann ca. 65000 Zeilen haben.
Gruß Klaus

Wolfgang Zander

Hallo,
hier öffne ich die Abfrage-Tabelle. Die ist in Ordnung und enthält alle infragekommenden Datensätze (654).

If typ = "P" Then
    Set rs = db.OpenRecordset(" SELECT * from Bilder_Pflanzen order by Dateiname", dbReadOnly)         
End If

Dann fülle ich mein Listenfeld in einer Schleife mit den 654 Datensätzen:

frm.Liste53.AddItem nr & "; " & name_dt & ";" & name_wiss & ";" & sortierfeld       ' alle "fertigen" Pflanzen in Liste eintragen

Das geschieht auch  654 mal.

Wenn ich mir dann die Einträge ansehe, fehlen die letzten 14. In dem Listenfeld werden nur 640 Einträge gezeigt. Das ändert sich auch nicht, wenn ich z.B. 2 neue Einträge in der Abfrage mehr habe. Dann fehlen eben 16.
Wenn über 65 Tsd. Einträge möglich sein sollen, dann liegt der Fehler ja wohl bei mir. Aber wo? Als ich weniger als 640 Einträge hatte, lief ja alles bestens.
Ich bitte noch einmal um eine Hilfestellung.
Vielen Dank und viele Grüße
Wolfgang

ebs17

ZitatIch bitte noch einmal um eine Hilfestellung.
Mach es direkt und einfach:
=> Datenherkunftstyp für Listenfeld tabelle/Abfrage, nicht Wertliste
frm.Liste53.RowSource = "NameAbfrage"

Liste53 ... an Bezeichnungen, die einem etwas sagen können, müsstest Du noch arbeiten.
Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
Du füllst ja eine Werteliste. In einer Werteliste ist die Zeichenzahl begrenzt. Das hat mit den Zeilen (=Datensätze) nichts zu tun.
Mit einer Werteliste geht das nicht. Wertelisten halte ich nur in wenigen Ausnahmefällen für sinnvoll.
Ich verstehe auch nicht, warum Du nicht einfach eine Abfrage nimmst für das Listenfeld, die Daten liegen ja vor. Stelle das Listenfeld auf "Tabelle/Abfrage" und verwende folgenden VBA Code.
Me.Liste53.RowSource = "SELECT * from Bilder_Pflanzen order by Dateiname"
Die Schleife entfällt ersatzlos.

Gruß Klaus

Wolfgang Zander

Hallo Eberhard,
hallo KLaus,
vielen Dank für diese Information. Ich habe mir zwar das Eigenschaftsfenster des Listenfelders auch angesehen, aber an die Werteliste habe ich trotzdem nicht gedacht. Das ist natürlich ganz klar der Grund der zu knappen Anzeige. Ich habe in vielen Funktionen Wertelisten im Einsatz, weil ich die Basisrelationen nicht immer 1:1 nutzen kann. Und da meine Relationen alle nicht so groß sind, ist dieses Problem bisher nie aufgetaucht. Aber dank Eurer Hilfe weiß ich jetzt Bescheid. Vielen Dank noch mal und schöne Grüße
Wolfgang