Visual Basic - Lösning Lab 16

Option Explicit

Private Sub CommandBeräkna_Click()

'Deklaration av variabler
Dim pnr As String
Dim i As Integer
Dim mult As Integer
Dim sum As Integer

'Hämta personnumret till variabeln 'pnr'.
pnr = Text1.Text

'Ta bort '-'-tecknet
pnr = Replace(pnr, "-", "") 'Ersätter '-' med ingenting

'Initiera variabler
sum = 0
mult = 2

'Gå igenom 'pnr'
For i = 1 To Len(pnr)

Dim värde As Integer

'Ta reda på siffran
värde = Val(Mid(pnr, i, 1))

'Multiplicera med faktorn
värde = värde * mult

If värde > 9 Then
'Summera siffrornas värden, t ex 17 => 1+7=8
värde = värde - 9
End If

'Räkna upp summan
sum = sum + värde

'Ändra faktorn till nästa varv
If mult = 1 Then
mult = 2
Else
mult = 1
End If

Next i

'Justera sista siffran
Dim siffran As Integer

'Ta bort 10-tals-siffran
siffran = sum Mod 10

'Räkna ut "resten".
siffran = 10 - siffran

'Kontrollera om det blir just 10, isf ska det bli 0
If siffran = 10 Then
siffran = 0
End If

'Presentera
MsgBox "Personnumret blir " & Text1.Text & Str(siffran)

'Markera det som står i rutan
Text1.SetFocus
Call SelectPnr

End Sub

Private Sub Form_Load()

'Markera det som står i rutan
Call SelectPnr

End Sub

Private Sub SelectPnr()

'Markera det som står i rutan
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)

End Sub