|
|
|
|
|
Dicas
|
|
Visual Basic (Validações)
|
|
|
Título da Dica: Validar Conta-Corrente Bancária
|
|
|
|
Postada em 3/10/2003 por ^HEAVY-METAL^
'Atenção: a conta-corrente deve 'ser passada com 11 casas, senão 'a função retornará Falso.
Public Function ValidarContaCorrente(ByVal sConta As String) As Boolean On Error GoTo Trataerro
Dim iDigito As Integer, iDigitoVerificador As Integer, sSomaParcial As String Dim iValor As Integer, iPeso As Integer, lSomaParcial As Long, lSomaTotal As Long Dim lResult As Long, x As Long, y As Long
ValidarContaCorrente = False If IsNumeric(sConta) And Len(Trim(sConta)) = 11 Then 'Valida Modulo 10 da Conta Corrente iDigitoVerificador = CInt(Mid(Trim(sConta), 10, 1)) 'Atribui Peso aos algarismos e efetua somatória iPeso = 2 lSomaTotal = 0 For x = 9 To 5 Step -1 iValor = 0 lSomaParcial = 0 sSomaParcial = "" iValor = CInt(Mid(Trim(sConta), x, 1)) lSomaParcial = lSomaParcial + (iValor * iPeso) sSomaParcial = CStr(lSomaParcial) For y = 1 To Len(Trim(sSomaParcial)) lSomaTotal = lSomaTotal + CInt(Mid(Trim(sSomaParcial), y, 1)) Next iPeso = iPeso - 1 If iPeso < 1 Then iPeso = 2 End If Next 'Divisao e validacao Do digito Modulo 10 lResult = lSomaTotal Mod 10 If lResult = 0 Then iDigito = 0 Else iDigito = 10 - lResult End If If iDigitoVerificador = iDigito Then 'Limpar Variaveis x = 0 iPeso = 0 iValor = 0 lResult = 0 lSomaTotal = 0 iDigitoVerificador = 0
'Valida Modulo 11 da Conta Corrente iDigitoVerificador = CLng(Mid(Trim(sConta), 11, 1)) 'Atribui Peso aos algarismos e efetua somatória iPeso = 9 For x = 10 To 1 Step -1 iValor = 0 lSomaParcial = 0 iValor = CInt(Mid(Trim(sConta), x, 1)) lSomaTotal = lSomaTotal + (iValor * iPeso) iPeso = iPeso - 1 If iPeso < 2 Then iPeso = 9 End If Next 'Divisao e validacao Do digito Modulo 11 lResult = lSomaTotal Mod 11 If lResult > 9 Then lResult = 0 End If If iDigitoVerificador = lResult Then ValidarContaCorrente = True End If End If End If Exit Function
Trataerro: ValidarContaCorrente = False Msgbox Err.Description End Function
T+,
|
|
|
|
|