Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: zoulhh am Januar 25, 2022, 10:19:57

Titel: Leeres Kombinationsfeld ist nicht leer
Beitrag von: zoulhh am Januar 25, 2022, 10:19:57
Moin zusammen,

hoffe Ihr seid alle gesund. Ich habe ein Problem, an dem ich mir die Zähne ausbeiße:

Ich habe zwei Kombinationsfelder in einem Formular. Eins ist mit einer Wertliste befüllt, sagen wir "Eins";"Zwei".

Wenn der Benutzer hier nichts auswählt, kann ich das mittels VBA leicht prüfen. Beispielsweise: wenn Val(kombieins) = 0 dann. Das funktioniert auch problemlos.

Nun habe ich ein weiteres Kombinationsfeld (mit drei Spalten), dass ich mittels einer Abfrage befülle: SELECT [Datenbank].ID, [Datenbank].Vorname usw. Das funktioniert auch.

Wenn ich aber mittels VBA prüfe, ob dieses zweite Kombifeld leer ist, haut das nicht hin. Auch wenn der Nutzer nichts ausgewählt hat, ist der Wert des Feldes nicht 0 und auch nicht "". Und die Länge ist immer 19. Gebe ich den Inhalt des Kombifeldes mit msgbox aus, steht da nichts. Leeres Dialogfeld.

Sorry, ich bin nicht so firm in Access und mit meinem Latein am Ende. Kann mir bitte jemand sagen, wie ich mittels VBA korrekt abfrage, ob in einem Kombifeld etwas ausgewählt wurde? Ich hoffe, Ihr versteht dieses Kauderwelsch.

Danke,

Mick
Titel: Re: Leeres Kombinationsfeld ist nicht leer
Beitrag von: Beaker s.a. am Januar 25, 2022, 13:19:11
Hallo Mick,
Ein leeres Kombi sollte den Wert NULL haben.
Also entweder
If IsNull(Me.DeinKombi) Then
oder
If Nz(Me.DeinKombi, 0) = 0 Then

gruss ekkehard
Titel: Re: Leeres Kombinationsfeld ist nicht leer
Beitrag von: ebs17 am Januar 25, 2022, 13:43:04
Zuerst solltest Du Dich vergewissern, was genau Du unter "leer" verstehst.

Da gibt es einen Rückgabewert - Inhalt des ausgewählten Datensatzes in der gebundenen Spalte der Datenherkunft nach Auswahl. Leer würde hier NULL bedeuten.
Und es gibt eine Datenherkunft für das Kombinationsfeld, also die Auswahl selber. Hier könnte man mit ListCount prüfen.
Titel: Re: Leeres Kombinationsfeld ist nicht leer
Beitrag von: zoulhh am Januar 25, 2022, 14:03:44
Zitat von: Beaker s.a. am Januar 25, 2022, 13:19:11Hallo Mick,
Ein leeres Kombi sollte den Wert NULL haben.
Also entweder
If IsNull(Me.DeinKombi) Then
oder
If Nz(Me.DeinKombi, 0) = 0 Then

gruss ekkehard

Moin Ekkehard,

ja genau, so sollte es sein. Aber selbst wenn nichts ausgewählt ist, ist dem nicht so. Ich begreife es nicht. Ich habe mir dann mit Len(meinkombi) mal die Länge zurückgeben lassen und die ist "19" obwohl nichts ausgewählt ist. Echt seltsam.

Viele Grüße

Mick
Titel: Re: Leeres Kombinationsfeld ist nicht leer
Beitrag von: zoulhh am Januar 25, 2022, 14:04:45
Zitat von: ebs17 am Januar 25, 2022, 13:43:04Zuerst solltest Du Dich vergewissern, was genau Du unter "leer" verstehst.

Da gibt es einen Rückgabewert - Inhalt des ausgewählten Datensatzes in der gebundenen Spalte der Datenherkunft nach Auswahl. Leer würde hier NULL bedeuten.
Und es gibt eine Datenherkunft für das Kombinationsfeld, also die Auswahl selber. Hier könnte man mit ListCount prüfen.

Moin Eberhard,

damit meine ich, dass im Kombifeld nichts ausgewählt ist.

Viele Grüße

Mick
Titel: Re: Leeres Kombinationsfeld ist nicht leer
Beitrag von: MzKlMu am Januar 25, 2022, 15:28:56
Hallo,
wenn in einem Kombi nichts ausgewählt wurde, so ist dessen Zustand Null (=Nix). Es muss daher auf Null geprüft werden.
Wie es ekkehard in #1 schon beschrieben hat.
Auch Len kann bei einem Kombi in dem nichts ausgewäht wurde keinen Wert liefern, bzw. liefert NULL.

Du solltest also mal auch den Code mit Len zeigen, Du machst da einiges falsch.