USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  validar titulo de eleitor
Rafael The Best
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/10/2005 08:42 hs            
pessoal, tenho a seguinte função q achei na net:
Private Function TituloOK(s As String) As Boolean
    Dim DV1 As Integer
    Dim DV2 As Integer
    Dim i As Integer
    Dim Total As Integer
    Dim Resto As Integer
    Dim Resto2 As Integer
    Dim Numero As String
   
    Numero = ""
   
    For i = Len(s) To 12
      Numero = Numero + "0"
    Next
   
    Numero = Numero + s
    TituloOK = False
   
    [txt-color=#ff0000]DV1 = ((CInt(Mid(Numero, 1, 1)) * 2) + [/txt-color]_
            (CInt(Mid(Numero, 2, 1)) * 9) + _
            (CInt(Mid(Numero, 3, 1)) * 8) + _
            (CInt(Mid(Numero, 4, 1)) * 7) + _
            (CInt(Mid(Numero, 5, 1)) * 6) + _
            (CInt(Mid(Numero, 6, 1)) * 5) + _
            (CInt(Mid(Numero, 7, 1)) * 4) + _
            (CInt(Mid(Numero, 8, 1)) * 3) + _
            (CInt(Mid(Numero, 9, 1)) * 2))
    Resto = DV1 Mod 11
   
    If Resto = 1 Then
        DV1 = 0
    Else
        If Resto = 0 Then
            If (((Mid(Numero, 10, 2)) = "01") Or ((Mid(Numero, 10, 2)) = "02")) Then
                DV1 = 1
            Else
                DV1 = 0
            End If
        Else
            DV1 = 11 - Resto
        End If
    End If
   
    DV2 = ((CInt(Mid(Numero, 10, 1)) * 4) + (CInt(Mid(Numero, 11, 1)) * 3) + (DV1 * 2))
    Resto2 = DV2 Mod 11
   
    If Resto2 = 1 Then
        DV2 = 0
    Else
        If Resto2 = 0 Then
            If (((Mid(Numero, 10, 2)) = "01") Or ((Mid(Numero, 10, 2)) = "02")) Then
                DV2 = 1
            Else
                DV2 = 0
            End If
        Else
            DV2 = 11 - Resto2
        End If
    End If
       
    If Mid(Numero, 12, 2) = (CStr(DV1) + CStr(DV2)) Then
      TituloOK = True
    End If
End Function

porém, não funciona. Esta dando erro na linha em q  está em vermlho. Não sei se é da frma que estou chamando:
call tituloOK(campo titulo_eleitor).
alguém pode me ajudar?

Rafael Carlos Martin
Desenvolvedor de WebSites e Sitemas
E-mail:rafa-martin@ibest.com.br
   
rdeletric
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 13/10/2005 09:54 hs            

Faça assim:

No form crie um textbox como text1 ( lembrando que o numero nao deve ter barras)

Função:

Private Function TituloOK(s As String) As Boolean

    Dim DV1 As Integer
    Dim DV2 As Integer
    Dim i As Integer
    Dim Total As Integer
    Dim Resto As Integer
    Dim Resto2 As Integer
    Dim Numero As String
   
    Numero = Text1
   
    For i = Len(s) To 12
      Numero = Numero + "0"
    Next
   
    Numero = Numero + s
    TituloOK = False
   
    DV1 = ((CInt(Mid(Numero, 1, 1)) * 2) + _
            (CInt(Mid(Numero, 2, 1)) * 9) + _
            (CInt(Mid(Numero, 3, 1)) * 8) + _
            (CInt(Mid(Numero, 4, 1)) * 7) + _
            (CInt(Mid(Numero, 5, 1)) * 6) + _
            (CInt(Mid(Numero, 6, 1)) * 5) + _
            (CInt(Mid(Numero, 7, 1)) * 4) + _
            (CInt(Mid(Numero, 8, 1)) * 3) + _
            (CInt(Mid(Numero, 9, 1)) * 2))
    Resto = DV1 Mod 11
   
    If Resto = 1 Then
        DV1 = 0
    Else
        If Resto = 0 Then
            If (((Mid(Numero, 10, 2)) = "01") Or ((Mid(Numero, 10, 2)) = "02")) Then
                DV1 = 1
            Else
                DV1 = 0
            End If
        Else
            DV1 = 11 - Resto
        End If
    End If
   
    DV2 = ((CInt(Mid(Numero, 10, 1)) * 4) + (CInt(Mid(Numero, 11, 1)) * 3) + (DV1 * 2))
    Resto2 = DV2 Mod 11
   
    If Resto2 = 1 Then
        DV2 = 0
    Else
        If Resto2 = 0 Then
            If (((Mid(Numero, 10, 2)) = "01") Or ((Mid(Numero, 10, 2)) = "02")) Then
                DV2 = 1
            Else
                DV2 = 0
            End If
        Else
            DV2 = 11 - Resto2
        End If
    End If
       
    If Mid(Numero, 12, 2) = (CStr(DV1) + CStr(DV2)) Then
      TituloOK = True: MsgBox "Titulo Ok"
      Else: MsgBox "Titulo Falso"
    End If

End Function

Chamar função:

 

Private Sub Command1_Click()

TituloOK Text1
End Sub

Té mais

   
Araujolin
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 13/10/2005 13:46 hs            
Observe que o procedimento dá retorno true ou false, sendo assim para usa-lo você de descrever quais ações para o resultado, então use:
 
If TituloOK(Text1.Text) = True Then
    MsgBox "Ok"
Else
    MsgBox "Não"
End If
 
Obs.: não necessariamente Msgbox, aí você coloca a ação que pretende
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página