Avatar billede lillehans Nybegynder
04. december 2005 - 20:57 Der er 15 kommentarer og
1 løsning

for to plus en tæller

Jeg forsøger 3 gange at spørge om en alder. For hver gang jeg spørger skal tælleren lægge 1 til.
Jeg troede, at denne kode kunne klare det, men det kunne den ikke. Hvad har jeg gjort galt?

Private Sub Command8_Click()
Dim alder As Integer
Dim taeller As Integer
alder = Val(Text2.Text)
For taeller = 1 To 3
If alder >= 18 Then
MsgBox "Du må stemme ved næste valg. Det var gangnr. " & taeller

Exit Sub
End If
Next
MsgBox "du må ikke stemme. Det var gangnr. " & taeller

End Sub
Avatar billede sjh Nybegynder
04. december 2005 - 21:05 #1
fatter ikke lige din point med For...Next

  alder = Val(Text2.Text)
  If alder < 18 Then
    MsgBox "Du må stemmer om " & (18 - 16) & " år."
      Else
    MsgBox "Du må stemmer ved næste valg. "
  End If
Avatar billede sjh Nybegynder
04. december 2005 - 21:05 #2
alder = Val(Text2.Text)
  If alder < 18 Then
    MsgBox "Du må stemmer om " & (18 - alder) & " år."
      Else
    MsgBox "Du må stemmer ved næste valg. "
  End If
Avatar billede lillehans Nybegynder
04. december 2005 - 21:33 #3
sjh de er ikke nogen pointe i at spørge 3 gange. Jeg forsøger blot at lære noget om løkker og må så selv prøve at konstruere noget jeg kan forstå.
Jeg vil derfor gerne have lov at spørge 3 gange, så jeg kan se om tælleren virker både når alder er 18 og derover og under 18.
Avatar billede lillehans Nybegynder
04. december 2005 - 22:50 #4
Jeg har tænkt lidt mere over, om der alligevel ikke skulle være en pointe i mit lille program.
I stedet for at spørge om alder i forbindelse med valgret, kunne man jo spørge om, hvorvidt man ville tage ”denne kvinde til ægte”, der står ved siden af én. Man skal svare ja 3 gange efter hinanden, og så skal programmet jo kunne holde øje med, hvor mange gange der er spurgt, ikke sandt? Så.. der er altså alligevel lidt ræson i tingene…
Avatar billede kabbak Professor
04. december 2005 - 23:16 #5
Dim taeller As Integer

Private Sub Command8_Click()

Dim alder As Integer
alder = Val(Text2.Text)
If alder >= 18  and taeller  < 4Then
taeller = taeller +1
MsgBox "Du må stemme ved næste valg. Det var gangnr. " & taeller
Exit Sub
end if
MsgBox "du må ikke stemme. Det var gangnr. " & taeller
taeller = 0
End Sub

noget i den retning.
taeller skal dimmes uden for sub, ellers glemmer den den igen
Avatar billede lillehans Nybegynder
05. december 2005 - 09:20 #6
kabbak, nu gennemløbes der 3 gange, men tælleren forbliver på 0. "Det var gang nr. 0" står der hver gang.
Hvis du hjælper igen, så gør det venligt med et svar. Det er nok lidt sværere end jeg troede, så jeg giver lidt mere or hjælpen.
Avatar billede kabbak Professor
05. december 2005 - 10:18 #7
Public taeller As Integer
Avatar billede kabbak Professor
05. december 2005 - 11:20 #8
hvordan går det
Avatar billede sjh Nybegynder
05. december 2005 - 12:10 #9
ja ja.. her er en med din For...Next

Private Sub Form_Load()
Dim i As Integer
Dim intCount As Integer
  intCount = 1
  For i = 1 To 3
    Select Case i
          Case 1
            If MsgBox("Vil du giftes med .... ?", vbYesNo, i & " af " & intCount) = vbYes Then
              intCount = (intCount + 1)
            End If
          Case 2
            If MsgBox("Er du helt sikke ?", vbYesNo, i & " af " & intCount) = vbYes Then
              intCount = (intCount + 1)
            End If
          Case 3
            If MsgBox("Er du nu helt sikke ?", vbYesNo, i & " af " & intCount) = vbYes Then
              intCount = (intCount + 1)
            End If
    End Select
  Next
  If intCount = i Then
    MsgBox "Tillykke du blev gift.. fest.. :-)"
      Else
    MsgBox "Æv.. så var det ikke denne gang vi skulle drikke hjernen ud.. :-("
  End If
End Sub
Avatar billede sjh Nybegynder
05. december 2005 - 12:25 #10
kabbak det bliver ikke beder at skrive Public.. hvis alder er mindre end 18.. så kommer den jo aldrig ind og tælle.. Sikkert derfor der står 0 hvre gang ;)
Avatar billede sjh Nybegynder
05. december 2005 - 12:27 #11
og den kommer heller ikke til "Exit Sub".. og forsætter til enden.. -> taeller = 0
Avatar billede lillehans Nybegynder
05. december 2005 - 14:24 #12
hej kabbak Næh, det gjorde desværre ingen forskel...
måske har jeg ikke gjort det rigtigt?
Avatar billede lillehans Nybegynder
05. december 2005 - 14:25 #13
hej sjh Det virker perfekt og er oven i købet morsomt. Så lav venligst et svar, så du kan få points.
Jeg sidder og studerer en lærebog i VB og prøver mig frem lidt efter lidt for at forstå lidt af al det mystiske lærebogen omtaler. Så tilbage til mit egentlige problem:
Det jeg vil gøre, jf. min kode, kan det slet ikke lade sig gøre???
Hvis ja, gider du så ikke lige at amputere din kode, så den bare lige gør det, som jeg efterlyser? Jeg kan desværre ikke selv klare at beskære din kode, endnu da.
På forhånd tak.
Avatar billede sjh Nybegynder
05. december 2005 - 14:34 #14
Private Sub Command8_Click()
Dim alder As Integer
Static taeller As Integer

  alder = Val(Text2.Text)

  If taeller = 3 Then taeller = 0 ' Genstart taeller
  taeller = (taeller + 1)

  If alder >= 18 Then
    MsgBox "Du må stemme ved næste valg. Det var gangnr. " & taeller
    Exit Sub
  End If

  MsgBox "du må ikke stemme. Det var gangnr. " & taeller
End Sub
Avatar billede lillehans Nybegynder
05. december 2005 - 15:39 #15
Ja, jeg ved ikke, hvor du får det fra sjh. Tak for hjælpen. Perfekt!!!
tak for deltagelsen kabbak!
Avatar billede sjh Nybegynder
05. december 2005 - 15:46 #16
erfaring med Visual Basic i ca. 5 år.. så skulle jeg vel nok kunne klare den smule.. problemet er mere nå "Folk" ikke kan beskrive hvad det er de vil med den kode..

Du må jo huske på at man kan jo lave den samme funktion på 1000 måder og med 5 års erfaring så laver man ikke alt muligt andet skrald kode ved siden af.. :D
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