If-Anweisung für keinen angegebenen Wert

Ich versuche eine if-Anweisung zu schreiben für den Fall, dass in einer Spalte Header kein Eintrag steht. Ich verwende folgenden Code:

If Header = „“ then

else …

Jedoch führt das Programm im Falle keines Eintrags für Header nicht den ersten Teil aus, sondern den Teil für else. Warum funktioniert das so nicht???

Man kann aus deiner Fehlerbeschreibung nicht erkennen, wo das Problem liegen soll. Alos solltest du es ein wenig konkretisieren!
Ist Header eine String - Variable?
Oder (könnte auch sein) nutzt du Excel und eine benannte Spalte?
Oder VB-Script in HTML Datei?
Oder… Oder…

Gruß,
AlexR

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

If Header = „“ then

am einfachsten wird es sein, Du setzt da einen Stoppunkt.
Das Programm wird dann da anhalten und Dir den Inhalt der Variablen ‚Header‘ anzeigen, wenn Du den Mauszeiger darüber hältst.

Gruß, Rainer

Also, ich versuche es nochmal ein wenig genauer und hänge damit den „echten“ Code an:

If EingFinRS![Header in /mm] = „“ Then …

ElseIf EingFinRS![Header in /mm] = „DOME“ Then
Else …

End If

also [header in /mm] ist eine variable aus einer tabelle eingfin und in dieser als text definiert. (das ganze ist übrigens für access vba). wenn nun kein eintrag drinsteht, springt der code zur zeile else…

gruß laura

Hallo,

Also, ich versuche es nochmal ein wenig genauer und hänge
damit den „echten“ Code an:

If EingFinRS![Header in /mm] = „“ Then …

ElseIf EingFinRS![Header in /mm] = „DOME“ Then
Else …

End If

also [header in /mm] ist eine variable aus einer tabelle
eingfin und in dieser als text definiert. (das ganze ist
übrigens für access vba). wenn nun kein eintrag drinsteht,
springt der code zur zeile else…

Probier mal folgendes:

If <u>"" &amp;</u> EingFinRS![Header in /mm] = "" Then .....
ElseIf EingFinRS![Header in /mm] = "DOME" Then
Else ...
End If

ODER:

If EingFinRS![Header in /mm] <u>is nothing</u> Then .....
ElseIf EingFinRS![Header in /mm] = "DOME" Then
Else ...
End If

Gruß
AlexR

Was gerne übersehen wird: steht ein Leerstring (also „“) in einem Feld, so ist es nicht mehr „leer“. Dein Code funktioniert also nur, wenn explizit „“ in dem Feld steht. Ein leeres Datenbankfeld hat in der Regel den Wert „Null“. Dafür gibt’s die IsNull-Funktion. Ob das jetzt für alle Access-Versionen so gilt, weiß ich nicht. Sollte aber leicht in der Hilfe zu finden sein.

Ich versuche eine if-Anweisung zu schreiben für den Fall, dass
in einer Spalte Header kein Eintrag steht. Ich verwende

Hi Laura,

mache das was Rainer sagte, oder falls in Access möglich klappere den Code Zeile für Zeile mit F8 ab.

Vor der Schleife könntest du noch sowas ausprobieren:

Msgbox len(Header)
Msgbox Typename(Header)

Und in deinem anderen Code, deine Variable hat die Bezeichnung:

EingFinRS![Header in /mm]

? *staun* , probiers mal probehalber mit einem Variablennamen ohne []!( und Leerzeichen. Naja, vielleicht sind ja solche Variablennamen in Access üblich.

Gruß
Reinhard

folgenden Code:

If Header = „“ then

else …

Jedoch führt das Programm im Falle keines Eintrags für Header
nicht den ersten Teil aus, sondern den Teil für else. Warum
funktioniert das so nicht???

If „“ & EingFinRS![Header in /mm] = „“ Then …

Damit hat’s jetzt geklappt! Warum verstehe ich zwar nicht, aber vielen Dank :smile:

Gruß Laura

Warum verstehe ich zwar nicht,

Der &-Operator scheint so freundlich zu sein, daß er hier aus „EingFinRS![Header in /mm]“ einen Leerstring macht. Eleganter wäre eigentlich die Nz-Funktion.

Ich versuche eine if-Anweisung zu schreiben für den Fall, dass
in einer Spalte Header kein Eintrag steht. Ich verwende

Hi Laura,

mache das was Rainer sagte, oder falls in Access möglich
klappere den Code Zeile für Zeile mit F8 ab.

Vor der Schleife könntest du noch sowas ausprobieren:

Msgbox len(Header)
Msgbox Typename(Header)

Und in deinem anderen Code, deine Variable hat die
Bezeichnung:

EingFinRS![Header in /mm]

? *staun* , probiers mal probehalber mit einem Variablennamen
ohne []!( und Leerzeichen. Naja, vielleicht sind ja solche
Variablennamen in Access üblich.

So was geht in Access tatsächlich. Zumindest für Steuerelemente, nicht für Variablen (meines Wissens nach). Kommt daher, das man auch Felder mit Leerzeichen benennen kann, und um auf diese im Quellcode zuzugreifen, umschließt man sie mit []. Ob das jetzt eine gute Praxis ist, sei dahingestellt…

Gruß,
AlexR

Hallo Laura,

ganz einfach weil das Feld den Wert NULL hat.

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]