WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   3 variablen mit if....then (http://www.wcm.at/forum/showthread.php?t=106337)

Potassium 21.08.2003 23:13

3 variablen mit if....then
 
hi leute
ich hab in vb 3 variablen. ich will mit einem if befehl das nur wenn keine der drei erfüllt is er eine nachricht anzeigt. sollte eine doch erfüllt sein dann soll er zu dem jeweiligen prozess gehn. ich hoffe das war verständlich. wie mach ich das?

gaelic 21.08.2003 23:18

das macht man mit case

oder verwende


if bedingung1
....
end
elseif bedingung2
....
end
elseif bedingung3
....
end
elseif
....
end


pc.net 21.08.2003 23:22

deleted ...

flinx 21.08.2003 23:25

Zitat:

deleted ...
Wieso, hat eh gepasst? ;)

pc.net 21.08.2003 23:31

Zitat:

Original geschrieben von flinx
Wieso, hat eh gepasst? ;)
die, die's gelesen haben wissens und die anderen gehts nix an :D

Potassium 22.08.2003 03:26

@ gaelic
aber ich will das das proggi weiterläuft ned das es beendet wird.

wbendl 22.08.2003 07:39

Hi!

Verwende besser die Select Case Anweisung.

Schau mal in deine Mailbox.

mfg

WB

wbendl 22.08.2003 08:10

Sorry!

Ich kann zur Zeit keine Mails verschicken, aber das Buch sollte gestern angekommen sein.

mfg

WB

gaelic 22.08.2003 10:39

Zitat:

Original geschrieben von potassium
@ gaelic
aber ich will das das proggi weiterläuft ned das es beendet wird.

dann musst außenrum nochmal eine schleife mit einer bedingung wann das programm beendet werden soll ...

T.dot 22.08.2003 12:47

Wenn ich die Frage richtig verstanden habe, dann hat Gaelic ein paar Schönheitsfehler eingebaut (ich glaube potassium wollte nicht, dass das Programm beendet wird, wenn Bedinung1-3 erfüllt sind, sondern zu irgendwelchen Funktionen gehen):

if bedingung1 then
call func1
elseif bedingung2 then
call func2
elseif bedingung3 then
call func3
else
msgbox "keine der drei bedingungen erfüllt"
end if


ich hoffe ich hab das so richtig interpretiert...

mfg T.

Potassium 22.08.2003 13:39

ich hab bis jetzt das (4 am anfang is eine sprungmarke für goto)

4 If benbox = a Then
Unload Me
ElseIf benbox = c Then
Unload Me
ElseIf benbox = e Then
Unload Me
Else
MsgBox "Der Benutzername existiert nicht. Bitte geben Sie einen gültigen an.", vbOKCancel, "Benutzername"
End If

aber nun zeigt er immer die letzte feherlmeldung an.:ms: :heul:
was is da falsch? :motz: :confused: ich will eigetnlich das weder a noch b noch c erfüllt sei dürfen dann soll er die msgbox erscheinen lassen. sonst nicht.

werner_q 22.08.2003 14:04

Jessas
 
Vielleicht ein Typ-Problem ?
(Ich will nicht überheblich sein, aber weisst du was Typen sind ?)

Was ist benbox, was soll a,b,e sein ? Wenn benbox (würde ich raten) ein Objekt ist (ein Textfeld z.B.) und a,b,e sind Strings oder auch Variant (wahrscheinlich, wenn du nichts deklariert hast, was ich wieder annehme), dann werden die Abfragen nie erfüllt sein, egal was in a,b,e drinsteht.

Den Inhalt des Textfeldes (wenn es denn eines sein soll) erhältst du mit benbox.Text. Diese Variable kannst du dann mit einem Variant (oder besser, String) vergleichen.

Potassium 22.08.2003 14:59

1.) a, b und c waren strings aber das is t ja egal
2.) du hattest recht das mit dem benbox.text (ja ist eine textbox)hab ich jetzt so gelst
g = benbox.text

if g = a then
...
elseif g = c then
....
elseif g = e then
.....
else
msgbox ....
endif
--------------------------
3.) du hastrecht ich kenn mich mit vb ned gut aus ich beginn gerade erst und muss alles ausprobieren das keine hilfe keine büchet etc.

werner_q 22.08.2003 17:59

Na, dann freut's mich geholfen haben zu können !

Seidl 22.08.2003 19:08

Re: 3 variablen mit if....then
 
Zitat:

Original geschrieben von potassium
hi leute
ich hab in vb 3 variablen. ich will mit einem if befehl das nur wenn keine der drei erfüllt is er eine nachricht anzeigt. sollte eine doch erfüllt sein dann soll er zu dem jeweiligen prozess gehn. ich hoffe das war verständlich. wie mach ich das?

Verständlich? Das? :lol: :lol: :lol:

No hard feelings; aber der Kommentar musste einfach mal sein.


Um doch noch meinen Senf dazu zu geben:

Wie wär's mit

-------------------------
dim strBB as String
strBB = benbox.Text
If strBB <> a AND strBB <> c AND strBB <> e Then
MsgBox "Der Benutzername existiert nicht. Bitte geben Sie einen gültigen an.", vbOKCancel, "Benutzername"
Else
Unload Me
End If
-------------------------

oder mit

-------------------------
Select Case benbox.Text
Case a
Unload Me
Case b
Unload Me
Case c
Unload Me
Case Else
MsgBox "Der Benutzername existiert nicht. Bitte geben Sie einen gültigen an.", vbOKCancel, "Benutzername"
End Select
-------------------------

LDIR 23.08.2003 00:20

Zitat:

Original geschrieben von wbendl
Hi!

Verwende besser die Select Case Anweisung.

WB

Ach ja?

SELECT Variable
CASE >1: Anweisung
CASE <=1: Anweisung
END SELECT

Glaube kaum dass es so geht ;), aber mit IF THEN kann man sowas machen.
CASE funktioniert nur im Fall der verwendung von "=" Zeichen, deswegen ist der Tip mit CASE nur bedingt zu empfehlen.

Potassium 23.08.2003 01:28

geht <> auch bei buchstaben? ch denk das ist nur für zahlen.

reemrev 23.08.2003 01:42

Geht auch bei Buchstaben, die von Seidl aufgezeigte ifVariante ist die einfachste, ev. den String mit fester Größe belegen und mit Trim$(oder ähnlichem) abfragen.


Bei Case Anweisungen braucht man nicht unbedingt ein "=" Zeichen
Case 1 to 50
Case 1,2,5,6,7
Case Label1.Caption
Case"Hallo"
gehen ebenso.


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag