problemmer med if else...

Tags:    visual-basic

<< < 12 > >>
User
Bruger #956 @ 17.07.09 18:22
Hej.

Jeg er helt ny i emnet Visual Baisc.
Er lige startet med at læse på det for 3 dage siden.
Har lånt bogen. Start på visual basic 6.0

Har læst frem til hvordan man gemmer filer.
Synes det har været rigtig meget at læse så for ikke at glemme det er jeg gået igang med at prøve at lave mit eget lille budget program.
Da har jeg en række lister hvor jeg vil have en til at skrive udgifter i som tekst og så alle måneder hvor du taster udgifter i kr pr måned, men har lige set mig blind på det tror jeg så har brug for lidt hjælp til at komme videre.
Altså hele designet har jeg mere eller mindre på plads.
Så har jeg nogle variabler som hedder:

Dim jan As Integer
Dim feb As Integer
Dim mar As Integer
Dim apr As Integer
Dim maj As Integer
Dim jun As Integer
Dim jul As Integer
Dim aug As Integer
Dim sep As Integer
Dim okt As Integer
Dim nov As Integer
Dim dec As Integer

Så når man trykker på min knap som hedder: tilfoej_udgift
har jeg følgende kode

Private Sub tilfoej_udgift_Click()
If udgifttxt.Text = "" Then
MsgBox "Du skal indtaste navnet på din udgift før den kan tilføjes"
Else
udgiftlst.AddItem udgifttxt.Text
jan = InputBox("skriv udgiften for Januar måned")
feb = InputBox("skriv udgiften for Februar måned")
mar = InputBox("skriv udgiften for Marts måned")
apr = InputBox("skriv udgiften for April måned")
maj = InputBox("skriv udgiften for Maj måned")
jun = InputBox("skriv udgiften for Juni måned")
jul = InputBox("skriv udgiften for Juli måned")
aug = InputBox("skriv udgiften for August måned")
sep = InputBox("skriv udgiften for September måned")
okt = InputBox("skriv udgiften for Oktober måned")
nov = InputBox("skriv udgiften for November måned")
dec = InputBox("skriv udgiften for December måned")
udgifttxt.Text = ""
End If
End Sub


Og sjovt nok men det virker også

Det jeg så gerne ville have var noget i still med

Private Sub tilfoej_udgift_Click()
If udgifttxt.Text = "" Then
MsgBox "Du skal indtaste navnet på din udgift før den kan tilføjes"
Else
udgiftlst.AddItem udgifttxt.Text
jan = InputBox("skriv udgiften for Januar måned")
if jan = "" then jan = "0" next


Altså sagt med andre ord.

Hvis du vælger ikke at indsætte nogen kr i januar så bliver det automatisk til 0 kr og den går videre...
Men det virker ikke.

Der efter vil jeg gerne have mine værdier som bliver intastet i alle måneder tilføjet til de enkelte lister jeg har lavet.
Hvilken kode skal jeg bruge til det?

Jeg håber der er nogen som kan forklare mig det på et virkelig begynder niveau



13 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
nu har jeg ingen forstand på VB.. men kan du så ikke lave en funktion

if jan = ""
{ jan = 0 }
det er sådan jeg ville gøre nogenlunde i php, og ved ikke om det kan bruges i VB, men i php arbejder man self også med Array, ved ikke hvad det er her :)



Kasper, VB har intet med php at gøre ;)



er det ik bare:
jan = InputBox("skriv udgiften for Januar måned")
if jan = "" then jan = "0"

?

kan ik lige se nogen fejl, har dog ik kodet vb6 i en del år nu..

edit.
evt:
udgiftlst.AddItem("Jan: " & jan) på efter din if.



Indlæg senest redigeret d. 17.07.2009 18:54 af Bruger #3427
User
Bruger #956 @ 17.07.09 19:06
Har selv prøvet

jan = InputBox("skriv udgiften for Januar måned")
if jan = "" then jan = "0"

har også prøvet

jan = InputBox("skriv udgiften for Januar måned")
if jan = "" then jan = "0" else
og så fortsætter min kode med de næste måneder

har også lige prøvet
udgiftlst.AddItem("Jan: " & jan)

men lige meget hvad får jeg
Run-time error 13
type mismatch

men hvis jeg fjerner min linje og kun har

udgiftlst.AddItem udgifttxt.Text
jan = InputBox("skriv udgiften for Januar måned")
feb = InputBox("skriv udgiften for Februar måned")

osv osv...

Så kører den fint igemmen så længe jeg taster nogle tal jo mindre jeg ikke taster nogle tal så går den igen istå :S




Kasper, VB har intet med php at gøre ;)


nej det ved jeg skam godt, men kunne godt være at det lignede lidt hinanden :D

og som kennteh siger, hvis det er rigtigt, så er det jo lidt osm PHP, på den måde koden er :)



kan du ikke lave standard, så der står i forvejen 0 når man åbner programmet, og hvis man så ikke vil ændre noget så er den jo allerede sat til 0 ;)?

ved ikke hvordan man gør men det er da et forslag hvordan du måske kunne løse problemet.



hvad siger den hvis du skriver:
jan = InputBox("skriv udgiften for Januar måned")
msgbox(jan)



User
Bruger #956 @ 18.07.09 09:02
hvis jeg indtaster et tal så fortæller msgbox mig tallet. Hvis jeg ikke indtaster noget får jeg igen.

Run-time error'13':

Type mismatch



jan = InputBox("skriv udgiften for Januar måned")
if (jan = 0 or jan = "") then jan = "0"
msgbox(jan)

hvad med den?



User
Bruger #956 @ 18.07.09 10:10
Det vil den bare slet ikke.
Uanset om jeg nu skriver et tal i den eller lader den stå tom så får jeg samme fejl.

Som sagt er ret ny til det her så prøv lige at forklare mig linjen.

if (jan = 0 or jan = "") then jan = "0"
msgbox(jan)

Mit gæt ville være linjen skulle være
if jan = "0" or jan = "" then jan = "0"
msgbox (jan)


hvorfor skal det i parantes og hvorfor uden ""



<< < 12 > >>
t