Avatar billede teknikeren Nybegynder
12. januar 2003 - 10:06 Der er 12 kommentarer og
1 løsning

Mærkeligt tal

Hej X-perter...
Jeg har en kode der hedder:

Private Sub Timer2_Timer()
Label2.Caption = Label2.Caption + lblpengeind
Label2.Caption = Format(Label2.Caption, "###,###,###")
End Sub

Og i Label 2 står der 300.000
I lblpengeind står der 30.000

Men når den udfører det står der pludselig 30.000.030.000 i label 2!
Hvorfor gør den det? Og hvordan retter jeg det?
Avatar billede kaffe Nybegynder
12. januar 2003 - 10:13 #1
Det gør den fordi det er to strenge du lægger sammen.

Label2.Caption = clng(label2.caption) + clnt(lblpengeind)

skulle gøre det
Avatar billede kaffe Nybegynder
12. januar 2003 - 10:14 #2
clnt(lblpengeind) = clng(lblpengeind)
;)
Avatar billede teknikeren Nybegynder
12. januar 2003 - 10:17 #3
Så får jeg fejlen:

Sub or Function not defined...
Avatar billede kaffe Nybegynder
12. januar 2003 - 10:20 #4
hvor stopper den henne?
Avatar billede scb Praktikant
12. januar 2003 - 10:24 #5
Det er fordi du lægger 2 strenge sammen, først skal "." fjernes.

Dim X
Dim Sum1, Sum2

Sum1 = ""
Sum2 = ""

'Fjern . i Label1
For X = 1 To Len(Label1.Caption)
If Mid(Label1.Caption, X, 1) <> "." Then Sum1 = Sum1 & Mid(Label1.Caption, X, 1)
Next X

'Fjern . i Label2
For X = 1 To Len(Label2.Caption)
If Mid(Label2.Caption, X, 1) <> "." Then Sum2 = Sum2 & Mid(Label2.Caption, X, 1)
Next X

Label2.Caption = Val(Sum1) + Val(Sum2)
Label2.Caption = Format(Label2.Caption, "###,###,###")


(Label1.Caption skal du skifte til lblpengeind

-SCB
Avatar billede scb Praktikant
12. januar 2003 - 10:28 #6
Sætte denne del ind i din Timer2 sub:

Dim X
Dim Sum1, Sum2

Sum1 = ""
Sum2 = ""

'Fjern . i lblpengeind
For X = 1 To Len(lblpengeind)
If Mid(lblpengeind, X, 1) <> "." Then Sum1 = Sum1 & Mid(lblpengeind, X, 1)
Next X

'Fjern . i Label2
For X = 1 To Len(Label2.Caption)
If Mid(Label2.Caption, X, 1) <> "." Then Sum2 = Sum2 & Mid(Label2.Caption, X, 1)
Next X

Label2.Caption = Val(Sum1) + Val(Sum2)
Label2.Caption = Format(Label2.Caption, "###,###,###")


-SCB
Avatar billede Slettet bruger
12. januar 2003 - 10:37 #7
scb: Ville det ikke være nemmere med Replace(Label2.Caption, ".", "") for at fjerne punktummet?
Avatar billede scb Praktikant
12. januar 2003 - 10:51 #8
Jo, men f.eks VB5.0 understøtter ikke funktionen.
Avatar billede Slettet bruger
12. januar 2003 - 10:54 #9
Okay. Det vidste jeg så ikke før nu.  :o)
Avatar billede martin_moth Mester
12. januar 2003 - 12:47 #10
Hvad med bare at bruge val() ?

Label2.Caption = val(Label2.Caption) + val(lblpengeind)

/Martin
Avatar billede scb Praktikant
12. januar 2003 - 12:53 #11
Så får du kun tallet til det første punktum.
300.000 bliver til 300
300.123 bliver til 300
Avatar billede martin_moth Mester
13. januar 2003 - 11:04 #12
Nå - så kan du jo lave det på molbo-metoden, ved først at fjerne alle punktummer, derefter lægge tallene uden punktummer sammen (husk val()) og derefter sætte punktummer ind i resultatet :o)

Eller helt lade være med at bruge de åndsvage punktummer ;o)
Avatar billede martin_moth Mester
13. januar 2003 - 11:05 #13
Ahh - det har scb allerede vist i sit svar - so sorry :o)
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