‘03/04/2005 ver 1.0b
‘Valida el número de cuenta

Function Validar_CCC(Cuenta As String) As Boolean

Dim DC, respuesta As String

DC = Mid(Cuenta, 9, 2)
Cuenta = Mid(Cuenta, 1, 8) & Mid(Cuenta, 11)

If DC = DigitoControl(Mid(Cuenta, 1, 8)) & DigitoControl(Mid(Cuenta, 9)) Then
Validar_CCC = True
Exit Function
Else
respuesta = MsgBox(”El número de cuenta es incorrecto, verifíquelo.”, vbOKOnly + vbCritical, “Ironda”)
Validar_CCC = False
Exit Function
End If

End Function

‘03/04/2005 ver 1.0b
‘Calcula los dígitos de control de la cuenta bancaria del cliente
Function DigitoControl(Serie As String) As String

Const Pesos = “06030709100508040201″
Dim l As Long, i As Integer

For i = 1 To Len(Serie)
l = l + (Mid(Serie, Len(Serie) – i + 1, 1) * Mid(Pesos, ((i – 1) * 2) + 1, 2))
Next

Select Case 11 – (l Mod 11)
Case 11
DigitoControl = 0
Case 10
DigitoControl = 1
Case Else
DigitoControl = 11 – (l Mod 11)
End Select

End Function

4 Responses to “Validar el número de cuenta bancaria”

  1. Jorge Says:

    Te hago una consulta. Esto de generar dígitos de control de la cuenta bancaria, para donde es? para algo inventado por vos o es posta? Porque me serviría de mucho.
    Atte.
    Jorge

  2. lumbanico Says:

    En España, no sé en otros paises, el número que identifica a las cuentas bancarias está compuesto por 20 dígitos (ABCD-EFGH-IJ-KLMNÑOPQRS). Los cuatro primeros corresponden a la entidad bancaria (ABCD), los cuatro siguientes (EFGH) a la sucursal de la entidad bancaria, y los diez últimos (KLMNÑOPQRS) corresponden al número de cuenta. Y para comprobar que todos los dígitos se han introducido de forma correcta existen los dígitos de control (IJ). Estos dígitos se generan mediante unas operaciones matemáticas con los demás dígitos, de forma que si alguno de los demás dígitos no es el correcto los dígitos de control no coinciden.

    Espero que te haya quedado resuelta la duda.

  3. anfast Says:

    Estoy utilizando esta función tuya en access y va muy bien, pero tengo un problema, la he colocado al perder el foco del control y si el campo esta vacio me da error, sabes como podría solucionarlo.

    Gracias y un saludo.

  4. lumbanico Says:

    Prueba con:

    Private Sub Control_LostFocus()

    If isnull(Control) then exit sub

    –>> A continuación el código que verifica la cuenta bancaria.

    End Sub

    Lógicamente tienes que sutituir ‘Control’ por el nombre que tú le tengas dado al control. Si isnull(Control) no te funciona prueba con Control=”".


Leave a Reply