- ベストアンサー
ACCESSでのランダムのレコード抽出
例えば100件のレコード(100個の数字)があり(その中には重複する数字も存在します)、その中から10件をランダムに抽出する、という作業がアクセスで可能でしょうか?1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
クエリで乱数を発生させるフィールドを作り そのフィールドで並べ変えてTOP10を抽出とすればいいです ただし、単純にRND関数を使っても RND関数は引数を取りませんから、 Accessはクエリの演算処理の最適化に於いて レコードとは関係ない関数とみなし 一度評価した値を全てのレコードに摘要します その結果全レコードで同じ値になってしまいます これを防ぐには下のようなユーザー関数を作り あたかもレコードのあるフィールドに関係あるかのように見せて レコード毎に評価させるという手を使います Public Function myRND(anyField) Randomize myRND = Rnd End Function この関数をクエリで使い、引数にはフィールドの中のどれかを渡します 渡すフィールドは関数の中で使用するわけではありませんから 何でもいいです
その他の回答 (1)
- ppmi
- ベストアンサー率28% (40/139)
回答No.1
ACCESSをお使いでしたら、 モジュール→新規作成で 関数をつくり a = rnd() * 100 とすれば、aには0~99の数字がランダムに入って きます。 あとは工夫次第でいろいろな展開ができます。 イマイチ質問者さんのどんなことがしたいのか わからないので、具体的にいえませんが
質問者
お礼
アドバイスありがとうございました。
お礼
御礼が遅くなって申し訳ありません。 おかげさまで解決しそうです。