Label Inhalt durch IF schleife ändern

Bebam

Bebam(Bbäm)
Gut. Also es klappt alles wunderbar :) , nur das Problem, das der mir
Laufzeitfehler '13' Typen unverträglich anzeigt
( ich glaube das ist, wenn ein Feld leer ist? )

aber erst wenn ich

Visual Basic:
txttry.Text = "herzlichen Glückwunsch, Sie haben" + count + " Zahlen richtig"

eingebe.
Das gleiche ist auch bei meinem label passiert.
 

Yaslaw

alter Rempler
Moderator
Schau dier dein Code hier im Forum mal an. count ist Dunkelrot eingefärbt, denn dies ist ein Funktionsname.

Nimm mal ein anderer Variablennamen.

ggf hat er auch keine Freude dass eine Zahl kommt. Also kannst du auch ein cstr() versuchen

Visual Basic:
txttry.Text = "herzlichen Glückwunsch, Sie haben" + cstr(mycount) + " Zahlen richtig"
 

Bebam

Bebam(Bbäm)
Habe jetzt genommen :

Visual Basic:
txttry.Text = "herzlichen Glückwunsch, Sie haben" + CStr(richtige) + " Zahlen richtig"

Habe natürlich alles mit richtige getauscht und richtige auch deklariert ( als integer reicht das? )
Leider kommt immer noch laufzeitfehler 13
Mir fällt gerade auf, die txtl Felder, also wo die Lottozahlen sein sollten, sind dann alle leer
und Laufzeitfehler 13 kommt ja immer, wenn etwas leer ist.
 

Yaslaw

alter Rempler
Moderator
Kenne Laufzeitfehler 13 nicht (nunja, seit 1 Jahr kein VB6 mehr..)
Aber bist du schon mal mit dem Debugger durchgegangen und hast die Inhalte der verscheidenen Zugriffe geprüft?
 

Bebam

Bebam(Bbäm)
Laufzeitfehler ist z.B.
wenn man ein Textfeld hat, der Benutzer soll dann eine Zahl eingeben,
wenn er jedoch KEINE Zahl eingibt, kommt Laufzeitfehler 13.
Was bringt debuggen im direkten Fall, findet das die Fehler selbst?
Oder was macht das?
Ich danke dir aber auf jeden Fall schon mal für deine Hilfe !
 

Yaslaw

alter Rempler
Moderator
Nein, mit debuugen findest du heraus wo es happert. Zur Laufzeit den Inhalt der Variablen prüfen etc.

Mach dich mal schlau zum Thema Debug in VB6. Das ist die mächtigste Methode um Logikfehler zu analysieren und beheben.
 

Bebam

Bebam(Bbäm)
So^^
nun hab ich noch ein bisschen rumprobiert^^

jetzt heißt es

Visual Basic:
If Me(txtm + x) = Me(txtl + x) Then

Also ohne die "
Endlich das Laufzeitproblem gelöst :)

So nun das gesamte

Visual Basic:
For x = 1 To 6
If Me(txtm + x) = Me(txtl + x) Then
richtige = richtige + 1
End If
Next x

lbl16.Caption = "Herzlichen Glückwunsch, Sie haben " + CStr(richtige) + " richtige Zahlen."

Jetzt kommt bei lbl16 aber immer , auch wenn ich keine richtige Zahl habe
"Sie haben 6 richtige Zahlen."
 

Yaslaw

alter Rempler
Moderator
Visual Basic:
Me(txtm + x)
Das macht mWn wenig Sinn
Wenn im Textfeld txtm zum Beispeil '4' steht und x ist 3, dann sucht er glaub anch dem Feld 7

*Hand-an-Kopf-schlag*
Stringverknüpfungen in VB ist ja & und nicht +

Und da hab ich was interessantes gefunden
http://www.vb-fun.de/vb/kurztipps/kt0068.htm

Ich war wohl zufest von VBA verführt.
Ob Me wirklich VB6 oder nur VBA ist kann ich jetzt nicht sagen

Visual Basic:
Me.controls("txtm" & x)
 
Zuletzt bearbeitet:

tombe

Erfahrenes Mitglied
Es liegt/lag an der Namensgebung der Steuerelemente.

Habe bei mir gerade festgestellt das er bei Me(txtm + x) sowohl "x" als auch "txtm" als Variable nimmt und einfach zusammenzählt. Diesen Wert hat er dann bei mir allerdings nicht als Namen sondern als Index des Steuerelements genommen.

Wenn die Namen durch eine Variable übergeben werden wie in yaslaws letztem Beispiel, dann geht es.
 

Neue Beiträge