Newsgroup: it.comp.appl.access
Titolo: [QUERY] Selezione Record Casuale - Dove ho sbagliato?

Salve,
la seguente query ha un errore, mi ritorna l'errore
Tipi di dati non corrispondenti nell'espressione criterio. (3464).
Avete idee in merito?
SELECT TOP 1 Int(Rnd([idConcorrente])*100) AS 
Finalista,tblConcorrente.idConcorrente  FROM tblConcorrente WHERE 
(((tblConcorrente.concPremiato)<>True)) ORDER BY 
Int(Rnd([idConcorrente])*100);
Grazie!
-- 
MC

 ha scritto nel messaggio 
news:di048a$74o$1...@domitilla.aioe.org...

Forse, o sicuramente avrò saltato qualche punto già trattato di tale tuo 
problema, ma perchè usi una query per estrarre un record casuale?...
Ripeto, che "la premessa di non aver seguito il precedente è fondamentale", 
ma mi chiedo, se a una Tabella aggiungi un campo, e a questo campo 
attribuisci un valore casuale, e butti giù una Routine che in questo range 
di codici casuali attribuiti (a tutti i record), tiri fuori uno a caso di 
questi? Ecco perchè ti parlavo a suo tempo della Tombola.
Fammi sapere.
-- 
Ciao
Pablitomf (Maurizio Facciuti)
-----------------------------------------------------------------
Access: 97 e 2000
ASP
-----------------------------------------------------------------
http://www.accessgroup.it/
http://www.sitocomune.com/
-----------------------------------------------------------------
Il mio motto :
""Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media." 

[cut]
se guardi il mio post di ieri titolato:
[Help] Estrazione record casuale - Analisi problematica
avrai sufficenti spiegazioni!!!
Se poi hai idee in merito, ben vengano, il povero MA credo di averlo 
distrutto psicologicamente e gli chiedo scusa *pubblicamente* ... ma come 
gia dette e ridetto, trito e ritrito, questa cosa mi ha bloccato ;o)))
Ciao
--
MC

 Grazie!
Questo tipo di errore lo dà quando confronti due valori di tipo diverso,
per esempio un campo di tipo testo con un numero.
Di che tipo è il campo tblConcorrente.concPremiato? Se è un boolean puoi
cambiare il criterio in WHERE Not(tblConcorrente.concPremiato)
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

[cut]
SELECT TOP 1 Int(Rnd([idConcorrente])*100) AS Finalista, 
tblConcorrente.idConcorrente
FROM tblConcorrente
WHERE not (tblConcorrente.concPremiato)
ORDER BY Int(Rnd([idConcorrente])*100);
se intendevi così comunque non funziona ...
tblConcorrente.concPremiato è un campo booleano di tipo Si\No.
Ciao
--
MC 

[cut]
niente da fare????
:o(
--
MC 

 MC
Se togli tutta la riga del WHERE funziona?
Giusto per capire se il problema è nel criterio, che a prima vista sembra
corretto.


[cut]
SELECT TOP 1 str(Rnd([idConcorrente])*100) AS Finalista
FROM tblConcorrente;
 cosě niente da fare ...
ps: idConcorrente č una stringa.
--
MC 

MC ha scritto:

Allora č lě il problema, Rnd() accetta solo numeri. Convertila con Val().
  Rnd(Val([idConcorrente]))*100


[cut]
SELECT TOP 1 Rnd(Val([idConcorrente]))*100 AS Finalista, 
tblConcorrente.idConcorrente
FROM tblConcorrente
WHERE (((tblConcorrente.concPremiato)=False))
ORDER BY Rnd(Val([idConcorrente]))*100;
cosě funziona ma estrae tutti i record della tabella e non uno solo e per di 
piů a caso tra quelli della tabelle ...
... questa cosa mi sta tirando matto!!!!!!!
--
MC 

[cut]
cambiamo il focus ... se volessi estrarre un record a caso tra quelli della 
tabella tblConcorrente dove il campo booleano concEstratto = falso come 
potrei fare?
...
n.d.r.:E' cosě complicato quello che stň cercando di fare?
Grazie Namor e grazie a chiunque possa rispondermi!
--
MC 

PROBLEMA RISOLTO!!!!!!!!
--
MC 


MC, guarrda che io avevo aggiunto un campo contatore denominato id e rnd
l'ho calcolato su quello...
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 ... questa cosa mi sta tirando matto!!!!!!!
Mi sa di sě
