Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Checksiffra i personnr

Postades av 2001-01-30 09:11:00 - Mikael Dorch, i forum visual studio.NET IDE, Tråden har 3 Kommentarer och lästs av 4300 personer

Hej

Är det någon som har en snurra för att räkna
ut checksiffran i personnnr ?

Tack på förhand

Micke


Svara

Sv: Checksiffra i personnr

Postades av 2001-01-30 09:23:00 - Pelle Johansson

- klippt från Excel, men kan säkert snabbt fixas till i VB

Option Explicit

Sub Kontroll()
Dim Pnr As String
Dim Testnr As String
Dim Kontrollsumma As Integer
Dim Subtotal As Integer
Dim resten As Integer
Dim kSiffra As Integer
Dim omr As Range
Dim I
Dim X As Integer
Dim persnr As String

Set omr = Application.Intersect(Range(ActiveCell.Address), Range("pnr"))
persnr = InputBox("Ange ditt personnummer")
Range("c8").Select
ActiveCell.Formula = persnr
If Not omr Is Nothing Then
Pnr = ActiveCell.Value
End If
If (Len(Pnr) <> 11 Or InStr(Pnr, "-") <> 7) Then
OgiltigtPnr (" Skriv i formatet 550101-0101")
End If
Testnr = Left(Pnr, 6) & Mid(Pnr, 8, 3)
Kontrollsumma = 0

For I = 1 To 9 Step 2
X = 2 * Val(Mid(Testnr, I, 1))
If X >= 10 Then
Subtotal = 1 + X - 10
Else
Subtotal = X
End If
Kontrollsumma = Kontrollsumma + Subtotal
Next I

For I = 2 To 8 Step 2
Subtotal = Val(Mid(Testnr, I, 1))
Kontrollsumma = Kontrollsumma + Subtotal
Next I
resten = Kontrollsumma Mod 10
If resten = 0 Then
kSiffra = 0
Else
kSiffra = 10 - resten
End If

If kSiffra <> Val(Right(Pnr, 1)) Then
OgiltigtPnr ("Kontrollsiffran räknades ut till " & Str(kSiffra))
End If
End Sub


Svara

Sv: Checksiffra i personnr

Postades av 2001-01-30 10:07:00 - Patrik Löwendahl

VB variant:


<code>
Public Function CheckNumb(ByVal StrToCheck As String) As Boolean

'<-- Function to calculate and check integrity on a personal / organisation
'<-- number.
'<-- Returns true if valid number and false if not.
'<-- Input is a 10 digit number to be checked.

'<-- check lenght of string, if there is to few / many digits
'<-- raise an error back to the caller.

Dim sTemp As String, i As Integer
Dim bVar As Boolean, sum As Integer, temp As Integer

On Error GoTo errhandler

'<-- Chech the input and format it
If InStr(StrToCheck, "-") And Len(StrToCheck) = 11 Then
sTemp = Mid$(StrToCheck, 1, 6)
sTemp = sTemp & Mid$(StrToCheck, 8, 11)
StrToCheck = sTemp
ElseIf (Len(StrToCheck) <> 10) Or InStr(StrToCheck, "-") Then
CheckNumb = False
Exit Function
End If


'<-- Split the numbers up
'<-- and calculate them into a single sum.
'<-- Set a boolean flag to decide how to add the numbers
'<-- to the sum. should be 2x, 1x, 2x, 1x .. asf

For i = 1 To 9

If bVar Then
temp = CInt(Mid$(StrToCheck, i, 1))
bVar = Not bVar
Else
temp = 2 * CInt(Mid$(StrToCheck, i, 1))
bVar = Not bVar
End If

'<-- Check to see if the numbers calcualted was summed up to a number greater
'<-- then 10. In that case, split the numbers up.

If temp <= 9 Then
sum = sum + temp
Else
sum = ((sum + 1) + (temp - 10))
End If

Next i
sum = sum + CInt(Right$(StrToCheck, 1))


'<-- Divide the sum with 10 .. If nothing is left
'<-- number is valid.

CheckNumb = NOT ((sum Mod 10) > 0)

Exit Function
errhandler:
Call HandleError
End Function

</code>


Svara

Sv: Checksiffra i personnr

Postades av 2001-06-02 21:48:00 - Fredrik Edström

Ytterliggare ett alternativ

Private Sub Command1_Click ()
Dim i As Integer
Dim summa As Integer, produkt As Integer, tal As Integer
Dim sträng As String
sträng = Text1.Text
For i = 1 To 10
tal = Val(Left(sträng, 1))
sträng = Right(sträng, (10 - i))
If i Mod 2 <> 0 Then
produkt = 2 * tal
If produkt > 9 Then
summa = summa + 1 + (produkt - 10)
Else
summa = summa + produkt
End If
Else
summa = summa + tal
End If
Next i
If summa Mod 10 = 0 Then
Text2.Text = "OK"
Else
Text2.Text = "Fel"
End If
End Sub


Svara

Nyligen

  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 941
27 965
271 783
675
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies