Waarom doet deze code het niet?

Status
Niet open voor verdere reacties.

computernerd

Terugkerende gebruiker
Lid geworden
28 jul 2001
Berichten
1.672
Ik ben net begonnen met VB6, en wil met een loop ervoor zorgen dat een bepaald aantal beepjes (opgegeven in een tekstvak -Text1-) wordt afgespeeld als ik op een knop (Command1) druk. Ik heb deze code gemaakt, maar deze doet het niet! Ook al typ ik iets in tussen 1 tot 10 (de marge) komt er een foutmelding (de msgbox). Wie kan me helpen? Willen jullie dan ook gelijk kijken bij de "For" loop, want die is volgens mij ook niet goed:

Private Sub Command1_Click()
Dim Text1 As Single
If (Text1 > 10 Or Text1 < 1) Then Text1 = MsgBox("Typ iets in van 1 tot 10", vbCritical, "Error!") Else
For Text1 = 1 To Text1
Beep
Next Text1
End Sub
 
Private Sub Command1_Click()
piepjes Text1.Text
End Sub
Function piepjes(ByVal iAantal As String)
If IsNumeric(iAantal) = True Then ' Is het een getal?
If iAantal < 1 Or iAantal > 10 Then ' Tussen 1 en 10.
MsgBox "Een getal tussen 1 en 10!", , "Fout!"
Else
Do Until i = 5 'Doe de piepjes t/m 5
i = i + 1
Beep ' Piepjes
Loop
End If
Else
MsgBox "Vul een getal in!", , "Fout!"
End If
End Function

Er is echter 1 maar'tje. Je kan Beep() niet in een lus doen. Dit kan je het best oplossen met een Timer. :confused:
 
Geplaatst door computernerd

Private Sub Command1_Click()
Dim Text1 As Single
If (Text1 > 10 Or Text1 < 1) Then Text1 = MsgBox("Typ iets in van 1 tot 10", vbCritical, "Error!") Else
For Text1 = 1 To Text1
Beep
Next Text1
End Sub

Dit zal nooit werken omdat je in je For Loop 2x dezelfde variable gebruikt. Probeer dit eens:

Private Sub Command1_Click()
Dim Text1,Teller As Single
If (Text1 > 10 Or Text1 < 1) Then Text1 = MsgBox("Typ iets in van 1 tot 10", vbCritical, "Error!") Else
For Teller = 1 To Text1
Beep
Next Teller
End Sub
 
Geplaatst door Ventrue15

Dit zal nooit werken omdat je in je For Loop 2x dezelfde variable gebruikt. Probeer dit eens:

Correctie: Beep() kan je niet gebruiken in een lus. :rolleyes:
 
Dan nog, ik krijg (zelfs als ik een cijfer tussen de 1 en 10 invoer) de popup: voer iets in tussen de 1 en 10.
 
Hmm vaag, ik weet niet hoe het komt.

Maar ik heb wel de code geupdate:
Private Sub Command1_Click()
piepjes Text1.Text
End Sub
Function piepjes(ByVal iAantal As String)
If IsNumeric(iAantal) = True Then ' Is het een getal?
If iAantal < 1 Or iAantal > 10 Then ' Tussen 1 en 10.
MsgBox "Een getal tussen 1 en 10!", , "Fout!"
Else
Do Until i = iAantal
i = i + 1
Beep ' Piepjes
Loop
End If
Else
MsgBox "Vul een getal in!", , "Fout!"
End If
End Function
 
Code:
Private Sub Command1_Click()
Dim i As Single
i = Text1.Text
If (i > 10 Or i < 1) Then X = MsgBox("Type iets van 1 tot 10", vbCritical, "Error") _
Else
For i = 1 To i
MsgBox i 
' Beep
Next i
End Sub

Alleen text1 gaat niet werken, je wil weten wat er in text1 staat dus text1.text

Beep in een loop gaat inderdaad niet zo werken omdat dat zo snel gaat dat je er maar 1 hoort. Een wait routine achter je beep zou dan misschien helpen (nu heb ik m dus even vervangen door msgbox i)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan