20. december 2005 - 13:39Der er
11 kommentarer og 3 løsninger
Right string
Hej,
Jeg har tallet nogle belöb. Feks 8.613,27 og 22.493,50 som skal deles op i enkelfelter da det skal bruges på et svenskt girokort. Der er et felt for hvert tal.
8.613,27 skal så på girokortet se ud sådan her: 8 6 1 3 2 7
Den skal tage hensyn til hvor mange siffrer der er. Hvis jeg bruger funktionen MID virker dette ikke. Det skal vel vären en kombination mellem MID og RIGHT men jeg ved bare ikke hvordan.
Der gik lidt koks i den forrige - her er den igen: Sub giro() Dim beløb, girobeløb beløb = "8.613,27"
girobeløb = "" For f = Len(beløb) To 1 Step -1 If InStr(".,", Mid(beløb, f, 1)) = 0 Then girobeløb = " " + Mid(beløb, f, 1) + girobeløb End If Next f End Sub
Hvert tal skal deles op i et felt for sig da det skal printes på et girokort og hver tal skal stå i en rude for sig selv
FRA HÖJRE med belöb 8.613,27. Belöbene hentes fra en database og kan väre forskellige belöb. Rude 1: 7 Rude 2: 2 Rude 3: 3 Rude 4: 1 Rude 5: 6 Rude 6: 8 Rude 7: Blank Rude 8: Blank Rude 9: Blank Rude 10: Blank
Synes godt om
Slettet bruger
21. december 2005 - 10:13#8
Hvis du har lyst kan du arbejde videre på dette:
Private Sub Kommandoknap4_Click() Dim var1 Dim var2 Dim var2a Dim var3 Dim var3a Dim var4 Dim var4a Dim var5 Dim var5a Dim var6 Dim var6a Dim var7 Dim var7a Dim var8 Dim var8a Dim var9 Dim var9a Dim var10 Dim var10a
Problemet er at hvis der er mindre end 10 variable i alt så vil den tage den til venstre og bruge den, dvs. 12345,67 = 1 1 1 1 2 3 4 5 6 7
Der skal altså bruges nogle if sætninger, men du kan jo bare sige hvis me.beløb >=10000 and me.beløb <100000 then og så sættes var5 ellers " "
Du ved, noget i den retning, det er lidt omstændigt og kan helt sikkert optimeres, men du kan sagtens få det til at virke!~)
Held og lykke....
Synes godt om
Slettet bruger
21. december 2005 - 10:15#9
P.s. der forudsættes at beløbet er Fast Format, dvs. med 2 decimaler....
Synes godt om
Slettet bruger
21. december 2005 - 10:19#10
Der skal altså bruges nogle if sætninger, men du kan jo bare sige hvis (me.beløb >=10000 er forkert..) and me.beløb <100000 then og så sættes var5 ellers " "
Synes godt om
Slettet bruger
21. december 2005 - 10:30#11
Det her må jeg hellere selv redde mig ud af!~)
Private Sub Kommandoknap4_Click() Dim var1 Dim var2 Dim var2a Dim var3 Dim var3a Dim var4 Dim var4a Dim var5 Dim var5a Dim var6 Dim var6a Dim var7 Dim var7a Dim var8 Dim var8a Dim var9 Dim var9a Dim var10 Dim var10a
var1 = Right(Me.Beløb * 100, 1) If Me.Beløb >= 0.1 Then var2a = Right(Me.Beløb * 100, 2) var2 = Left(var2a, 1) Else var2 = " " End If If Me.Beløb >= 1 Then var3a = Right(Me.Beløb * 100, 3) var3 = Left(var3a, 1) Else var3 = " " End If If Me.Beløb >= 10 Then var4a = Right(Me.Beløb * 100, 4) var4 = Left(var4a, 1) Else var4 = " " End If If Me.Beløb >= 100 Then var5a = Right(Me.Beløb * 100, 5) var5 = Left(var5a, 1) Else var5 = " " End If If Me.Beløb >= 1000 Then var6a = Right(Me.Beløb * 100, 6) var6 = Left(var6a, 1) Else var6 = " " End If If Me.Beløb >= 10000 Then var7a = Right(Me.Beløb * 100, 7) var7 = Left(var7a, 1) Else var7 = " " End If If Me.Beløb >= 100000 Then var8a = Right(Me.Beløb * 100, 8) var8 = Left(var8a, 1) Else var8 = " " End If If Me.Beløb >= 1000000 Then var9a = Right(Me.Beløb * 100, 9) var9 = Left(var9a, 1) Else var9 = " " End If If Me.Beløb >= 10000000 Then var10a = Right(Me.Beløb * 100, 10) var10 = Left(var10a, 1) Else var10 = " " End If
Det bliver en større omgang. Jeg forsøger med en sammenskrevet version her:
Rickie > Jeg går ud fra at du har en formular med 10 textbokse kalde r1, r2, r3... r10. De står således at r1 står længst til højre og r10 står længst til venstre. Du har en textbox "belob" hvor beløbet er indtastet. Prøv så dette under en knap:
Private Sub cmdOK_Click()
Dim s As String Dim i As Integer
s = Replace(Replace(Me!belob, ",", ""), ".", "")
For i = 1 To Len(s) Me("r" & i) = Mid(s, Len(s) - (i - 1), 1) Next
Jeg har desvärre ikke haft tid at kigge på det endnu men vender tilbage så hurtigt som muligt. Tak!
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.