vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Re: Wenn Klausel 
Autor: radler
Datum: 10.01.05 00:54

Hallo Annabelle,

es handelt sich hierbei um ineinander verschachtelte IIf-Funktionen [ -> IIf(expr, truepart, falsepart) ].
Diese Funktion ist eine einzeilige Version der If...Then...Else-Anweisung ...
z.B.
a = 1
if a = 0 then
    MsgBox "a ist Null"
else
    MsgBox "a ist ungleich Null"
end if
.

Auf das Bsp. Deiner Frage angewandt bedeutet dies ...
a = 2
if a <= 0 then
    MsgBox "a ist kleiner oder gleich Null"
else
    if a = 1 then
        MsgBox "a ist Eins"
    else
        MsgBox "a ist größer Eins"
    end if
end if
Die Where-Clause verkettet in Deiner Frage abhängig von bestimmten Feldwerten Werte zu einer Zeichenfolge.
Hier der Anfang erklärt:

RZ (Resultierende Zeichenfolge) = NULL

Nehmen wir an, daß EbeneStufe 7 ist.

• NKomponente ist NULL (expr) -> nehmen wir an, daß dies zutrifft, dann wird EbeneStufe geprüft (truepart).
• EbeneStufe>=3 (expr) -> dies trifft zu, dann wird in die RZ KomBez3 geschrieben (RZ = KomBez3).
Sonst allerdings nichts. Da es sich hierbei wohl um MSAccess handelt würde ich sagen, daß hier ein Fehler vorliegt, da der falsepart nicht vorhanden ist.
• Danach wird wiederum EbeneStufe geprüpft.
EbeneStufe>=4 (expr) -> dies trifft zu, dann wird an die RZ
"--" & KomBez4
angehängt. Daraus folgt: RZ = KomBez3 & "--" & KomBez4.
• usw.

Bei EbeneStufe = 7 ergibt sich sodann folgende Zeichenfolge ...
RZ = KomBez3 & "--" & KomBez4 & "--" & KomBez5 & "--" & KomBez6 & "--" & KomBez7
aus dem ersten Teil (
Zitat:

Wenn([NKomponente] Ist Null;Wenn([EbeneStufe]>=3;[KomBez3]) & Wenn([EbeneStufe]>=4;" -- " & [KomBez4]) & Wenn([EbeneStufe]>=5;" -- " & [KomBez5]) & Wenn([EbeneStufe]>=6;" -- " & [KomBez6]) & Wenn([EbeneStufe]>=7;" -- " & [KomBez7]);
)

Der restliche Teil der Abfrage wird ebenso abgehandelt.

Daraus wird deutlich, daß bei obigem Bsp. für den Fall, daß EbeneStufe = 6 ist, die RZ KomBez7 nicht beinhalten würde, da 6 < 7.
Somit erhälst Du eine andere Zeichenfolge (RZ = KomBez3 & "--" & KomBez4 & "--" & KomBez5 & "--" & KomBez6).

Ich würde Dir empfehlen die Möglichkeiten auf einem Blatt Papier in einer Art Diagramm aufzuzeichnen (siehe mein 2. Bsp. in VB-Code), um Dir visuell zu verdeutlichen, welcher Ablauf stattfindet.

Gruß
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wenn Klausel1.297Annabelle08.01.05 12:53
Re: Wenn Klausel865radler10.01.05 00:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel