Control para validar Número Seguridad Social España en Visual Basic

Te muestro el código para validar el NASS (Número de afiliación a la
Seguridad Social) en Visual Basic .NET para Windows Form, si quieres
puedes descargarte el archivo con el control terminado que incluye
además otro para validar un DNI.

La cadena que se valida está conpuesta de doce caracteres, “aabbbbbbbbcc”, donde los dos primeros (“aa”) son el indicativo provincial, los ocho siguientes (“bbbbbbbb”) indican la cuenta de cotización de la persona, y los dos últimos (“cc”) son los dígitos de control.

Private Sub ValidarNass()

          dim strCodigo as String = Me.TextBox1.Text

‘Dos primeros dígitos de la cadena “aabbbbbbbbcc” en strCodigo
Dim a As Long = CInt(strCodigo.Text.Substring(0, 2))

‘Ultimos dos dígitos de la cadena “aabbbbbbbbcc” en strCodigo
Dim c As Long = CInt(strCodigo.Text.Substring(10, 2))
‘Digitos restantes por extraer de la cadena “aabbbbbbbbcc” en strCodigo
Dim b As Long = CInt(strCodigo.Text.Substring(2, 8))

Dim d As Long = Nothing
If b < 10000000 Then
d = b + a * 10000000
Else
d = CLng(strCodigo.Text.Substring(0, 2) & strCodigo.Text.Substring(2, 8))
End If
Dim dc As Long = d Mod 97
If dc = c Then
‘Es correcto
Me.TextBox1.BackColor = Drawing.Color.PaleGreen
Else
‘es incorrecto
Me.TextBox1.BackColor = Drawing.Color.MistyRose
End If

End Sub

 

6 comentarios en “Control para validar Número Seguridad Social España en Visual Basic”

  1. Te recomendaría que antes de nada, validaras con una expresión regular el string de entrada.

    Lo siguiente que integraras la validación dentro del evento Validating.

    Lo tercero: hacer Dim text as String = Me.TextBox1.Text y evitar repetir tantas veces Me.TextBox1.Text (que el día de mañana puede ser una fuente grande de errores).

    Y por último, si en vez de escribir código del tipo:

    ‘Dos primeros dígitos

    Dim a As Long

    Escribes en la documentación de función un prototipo de qué se analiza tal que: “aabbbbbbbb…” que un código más legible.

    Un saludo.

  2. Tienes razón Rafael en el contexto del código que he publicado en el post, pero es una adaptación, apresurada, del código del control.
    En el archivo adjunto está el control, por lo tanto cuando recupero la cadena de texto tiro de la propiedad text de manera interna.
    El NASS lo valido en cuanto pierde el foco el control, de manera inmediata y trasmito la validez cambiando el color del fondo.
    Por último agradecerte los comentarios y si quieres, hechale un vistado al adjunto y me das tú opinión.

    Un saludo

  3. Estimado Rubén:

    Si precisas saber si tú gestor te dio de baja la forma más efectiva que tienes de verificarlo es acudir a una sucursal de la Seguridad Social para que te lo verifiquen “insitu”, no obstante, últimamente la Seg.Social está comunicando las variaciones de los  cotizantes mediante carta postal, aunque puede tardar un par de meses. Si quieres más información puedes consultarlo en la web oficial: http://www.seg-social.es/Internet_1/index.htm

      Espero que te sirva. Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *