Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Stele4 am Juni 07, 2025, 21:13:11

Titel: Combobox Index -1, wenn Wert ""
Beitrag von: Stele4 am Juni 07, 2025, 21:13:11
Hallo!
Eine Liste einer Combobox hat als 1. Eintrag der Wert "" oder Null oder auch " ".
Bei Auswahl dieses Eintrages ist Listindex -1 statt 0.
Warum ist das so?
Wie kann man ermitteln, ob ein Eintrag ausgewählt wurde?

Gruß Stele
Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Knobbi38 am Juni 07, 2025, 21:25:39
Hallo Stele,

das kannst du doch in der Doku nachlesen:
https://learn.microsoft.com/de-de/office/vba/api/access.combobox.listindex (https://learn.microsoft.com/de-de/office/vba/api/access.combobox.listindex)

Gruß Knobbi38

Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Stele4 am Juni 07, 2025, 21:58:48
Hallo Knobbi!
Die Erklärung für mein Problem habe ich in dem Text nicht gefunden.
Ich erwarte den Listindex 0, wenn ich den 1. Eintrag auswähle.
Egal, was drin steht.

Gruß Stele
Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: MzKlMu am Juni 08, 2025, 11:15:48
Hallo,
Zitathat als 1. Eintrag der Wert "" oder Null oder auch " ".
NULL geht ja, aber wie bekommst Du "" (Leerstring) und " " (Leerzeichen) in ein Feld ?
Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Knobbi38 am Juni 08, 2025, 11:48:45
Hallo Stele,

ZitatIch erwarte den Listindex 0, wenn ich den 1. Eintrag auswähle.

So ist es und das kannst du auch selber sehr einfach ausprobieren. Wenn das bei dir nicht so ist, dann stimmt etwas anderes nicht, was man aus der Ferne ohne weitere Informationen aber nicht beurteilen kann.

ZitatWie kann man ermitteln, ob ein Eintrag ausgewählt wurde?
Da gibt es mehrere Möglichkeiten, z.B. mit Hilfe der Itemsselected Auflistung, mit der ListIndex Eigenschaft oder ganz einfach, ob der Wert der Kombobox ungleich NULL ist.
 

Gruß Knobbi38

Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Stele4 am Juni 08, 2025, 17:24:15
Hallo!
Ich habe es noch nicht geprueft, doch die NULL nehme ich zurueck.

Beim Nachbau fuer die Demo ist es aufgefallen:
Wenn bei einem 1-spaltigen Feld die BoundColumn auf 1 gesetzt wird, erhaelt man lustige Effekte.
Leere Strings ergeben den ListIndex -1.
Ein Leerzeichen ergibt -1, wenn kein leerer Eintrag in der Liste ist. Sonst den korrekten Index.
Korrekt ist aber relativ.
Der Index des 1. Eintrags kann auch 1 sein, wenn in der Liste noch ein leerer Eintrag vorhanden ist.
Usw...

Das korrekte Setzen der BoundColumn verhindert diese Effekte.

Dank und Gruss
Stele
Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Knobbi38 am Juni 08, 2025, 20:33:45
Hallo Stele,

du hättest auch gleich darauf hinweisen können daß du mit einer Werteliste und einer ungebundenen Kombobox herum experimentierst und nicht wie gewöhnlich eine Datenquelle verwendest.

Unabhängig davon ist doch alles wie es sein soll und wenn du dich selber austrickst, dann kommen eben solche Ergebnisse zustande - nichts ungewöhnliches.
 
Wenn du einer Kombobox den Wert NULL oder einen String der Länge(0) zuweist, was in diesem Fall gleichwertig ist, dann setzt du die Kombobox zurück und es ist kein Eintrag selektiert. Demzufolge liefert Listindex dann auch ganz korrekt den Wert -1.

Btw.: zum Testen hättest du dir auch einfach die entsprechenden Werte (Value, Listindex) im Überwachungsfenster ansehen können, daß Change-Event einer Kombobox ist dafür ungeeignet, normalerweise wird dafür das AfterUpdate Ereignis verwendet.

Gruß Knobbi38




Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Stele4 am Juni 11, 2025, 13:28:24
Hallo Knobbi!
Ich stimme nicht ganz zu.
Das Rumexperimetieren mit der Werteliste ergab sich beim Versuch der Fehlereingrenzung.
Tabelle und Werteliste ergaben dieselben Effekte.
Das war im Ueberwachungsfenster mit entsprechenden Werten zu erkennen.
Dass bei Auswahl eines leeren Strings die Combobox zurueck gesetzt wird, ist mEa nicht richtg.
Wenn die BoundColumn korrekt gesetzt ist, kommt auch der ListIndex 0.. (wie es der Laie erwartet).
OnChange wird verwendet, um beim Eintippen die Zieltabelle zu filtern.

Gruss Stele
Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Knobbi38 am Juni 11, 2025, 21:43:13
Hallo Stele,

mal ehrlich, wer lädt denn einen Leerstring bzw. einen String mit einem Blank in eine Kombobox und wozu soll das gut sein? So etwas wird von den meisten Entwicklern tunlichst vermieden und OnChange wird eigentlich auch nicht in einer Kombobox verwendet, sondern so eine Art der Filterung wird eher in Verbindung mit einer Textbox verwendet.

Aber gut, wenn du das so verwenden möchtest, bleibt ja dir überlassen. Am "eigenartigen" Verhalten der Kombobox wird das aber nichts ändern.

Gruß Knobbi38

Titel: Re: Combobox Index -1, wenn Wert ""
Beitrag von: Stele4 am Juni 12, 2025, 10:00:26
Hallo Knobbi!
Es fuehrt allmaehlich am Thema vorbei.

Fazit: Wenn die BoundColumn in die Dimensionen der RowSource passt, gibt es kein eigenartiges Verhalten.

Gruss
Stele