[VB6] If doet vaag

Pagina: 1
Acties:

  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
Hier is een heel vaag probleem:

code:
1
2
3
4
5
6
Private Sub Command1_Click() 
  If Text1.Text = "" Then MsgBox "blaat" 
Else: Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text 
End If 

End Sub



als ik dit in m'n progje heb staan en probeer deze knop dan krijg ik (of er nu wat in text1 staat of niet) de error "Else without If"
ben ik nou gek of wat? Hij heeft toch wel een if ?¿? 8)7 |:(

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • Stamgastje
  • Registratie: April 2003
  • Laatst online: 02-02-2020
Dit bedoel je volgens mij:

code:
1
2
3
4
5
6
7
Private Sub Command1_Click()
    If Text1.Text = "" Then
        MsgBox "blaat"
    Else
        Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text
    End If
End If


Lees voor de rest nog eens goed de documentatie van IF statements door, dat heb je zo te zien nog niet helemaal begrepen.

[ Voor 121% gewijzigd door Stamgastje op 11-04-2004 15:24 ]


  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 26-05 16:45

Tukk

De α-man met het ẞ-brein

Spike_wolf schreef op 11 april 2004 @ 15:18:
Hier is een heel vaag probleem:

code:
1
2
3
4
5
6
Private Sub Command1_Click() 
  If Text1.Text = "" Then MsgBox "blaat" 
Else: Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text 
End If 

End Sub



als ik dit in m'n progje heb staan en probeer deze knop dan krijg ik (of er nu wat in text1 staat of niet) de error "Else without If"
ben ik nou gek of wat? Hij heeft toch wel een if ?¿? 8)7 |:(
Visual Basic:
1
2
3
4
5
6
7
8
Private Sub Command1_Click() 
   If Text1.Text = "" Then 
      MsgBox "blaat" 
   Else
      Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text 
   End If 

End Sub 

Ik ben zo vrij geweest om de code wat leesbaarder te maken.

Mag ik opmerken dat de code mij zeer chaotisch aandoet. Zonder te controleren wat er in Text2 staat voer je al een vermenigvuldiging uit.

Ik heb de code bij mij ge-copy-paste en het werkt gewoon. Heb je niet ergens anders in je code een probleem?

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
ik controleer wel wat er in text 2 staat maar dat heb k er ff uit gehaald om het wat duidelijker te maken

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • Spike_wolf
  • Registratie: Maart 2003
  • Laatst online: 23-05 15:25

Spike_wolf

Genius Or Madman?.. You Decide

Topicstarter
okay, blijkbaar was mijn code inderdaad te chaotiesch. k heb die van Stamgastje ingevoerd en nu werkt hij wel, thanks =-]

Wat doet Ctrl+W ook alweer?
Humankind… be both.
Star Wars Awakens | Instagram


  • xtra
  • Registratie: November 2001
  • Laatst online: 19-11-2025
Spike_wolf schreef op 11 april 2004 @ 15:32:
okay, blijkbaar was mijn code inderdaad te chaotiesch. k heb die van Stamgastje ingevoerd en nu werkt hij wel, thanks =-]
Chaotisch kan nog wel werken maar dit was gewoon fout zoals de verbeterde code al laat zien.

code:
1
If Text1.Text = "" Then MsgBox "blaat"

In bovenstaande regel zet je meteen een statement achter if. Dan gaat VB er vanuit dat er niets meer achteraan komt. VB snapt dan niet meer wat er met Else en End If moeten gebeuren. Kortom, twee manieren om If te gebruiken door elkaar halen gaat mis.

Verwijderd

Spike_wolf schreef op 11 april 2004 @ 15:18:
Hier is een heel vaag probleem:

code:
1
2
3
4
5
6
Private Sub Command1_Click() 
  If Text1.Text = "" Then MsgBox "blaat" 
Else: Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text 
End If 

End Sub
En naast de overige opmerkingen...

Wordt de "else" hier opgevat als een label?

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 07:13

RayNbow

Kirika <3

Verwijderd schreef op 11 april 2004 @ 23:22:
[...]

En naast de overige opmerkingen...

Wordt de "else" hier opgevat als een label?
Nee, de : heeft in VB o.a. de betekenis van een "nieuwe regel" voor een nieuw statement.

In VB kan de If Statement de volgende vormen aannemen:

Visual Basic 6:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
If expressie Then Statement1
If expressie Then Statement1 Else Statement2

If expressie Then
  Statement1
  StatementN
End If

If expressie Then
  Statement1
  StatementN
Else
  Statement2
  StatementM
End If


De volgende code kan dus op meerdere manieren worden gefixt...
Visual Basic 6:
1
2
3
If Text1.Text = "" Then MsgBox "blaat"
Else: Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text
End If


(lelijk) voorbeeld:

Visual Basic 6:
1
2
If Text1.Text = "" Then MsgBox "blaat" Else:
Text3.Text = Text3.Text & vbCrLf & Text1.Text * Text2.Text

Ipsa Scientia Potestas Est
NNID: ShinNoNoir

Pagina: 1