Neuigkeiten:

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

Mobiles Hauptmenü

Leeres Kombinationsfeld ist nicht leer

Begonnen von zoulhh, Januar 25, 2022, 10:19:57

⏪ vorheriges - nächstes ⏩

zoulhh

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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

zoulhh

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

zoulhh

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

MzKlMu

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.
Gruß Klaus