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


2 participantes

    [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada

    avatar
    DiogenesSousa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada Empty [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada

    Mensagem  DiogenesSousa Seg 29 Jan 2018, 02:50

    Boa tarde, estou com uma dificuldade em um sistema no MS Access que gera senhas aleatórias. Gostaria que o sistema não salve a senha na tabela se já existisse uma senha igual. A ideia é se houver uma senha igual, o sistema cancele o salvamento e gere uma outra senha diferente. Obs.: supondo-se que minha tabela se chame "Tabela1" e o campo que quero verificar seja o "Campo1".

    Código do modulo abaixo:

    Option Compare Database

    Function GerarSenha()
    On Error GoTo TratarErro
    Dim TamanhoSenha As Integer, Codigo As String, Novo As String

    '--------------------------------------
    'CRIA SENHA ALEATÓRIA
    '--------------------------------------

    Codigo = ""
    TamanhoSenha = Nz(Form_SenhaAleatoria.TamanhoSenha, Cool

    Dim Letra(99)

    Letra(0) = "01 "
    Letra(1) = "02 "
    Letra(2) = "03 "
    Letra(3) = "04 "
    Letra(4) = "05 "
    Letra(5) = "06 "
    Letra(6) = "07 "
    Letra(7) = "08 "
    Letra(Cool = "09 "
    Letra(9) = "10 "
    Letra(10) = "11 "
    Letra(11) = "12 "
    Letra(12) = "13 "
    Letra(13) = "14 "
    Letra(14) = "15 "
    Letra(15) = "16 "
    Letra(16) = "17 "
    Letra(17) = "18 "
    Letra(18) = "19 "
    Letra(19) = "20 "
    Letra(20) = "21 "
    Letra(21) = "22 "
    Letra(22) = "23 "
    Letra(23) = "24 "
    Letra(24) = "25 "
    Letra(25) = "26 "
    Letra(26) = "27 "
    Letra(27) = "28 "
    Letra(28) = "29 "
    Letra(29) = "30 "
    Letra(30) = "31 "
    Letra(31) = "32 "
    Letra(32) = "33 "
    Letra(33) = "34 "
    Letra(34) = "35 "
    Letra(35) = "36 "
    Letra(36) = "37 "
    Letra(37) = "38 "
    Letra(38) = "39 "
    Letra(39) = "40 "
    Letra(40) = "41 "
    Letra(41) = "42 "
    Letra(42) = "43 "
    Letra(43) = "44 "
    Letra(44) = "45 "
    Letra(45) = "46 "
    Letra(46) = "47 "
    Letra(47) = "48 "
    Letra(48) = "49 "
    Letra(49) = "50 "
    Letra(50) = "51 "
    Letra(51) = "52 "
    Letra(52) = "53 "
    Letra(53) = "54 "
    Letra(54) = "55 "
    Letra(55) = "56 "
    Letra(56) = "57 "
    Letra(57) = "58 "
    Letra(58) = "59 "
    Letra(59) = "60 "
    Letra(60) = "61 "
    Letra(61) = "62 "
    Letra(62) = "63 "
    Letra(63) = "64 "
    Letra(64) = "65 "
    Letra(65) = "66 "
    Letra(66) = "67 "
    Letra(67) = "68 "
    Letra(68) = "69 "
    Letra(69) = "70 "
    Letra(70) = "71 "
    Letra(71) = "72 "
    Letra(72) = "73 "
    Letra(73) = "74 "
    Letra(74) = "75 "
    Letra(75) = "76 "
    Letra(76) = "77 "
    Letra(77) = "78 "
    Letra(78) = "79 "
    Letra(79) = "80 "
    Letra(80) = "81 "
    Letra(81) = "82 "
    Letra(82) = "83 "
    Letra(83) = "84 "
    Letra(84) = "85 "
    Letra(85) = "86 "
    Letra(86) = "87 "
    Letra(87) = "88 "
    Letra(88) = "89 "
    Letra(89) = "90 "
    Letra(90) = "91 "
    Letra(91) = "92 "
    Letra(92) = "93 "
    Letra(93) = "94 "
    Letra(94) = "95 "
    Letra(95) = "96 "
    Letra(96) = "97 "
    Letra(97) = "98 "
    Letra(98) = "99 "
    Letra(99) = "100 "

    Randomize

    Do While Len(Codigo) < TamanhoSenha
       Novo = Letra(Int(99 * Rnd))

       If InStr(1, Codigo, Novo) = 0 Then
           Codigo = Codigo & Novo
       End If

    Loop

    GerarSenha = Codigo

    SairFunction:
    Exit Function

    TratarErro:
    MsgBox "Ocorreu um erro ao processar o comando:" & Chr(13) & Err.Description, vbCritical, " Erro " & Err.Number
    Resume SairFunction

    End Function

    Desde já agradeço a ajuda
    formiga10x
    formiga10x
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 818
    Registrado : 10/09/2013

    [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada Empty Re: [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada

    Mensagem  formiga10x Seg 29 Jan 2018, 12:57

    Coloque no final uma verificação da tabela tipo

    Código:
    If DLookUp("campo_senha","tabela_senha","campo_senha ='" & variável_senha_gerada & "'") then goto 1

    Caso a senha gerada já se encontre gravada na tabela ele retorna ao inicio do código e faz todo o procedimento novamente.


    Última edição por formiga10x em Qua 31 Jan 2018, 01:41, editado 2 vez(es)


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes
    avatar
    DiogenesSousa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada Empty Re: [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada

    Mensagem  DiogenesSousa Seg 29 Jan 2018, 14:48

    Perdão, sou novo na área e não entendi como fazer. Se possível você pode me mostra como ficaria no código abaixo?


    Option Compare Database

    Function GerarSenha()
    On Error GoTo TratarErro
    Dim TamanhoSenha As Integer, Codigo As String, Novo As String

    '--------------------------------------
    'CRIA SENHA ALEATÓRIA
    '--------------------------------------

    Codigo = ""
    TamanhoSenha = Nz(Form_SenhaAleatoria.TamanhoSenha, Cool

    Dim Letra(99)

    Letra(0) = "01 "
    Letra(1) = "02 "
    Letra(2) = "03 "
    Letra(3) = "04 "
    Letra(4) = "05 "
    Letra(5) = "06 "
    Letra(6) = "07 "
    Letra(7) = "08 "
    Letra(Cool = "09 "
    Letra(9) = "10 "
    Letra(10) = "11 "
    Letra(11) = "12 "
    Letra(12) = "13 "
    Letra(13) = "14 "
    Letra(14) = "15 "
    Letra(15) = "16 "
    Letra(16) = "17 "
    Letra(17) = "18 "
    Letra(18) = "19 "
    Letra(19) = "20 "
    Letra(20) = "21 "
    Letra(21) = "22 "
    Letra(22) = "23 "
    Letra(23) = "24 "
    Letra(24) = "25 "
    Letra(25) = "26 "
    Letra(26) = "27 "
    Letra(27) = "28 "
    Letra(28) = "29 "
    Letra(29) = "30 "
    Letra(30) = "31 "
    Letra(31) = "32 "
    Letra(32) = "33 "
    Letra(33) = "34 "
    Letra(34) = "35 "
    Letra(35) = "36 "
    Letra(36) = "37 "
    Letra(37) = "38 "
    Letra(38) = "39 "
    Letra(39) = "40 "
    Letra(40) = "41 "
    Letra(41) = "42 "
    Letra(42) = "43 "
    Letra(43) = "44 "
    Letra(44) = "45 "
    Letra(45) = "46 "
    Letra(46) = "47 "
    Letra(47) = "48 "
    Letra(48) = "49 "
    Letra(49) = "50 "


    Randomize

    Do While Len(Codigo) < TamanhoSenha
    Novo = Letra(Int(49 * Rnd))

    If InStr(1, Codigo, Novo) = 0 Then
    Codigo = Codigo & Novo
    End If

    Loop

    GerarSenha = Codigo

    SairFunction:
    Exit Function

    TratarErro:
    MsgBox "Ocorreu um erro ao processar o comando:" & Chr(13) & Err.Description, vbCritical, " Erro " & Err.Number
    Resume SairFunction

    End Function
    formiga10x
    formiga10x
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 818
    Registrado : 10/09/2013

    [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada Empty Re: [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada

    Mensagem  formiga10x Ter 30 Jan 2018, 04:33

    Tente desta forma abaixo "Lembrando que deve substituir os nomes dos campos pelo da tua tabela.
    Caso não consiga, se puder disponibilizar a(s) tabela(s) em questão será mais fácil ajudá-lo.


    Option Compare Database

    Function GerarSenha()
    On Error GoTo TratarErro
    Dim TamanhoSenha As Integer, Codigo As String, Novo As String

    '--------------------------------------
    'CRIA SENHA ALEATÓRIA
    '--------------------------------------
    1:
    Codigo = ""
    TamanhoSenha = Nz(Form_SenhaAleatoria.TamanhoSenha, Cool

    Dim Letra(99)

    Letra(0) = "01 "
    Letra(1) = "02 "
    Letra(2) = "03 "
    Letra(3) = "04 "
    Letra(4) = "05 "
    Letra(5) = "06 "
    Letra(6) = "07 "
    Letra(7) = "08 "
    Letra(Cool = "09 "
    Letra(9) = "10 "
    Letra(10) = "11 "
    Letra(11) = "12 "
    Letra(12) = "13 "
    Letra(13) = "14 "
    Letra(14) = "15 "
    Letra(15) = "16 "
    Letra(16) = "17 "
    Letra(17) = "18 "
    Letra(18) = "19 "
    Letra(19) = "20 "
    Letra(20) = "21 "
    Letra(21) = "22 "
    Letra(22) = "23 "
    Letra(23) = "24 "
    Letra(24) = "25 "
    Letra(25) = "26 "
    Letra(26) = "27 "
    Letra(27) = "28 "
    Letra(28) = "29 "
    Letra(29) = "30 "
    Letra(30) = "31 "
    Letra(31) = "32 "
    Letra(32) = "33 "
    Letra(33) = "34 "
    Letra(34) = "35 "
    Letra(35) = "36 "
    Letra(36) = "37 "
    Letra(37) = "38 "
    Letra(38) = "39 "
    Letra(39) = "40 "
    Letra(40) = "41 "
    Letra(41) = "42 "
    Letra(42) = "43 "
    Letra(43) = "44 "
    Letra(44) = "45 "
    Letra(45) = "46 "
    Letra(46) = "47 "
    Letra(47) = "48 "
    Letra(48) = "49 "
    Letra(49) = "50 "


    Randomize

    Do While Len(Codigo) < TamanhoSenha
    Novo = Letra(Int(49 * Rnd))

    If InStr(1, Codigo, Novo) = 0 Then
    Codigo = Codigo & Novo
    End If

    Loop

    If DlookUp("campo_senha","tabela_senha","campo_senha ='" & variável_senha_gerada & "'") then goto 1

    GerarSenha = Codigo

    SairFunction:
    Exit Function

    TratarErro:
    MsgBox "Ocorreu um erro ao processar o comando:" & Chr(13) & Err.Description, vbCritical, " Erro " & Err.Number
    Resume SairFunction

    End Function


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes

    Conteúdo patrocinado


    [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada Empty Re: [Resolvido]Cancelar adição de registro na tabela se a senha já tiver cadastrada

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qua 08 maio 2024, 17:32