Eduardo y sus cosillas del .net

Aquí se escribe y se discute de programación para trabajadores autonomos y pequeñas empresas.

This Blog

Syndication

Search

Community

Email Notifications

Archives

Referencia Microsoft

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

 

Published 16/11/2007 16:22 por Eduardo Ortega
Comparte este post:

Comentarios

# University Update-Visual Basic-Control para validar N??mero Seguridad Social Espa??a en Visual Basic@ Saturday, November 17, 2007 10:48 PM

PingBack desde  University Update-Visual Basic-Control para validar N??mero Seguridad Social Espa??a en Visual Basic

# re: Control para validar Número Seguridad Social España en Visual Basic@ Monday, November 19, 2007 3:22 PM

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.

# re: Control para validar Número Seguridad Social España en Visual Basic@ Monday, November 19, 2007 3:47 PM

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

# re: Control para validar Número Seguridad Social España en Visual Basic@ Tuesday, November 20, 2007 9:19 AM

Genial.

LLevaba mucho tiempo buscando una rutina de validación de los nº de seg. social...

Perfecto.

by Gorrion

# re: Control para validar Número Seguridad Social España en Visual Basic@ Thursday, December 20, 2007 2:21 AM

necesito para saber si el gestor me dio de baja

by ruben dario auz garcia

# re: Control para validar Número Seguridad Social España en Visual Basic@ Thursday, December 20, 2007 7:14 AM

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