Jag har en funktion som genererar ett kundnummer som skrivs in i en databas. Det jag vill göra när jag kör funktionen är att kolla att den genererar ett unikt kundnummer, alltså att kundnumret inte finns i databasen sedan tidigare. Typ...
bOk = False
While Not bOK
Set rs = connection.Execute ("SELECT strPassword FROM tblData WHERE strPassword = '" & getRandomChars(30) & "'"
If rs.EOF Then
bOk = True
'Lagra lösenordet...
End If
Wend
...som finns i den här tråden. Problemet är att jag förstår inte vad som ska hända ifall kundnumret redan finns i databasen. Hur ska jag koda för att funktionen och "databaskollen" ska köras igen?
If rs.EOF Then
bOk = True
'Lagra lösenordet...
[I]else
?????[/I]
End If
Det gör den som det är nu. I och med While/Wend-loopen.
Mao den loopar tills den hittat ett ok lösenord, ingen ide att skriva ut något eftersom man inte kommer märka att den loopar.
Men.. hmm. Jag kanske är ute och cyklar men det som gör att den ska köra funktionen som genererar ett nytt kundnummer igen finns ju inte med i while-loopen. Alltså typ ett anrop till funktionen eller liknande. Loopen kollar ju bara om kundnumret finns i databasen och om det inte gör det så läggs det nya kundnumret till. Men vad händer om kundnumret finns?
Min funktion som genrerar ett kundnummer:
function kundnummer()
Passwordeller = ""
Randomize
For i = 1 to 6
intNum = Int(10 * Rnd + 48)
intBig = Int(26 * Rnd + 65)
intSmall = Int(26 * Rnd + 97)
intRand = Int(3 * Rnd + 1)
Select Case intRand
Case 1
delPasseller = Chr(intNum)
Case 2
delPasseller = Chr(intBig)
Case 3
delPasseller = Chr(intSmall)
End Select
Passwordeller = Passwordeller & delPasseller
Next
kundnummer = Passwordeller
end function
bOk = False
While Not bOK
strNr = kundnummer()
Set rs = connection.Execute("SELECT strPassword FROM tblData WHERE strPassword = '" & strNr & "'"
If rs.EOF Then
bOk = True
connection.Execute("INSERT INTO tblData (strPassword) VALUES ('" & strNr & "')"
End If
Wend
Du får väl "givetvis" byta ut den funktion i det kodexempel du visar mot din egen...
bOk = False
While Not bOK
Set rs = connection.Execute ("SELECT strPassword FROM tblData WHERE strPassword = '" & kundnummer() & "'"
If rs.EOF Then
bOk = True
'Lagra lösenordet...
End If
Wend
red/ Som Sebbe iofs redan visat ser jag nu, efter en liten uppdatering av sidan. :)
248 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e