Avatar billede lillehans Nybegynder
01. december 2005 - 12:23 Der er 24 kommentarer og
1 løsning

hjælp til if else

Der er gået kludder i min kode. Den bliver ved at gå videre til næste if og gennemløber så samtlige ifer...

Private Sub Command2_Click()
On Error Resume Next
Dim facit As Integer
Dim facit1 As Integer
facit = Val(Text5.Text)
facit1 = Val(Text7.Text)

If lstopgave.Text = 1 Then
If (facit = 7) And (facit1 = 0) Then
MsgBox "Flot klaret! Gå bare videre"
Else
MsgBox "Kun næsten rigtigt..., prøv bare igen!"
End If
End If

If lstopgave.Text = 2 Then
If (facit = 9) And (facit1 = 0) Then
MsgBox "Flot klaret! Gå bare videre"
Else
MsgBox "Kun næsten rigtigt..., prøv bare igen!"
End If
End If
Avatar billede dragonknight Juniormester
01. december 2005 - 12:26 #1
If lstopgave.Text = 1 Then
            If (facit = 7) And (facit1 = 0) Then
                      MsgBox "Flot klaret! Gå bare videre"
            Else
                      MsgBox "Kun næsten rigtigt..., prøv bare igen!"
            End If
End If

Der mangler en Else clause til den første If.
Avatar billede dragonknight Juniormester
01. december 2005 - 12:28 #2
If lstopgave.Text = 2 Then
            If (facit = 9) And (facit1 = 0) Then
                      MsgBox "Flot klaret! Gå bare videre"
            Else
                      MsgBox "Kun næsten rigtigt..., prøv bare igen!"
            End If
End If

Vend dig til at lave det på denne måde, ellers er det let at miste overblikket.
Avatar billede lillehans Nybegynder
01. december 2005 - 12:32 #3
Er der ikke en else clause - blot ikke indrykket?
Avatar billede dragonknight Juniormester
01. december 2005 - 12:41 #4
For hver If ---- Then skal der være en Else.
Avatar billede lillehans Nybegynder
01. december 2005 - 12:48 #5
meningen er if lstopgave.text = 2 og facit = 9 og facit = 1 then ...
ellers vis mig venligst lige hvor else skal sættes ind, tak!
Avatar billede lillehans Nybegynder
01. december 2005 - 12:50 #6
den gennemløber fint hele if lstopgave.text = 1 , men herefter tager den fat på de 9 øvrige listebetingelsr.
Avatar billede lillehans Nybegynder
01. december 2005 - 12:56 #7
dette giver samme problem
If (lstopgave.Text = 1) And (facit = 7) And (facit1 = 0) Then
MsgBox "Flot klaret! Gå bare videre"
Else
MsgBox "Kun næsten rigtigt..., prøv bare igen!"
End If
Avatar billede dragonknight Juniormester
01. december 2005 - 12:58 #8
Du skal ikke hellere bruge en

For next loop på lstopgave.text. Det er vel meningen, at den skal checke for svar i 9 spørgsmål ?
Avatar billede dragonknight Juniormester
01. december 2005 - 12:59 #9
Hvor kommer værdien på lstopgave.text fra ? ?
Avatar billede lillehans Nybegynder
01. december 2005 - 13:08 #10
fra denne kode:
Private Sub Form_Load()
With lstopgave
.AddItem "Vælg her"
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.AddItem "9"
.AddItem "10"


End With
lstopgave.ListIndex = 0

End Sub
Avatar billede kabbak Professor
01. december 2005 - 13:11 #11
If lstopgave.Text = "1" Then
Avatar billede dragonknight Juniormester
01. december 2005 - 13:14 #12
Så forstår jeg ikke hvorfor den går videre til de 9 andre, for lstopgave.Text har jo kun den ene værdi, som der er valgt i listboksen, derfor kan
If lstopgave.Text = 2 Then
If (facit = 9) And (facit1 = 0) Then
MsgBox "Flot klaret! Gå bare videre"
Else
MsgBox "Kun næsten rigtigt..., prøv bare igen!"
End If
End If
Jo ikke være sand, hvis 1 er valgt
Avatar billede lillehans Nybegynder
01. december 2005 - 13:27 #13
>kabbak Det hjalp ikke noget.
>dragonknight Det er som om den "hænger". Men måske er koden grundlæggende forkert.
Meningen er jo, at den skal vælge fra listen fx 1 og herefter skal man kunne gå videre til opgave fx 9. Men hvordan skal koden så se ud?
Avatar billede dragonknight Juniormester
01. december 2005 - 13:36 #14
Hvis der er valgt 1, så kan If lstopgave.Text = "2" jo ikke være sandt.

Det er forøvrigt korrekt hvad kabbak skrev. lstopgave.Text er en streng, og derfor skal der være " " omkring tallet 1.
Avatar billede overchord Nybegynder
01. december 2005 - 13:52 #15
Det ville nok vaere strukturelt nemmere at overskue hvis du brugte en Case istedet med saa mange valg
Select Case lstopgave.text
  Case "1"
      If (facit = 9) And (facit1 = 0) Then
          ...
      End if
  Case "2"
osv.
Avatar billede lillehans Nybegynder
01. december 2005 - 13:53 #16
Private Sub Form_Load()
With lstopgave
.AddItem "Vælg her"
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.AddItem "9"
.AddItem "10"
End With
lstopgave.ListIndex = 0
End Sub

Private Sub lstopgave_Click()
Når jeg vælger listnr. er det så ikke korrekt, at den skal stå lstopgave_click?
Avatar billede lillehans Nybegynder
01. december 2005 - 14:51 #17
>overchord Det var en god idé. Nu virker det, sgu! Lav lige et svar.
>dragonknight Lav lige et svar på din hjælp.
Det kniber åbenbart med min logik, men jeg gider ikke rode mere med if/else i denne omgang. Mit problem er løst nu.
Avatar billede dragonknight Juniormester
01. december 2005 - 17:18 #18
joda.  ;-)
Avatar billede lillehans Nybegynder
01. december 2005 - 22:32 #19
>dragonknigth Jeg har ikke glemt dig, men som du ser, har jeg forhøjet til 60. Det var meningen, at du skulle dele med overchord, men han har ikke svaret. Hvis jeg accepterer nu, får du 60 point. Det under jeg dig gerne, men alligevel..., ik?
Hvis du ikke hører noget i løbet af et par dage, så bare lav en rykker her på siden.
Avatar billede dragonknight Juniormester
02. december 2005 - 00:15 #20
Vi venter bare på over  ;-)
Avatar billede overchord Nybegynder
02. december 2005 - 10:26 #21
saa kunne jeg vaere her igen :)
Godt at hoere det virker. Farer selv nogle gange vild i mange if-saetninger :-)
Avatar billede lillehans Nybegynder
02. december 2005 - 11:45 #22
PIS!!! Så gjorde jeg det alligevel forkert. Undskyld overchord! Forhåbentlig spørger jeg snart om noget igen, så skal du nok få dine points. Jeg kan ikke redde den nu.
Avatar billede overchord Nybegynder
02. december 2005 - 14:05 #23
Lol det er skam helt ok - jeg overlever nok ;-)
Avatar billede dragonknight Juniormester
03. december 2005 - 22:30 #24
Vi kan dele. kik her: http://www.eksperten.dk/spm/669430
Avatar billede lillehans Nybegynder
04. december 2005 - 01:22 #25
Tak, dragonknight!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester