Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/07/2005, 21:16
Elbrinner
 
Fecha de Ingreso: julio-2005
Ubicación: Santiago de Compostela
Mensajes: 80
Antigüedad: 19 años, 10 meses
Puntos: 0
el RND por access nada... si usas comando como el NewID con sql server funciona de maravilla.

Puedes hacer asi:

SELECT TOP 1 CAMPO FROM TAbla ORDER BY RND(INT(NOW*IDDATABELA)-NOW*IDDATABELA)

o asi

SQL = "select * from TABELA order by Rnd(Int(Now()*[ID])-Now()*[ID]);"

hay una funcion muy buena que creo mi amigo para eso

<%

'--------------------------------------------------------------

' RANDOM COM REGISTROS DE UM BD SEM REPETIÇÃO

' Autor: Márcio J. Lima (Guardião)

' Data de criação: 22-08-2002 - SP / Brasil

'--------------------------------------------------------------



' Gravamos o Recordset em um Array Bidimensional

Set strRS = Server.CreateObject("ADODB.RecordSet")

strRS.Open "SELECT * FROM membros ", strConexao, 3, 3

arySub = strRS.getRows()



' Fechamos a conexão pois não usaremos mais

strRS.Close

Set strRS = Nothing

strConexao.Close

Set strConexao = Nothing



Dim TotalReg, TotalNum, vran, x, encontrou, arrGerados(0)

Dim Numreg, verGerado, var_arrGerados, xLoop



Function GeraRegistros(TotalNum)

TotalReg=Cint(uBound(arySub,2)) ' Encontramos o Maior Array Gerado

vran = 1



For x = 0 To TotalNum-1 ' LOOP de 1 p/ Total solicitado

encontrou = 1

Randomize() ' Geramos o primeiro Random

NumReg = Cint((rnd*TotalReg))

verGerado = Split(var_arrGerados,",") ' Verifica se nº gerado

For xLoop = LBound(verGerado) To UBound(verGerado)

IF Trim(verGerado(xLoop)) = Trim(NumReg) Then

'Este "response" comentado abaixo, indica qual número se repetiram

'E não armazena no Array único, fazendo gerando um novo Random

'response.write "<b>[ "& verGerado(xLoop) &","& NumReg &" ]</b><br> "

x = x - 1

encontrou = 2

Exit For

End IF

Next

IF encontrou = 1 Then ' NÃO ENCONTROU, gera o próximo número



IF vran = 1 Then ' primeiro (Verificar este trecho)

arrGerados(0) = NumReg

vran = 2

Else

arrGerados(0) = arrGerados(0) &","& NumReg

End IF

var_arrGerados = Join(arrGerados)

End IF

Next

GeraRegistros = var_arrGerados

End Function

' Array gerado, podemos iniciar a formatação de perguntas

number = GeraRegistros(3)



verNum = Split(number, ",")

For x = LBound(verNum) to UBound(verNum)

response.write arySub(0,verNum(x)) &"."

response.write arySub(1,verNum(x)) &"<br>"

Next

%>

un saludo