MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Sistema Travando - Senha Aleatoria (MS Access)

    avatar
    DiogenesSousa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 29/01/2018

    [Resolvido]Sistema Travando - Senha Aleatoria (MS Access) Empty [Resolvido]Sistema Travando - Senha Aleatoria (MS Access)

    Mensagem  DiogenesSousa 9/2/2018, 01:44

    Pessoal estou com um problema, esse código abaixo é para gerar senhas aleatórias. Porém quando chega a 117 registro o sistema trava.

    Option Compare Database

    Sub geraSenha()
       Dim tamanhoSenha As Integer
       Dim codigo As Integer
       Dim soma As Integer
       Dim senha As String
       Dim booOk As Boolean
       Dim rs As Recordset
       
       tamanhoSenha = txtTamanhoSenha
       booOk = False
       senha = ""
       codigo = 0
       soma = 0
       
       Dim Letra(22)
       Letra(0) = "A"
       Letra(1) = "B"
       Letra(2) = "C"
       Letra(3) = "D"
       Letra(4) = "E"
       Letra(5) = "F"
       Letra(6) = "G"
       Letra(7) = "H"
       Letra(Cool = "I"
       Letra(9) = "J"
       Letra(10) = "K"
       Letra(11) = "M"
       Letra(12) = "N"
       Letra(13) = "O"
       Letra(14) = "P"
       Letra(15) = "Q"
       Letra(16) = "R"
       Letra(17) = "S"
       Letra(18) = "T"
       Letra(19) = "U"
       Letra(20) = "V"
       Letra(21) = "X"
       Letra(22) = "Z"
       
       Do While booOk = False
           Do While Len(senha) < tamanhoSenha
               codigo = Int(Rnd * 22) + 1
               
               If InStr(1, senha, Letra(codigo)) = 0 Then
                   soma = soma + codigo
                   senha = senha & Letra(codigo)
               End If
           Loop
           
           Set rs = CurrentDb.OpenRecordset("SELECT COUNT(codigo) AS c FROM tblSenhas WHERE soma = " & soma & "")
           
           If rs!c = 0 Then
               booOk = True
               
               Dim rs1 As Recordset
               Set rs1 = CurrentDb.OpenRecordset("tblSenhas")
               rs1.AddNew
                   rs1("senha") = senha
                   rs1("soma") = soma
               rs1.Update
               rs1.Close
               
               txtSenhaGerada = senha
               
       
           End If
           
           codigo = 0
           soma = 0
           senha = ""
       Loop
    End Sub


    Private Sub btnGerar_Click()
       Call geraSenha
       Me.contador = DCount("senha", "tblSenhas")
    End Sub


    Desda já agradeço!
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Sistema Travando - Senha Aleatoria (MS Access) Empty Re: [Resolvido]Sistema Travando - Senha Aleatoria (MS Access)

    Mensagem  CassioFabre 9/2/2018, 09:36

    Bom dia,

    A função rnd() não se lembra quais combinações ela fez anteriormente. Ela vai ficar randomizando até encontrar uma combinação que satisfaça o critério da soma. Então, claro, à medida que vai se gerando senhas, a quantidade de combinações disponíveis diminui. O rnd() vai gerar uma senha com a quantidade de caracteres que voce determinou, e se esses caracteres já estiverem na tabela, ele vai gerar aleatoriamente outra combinação e se acontecer a mesma coisa, ele vai gerar outra combinação... sucessivamente até achar uma que atenda. O problema é que ele nao sabe quais senhas já gerou, então ele pode fazer uma combinação AB e nao estar disponível, na segunda tentativa fazer BC e não estar disponível, na terceira fazer BA e também não vai estar, e assim sucessivamente até encontrar uma combinação. É claro ver que quando se tem poucas combinações disponíveis, esse processo pode demorar demais pra ser feito. O correto seria deixar o programa rodar até que encontre a combinação, e isso pode demorar bastante. Como alternativa, voce pode alterar a quantidade de caracteres da senha.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    DiogenesSousa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 29/01/2018

    [Resolvido]Sistema Travando - Senha Aleatoria (MS Access) Empty Re: [Resolvido]Sistema Travando - Senha Aleatoria (MS Access)

    Mensagem  DiogenesSousa 9/2/2018, 15:53

    Valeu CassioFabre, obrigado pela explicação!
    avatar
    eudeslf
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 03/08/2020

    [Resolvido]Sistema Travando - Senha Aleatoria (MS Access) Empty Cadastro de usuario

    Mensagem  eudeslf 13/8/2022, 21:31

    Como crio formulário de cadastro de usuário mostrando uma senha aleatória no banco de dados.

    Conteúdo patrocinado


    [Resolvido]Sistema Travando - Senha Aleatoria (MS Access) Empty Re: [Resolvido]Sistema Travando - Senha Aleatoria (MS Access)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 22:35