PDA

View Full Version : Record casuali


Carmen
22-06-2004, 13:00
Ciao,

Volevo il vostro aiuto perchè dovrei poter estrare da una tabella di access i record in modo casuale. In poche parole per evitare che ogni volta mi compaiano sempre gli stessi record in seguenza, dovrei fare in modo che i record vengono ad ogni apertura di pagina in modo casuale, diciamo come se ad ogni apertura vengono mischiati per non essere sempre nella stessa seguenza.

Ciao

cionci
22-06-2004, 15:21
La cosa è abbastanza semplice:

0: N = numero di record nel database
Est = vettore di dimensione N che contiene N elementi pari a 0
i = 1 Contatore
1: Se i <= N continua altrimenti va al punro 6
2: num = estrazione di un numero compreso fra 1 e N-i+1
j = 1 Contatore
3: Se j <= num allora continua altrimenti vai al punto 5
4: Se Est(j) > 0 allora num = num + 1;
j = j + 1;
Vai al punto 3;
5: Est(num) = 1;
Ti muovi sul record num del database (per ADO c'è il metodo Move) e visualizzi ciò che ti pare;
i = i+1;
Vai al punto 1
6: Fine ;)

Carmen
23-06-2004, 12:28
Ciao,

Io ti ringrazio del consiglio. Comunque se dovresti avere a portata di mano qualche frammento di codice che un pò raggruppo quanto detto, te ne sarei grata se magari me lo posti...


Grazie e ciao...

cionci
23-06-2004, 13:10
Non ce l'ho...ma lo puoi ricavare molto facilmente dall'algoritmo sopra... Dopotutto sono due for...

Carmen
23-06-2004, 14:41
OK! Visto che non ai del codice da postarmi ti ringrazio ugalmente, nella speranza che riesca..



Ciao

RAISE
23-06-2004, 18:22
... avevo lo stesso problema in excel ...
l'ho risolto inserento un campo con un numero casuale.
All'apertura partiva una piccola macro che ordinava il record e salvava.
In questo modo all'apertura successiva i valori casuali erano diversi.
In excel la funzione che da un numero casuale si aggiorna automaticamente ... non so' se in access puoi fare lo stesso