duplicated values in generating password

  • Thread starter Thread starter Ann
  • Start date Start date
A

Ann

I have a module that generates password. At first I
generate password for 50 users at one time, there is no
duplicated password, but then later if there is a new
user comes in, we need to generate a password
individually, but I found every time I do this, it
duplicates with another user's password in the table,
don't know why.
Here is the code:
--------------------
pwLength = 8

For i = 1 To pwLength

ChooseType = Round(Rnd)

If ChooseType = 1 Then
'Number'
pwStore = Chr(Int((57 - 48 + 1) * Rnd + 48))
Else
'Alphabet'
'Lower Case'
pwStore = Chr(Int((122 - 97 + 1) * Rnd + 97))

End If

pw = pw & pwStore

Next i

MsgBox "Password generated = " & pw

'append to tblLobUsers table username and password


username = Me.ComLobReg

DoCmd.RunSQL "Insert into UserPass (Username, Password)
Values(" & username & ", '" & pw & "')"
 
Before You add new password for new user, try to find this
password in the UserPass table. Loop your sub to generate
passwords while password not exist.

'example: function to detect password exist
Function PasswdExist(strPasswd) as Boolean
Dim rst as Recordset
Dim qwe as String

qwe = "SELECT * FROM UserPass WHERE ((UserPass.Password)
= """ & & "");"
set rst = Currentdb.OpenRecordset(qwe)
If rst.RecordCount > 0 then
PasswdExist = True
Else
PasswdExist = False
End If
rst.Close
set rst = Nothing

End Function


You can use DCount() function too.
 
You need to "seed" the random number generator by executing the Randomize
statement (once) before you start using Rnd(). Otherise, Rnd() can/will
return the same sequence of numbers, the next time.

But even when you have done that, "radom" does not mean "unique"! There is a
non-zero chance that the best random number generator in the world, could
generate the random numbers: 1, 1, 1 and 1!

So you will still need to add some code to check that a proposed new
password has not already been used. Do a DLookup() on the UserPass table.
Check online help for how to use DLookup().

HTH,
TC
 
Back
Top