04. december 2005 - 20:57Der 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
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.
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…
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
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.
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
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 ;)
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.
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
Synes godt om
Ny brugerNybegynder
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.