Mostrando las entradas con la etiqueta VB. Mostrar todas las entradas
Mostrando las entradas con la etiqueta VB. Mostrar todas las entradas

lunes, mayo 14, 2012

Validación del NIT

Este es otro código que he conseguido y lo paso para los usos que les convengan.
Es el código para VB para la validación del Número de Identificación Tributaria NIT de Guatemala.

 
Public Function ValidaNit(ByVal NIT As String) As Boolean
    Dim POS As Integer

    Dim Correlativo As String

    Dim DigitoVerificador As String

    Dim Factor As Integer

    Dim Suma As Integer = 0

    Dim Valor As Integer = 0

    Dim X As Integer

    Dim xMOD11 As Double = 0

    Dim S As String = Nothing


    ValidaNit = False


    Try
        POS = NIT.IndexOf("-")
        If POS = 0 Then Exit Function
        Correlativo = NIT.Substring(0, POS)

        DigitoVerificador = NIT.Substring(POS + 1)
        Factor = Correlativo.Length + 1

        For X = 0 To (NIT.IndexOf("-") - 1)
            Valor = Convert.ToInt32(NIT.Substring(X, 1))

            Suma += (Valor * Factor)

            Factor -= 1
        Next


        xMOD11 = (11 - (Suma Mod 11)) Mod 11

        S = Convert.ToString(xMOD11)


        If (xMOD11 = 10 And DigitoVerificador = "K") Or (S = DigitoVerificador) Then
         ValidaNit = True

        End If


    Catch ex As Exception

        MessageBox.Show(ex.Message, "Validando NIT", MessageBoxButtons.OK, _
                        MessageBoxIcon.Exclamation)
    End Try
End Function

 Esta función funciona con VB Net y cambiandole un par de cositas tambien con vb 6 y VBA.

Devuelve un falso cuando el NIT no sea correcto

miércoles, noviembre 04, 2009

Permitir solo entrada de numeros en campo

Este sub se guarda en un modulo y se llama en el evento KeyPress del Textbox y sirve para permitir unicamente la entrada de numeros, se llama desde el texbox asi:

Numeros (Me, e, True)

El Parametro booleano del sub, sirve para permitir o no la entrada del punto decimal.

Codigo

Public Sub Numero (ByVal Sender As Object, _
Byval e As System.Windows.Forms.KeyPressEventArgs, _
Optional ByVal Dec as Boolean = True)

Dim K as Short = Asc(e.KeyChar)

Select Case K
Case 8, 13, 27
K = K
Case 48 To 57
K = K
Case 46
If Dec = True Then
K = K
Else
K = 0
End If
Case Else
K = 0
End Select

e.KeyChar = Chr(K)
If K = 0 Then e.Handled = True
End Sub