Boa tarde!
Estou com uma pequena dúvida, possuo um código que gera um serial variando entre letras e números, para controle de rastreio de pedido, o problema é seguinte, eu gero o serial, ele faz uma consulta no banco de dados, para ver se já não possui o registro dele no banco, se já existe ele chama novamente a função e sai do IF, o problema é que queria consultar novamente no banco se o número que foi gerado já existe também, sei que talvez seja difícil mas vai que sai da função e gera outro serial mas que já existe no banco.
Peguei essa função de um sistema do meu pai
'-------------- Função -------------------' Private Function PW(ByVal length) Const HRF = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" Dim MX Dim TPV Dim LOC Dim X Dim Y Dim WAR() If isnumeric( length ) Then MX = 62 : LOC = HRF Else PW = null Exit function End If TPV = "" For X = 1 to CInt( length - 1 ) Randomize Y = CInt( rnd * MX ) + 1 Randomize Y = CInt( rnd * Y ) + 1 If Y > MX Or Y < 1 Then Y = 3 TPV = TPV & mid( LOC, Y, 1 ) Next TPV = strreverse( TPV ) Randomize Y = CInt( rnd * 10 ) + 1 If Y > 10 Then Y = 1 TPV = TPV & mid( LOC, Y, 1 ) ReDim WAR( length ) For X = 1 to Len( TPV ) WAR( X - 1 ) = mid( TPV, X, 1 ) Next TPV = "" For X = 0 to UBound( WAR ) step 2 If X > UBound( WAR ) Then Exit For TPV = TPV & WAR( X ) Next For X = 1 to UBound( WAR ) step 2 If X > UBound( WAR ) Then Exit For TPV = TPV & WAR( X ) Next PW = cstr( strreverse( TPV )) End Function '------------- Fim Função ------------' SERIAL = PW(10) SET TS = Server.CreateObject("ADODB.Recordset") TS.open "SELECT * FROM HISTORICO_PEDIDO WHERE SERIAL='"&SERIAL&"'", conn IF TS.EOF then ELSE Response.Write "Tem serial" SERIAL = PW(10) END IF