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,
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( = "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
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,
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( = "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