# Zufallsauswahl in Access



## qde (6. August 2006)

Hallo,
ich möchte einen Zufallswert einer bestimmten Zeile als SQL-Resultat erhalten. In MySQl habe ich das wie folgt realisiert:

SELECT name
FROM `MeineTabelle`
ORDER BY RAND( )
LIMIT 1 

Funktioniert super. Leider klappt es bei MS-Access-Datenbanken nicht. Mein Query sollte möglichst sowohl bei MySQL als auch bei MS-Access funktionieren. Fall es das nicht gibt, wäre ein MS-Access-Query, das das gleiche bewirkt auch noch in ordnung.

Ich hoffe jemand weiss eine Lösung. Danke!

Gruß Felix

*edit*
Inzwischen habe ich herausgefunden, dass MS-Access "LIMIT" anscheinend nicht kennt. gibt es eine Alternative?
*edit2*
Die Alternative zu "LIMIT" lautet bei MS-Access TOP. Jetzt kennt Access nur RAND() nicht...


----------



## Luzie (6. August 2006)

Hallo

es gibt schon eine vergleichbare Funktion in Access

select top 1 feld from tabelle order by rnd(id)

Allerdings ist diese accessspezifisch und meines Wissens nicht über den ODBC-Treiber zu interpretieren.


----------



## qde (7. August 2006)

Hallo,
leider wird diese Anfrage über JDBC:ODBC gestellt. Darüber hinaus funktioniert dieses Query selbst bei meinem MS-Access 2000 nicht!
Fehlermeldung: "Datentypen in Kriterienausdruck unverträglich. "
Kann es sein, dass mein Zufallswertkein INT, sondern vom Typ TEXT ist. Allerdings wird mir der gesamte Tabelleninhalt übermittelt, wenn ich einen INT-Wert in rnd() einfüge.


----------



## Luzie (8. August 2006)

Hi

auch vom typ int funktioniert rnd() nur im Programm Access. 
Es gibt ja noch die Möglichkeit, dies im Script selbst zu lösen.


----------

