ACCESS ランダムな数値を返すRnd関数

ランダムな数値を返すRnd関数

ACCESSで乱数を利用したい場合に便利な関数がRnd関数です。
Rnd関数はランダムな数値を返してくれます。

今回は、ランダムな数値を返すRnd関数をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。

Rnd関数

Rnd関数は0から1までの間でランダムな数値を生成する関数です。
以下の構文で利用します。

引数にNumberを指定できますが、この引数は省略可能です。
単純に乱数を作るだけであれば特に引数は指定しなくて構いません。

なお、引数を指定する際は以下の設定になります。

Numberの値生成する乱数
0より小さいNumberに指定した値をもとに前回と同じ乱数を生成
0より大きいNumberに指定した値をもとに前回と異なる乱数を生成
0前回と同じ乱数を生成

まず、0を指定すると何度実行しても同じ乱数を生成することになります。

0以外の数値を指定した場合は、指定した値をもとに乱数を生成します。
その際、値が0より小さければ前回と同じ値を、値が0より大きければ前回と異なる値を生成します。

Rnd関数の利用例

ではクエリでRnd関数を利用する例を示します。
テーブルに格納した値に対して、Rnd関数でそれぞれ異なる乱数を生成します。

デザインビューで以下のクエリを作成しました。

T_乱数生成テーブルに「乱数元値」というフィールドがあり、その値を使ってクエリで乱数を生成しています。
クエリの2列目に以下のように設定しました。

Rnd関数の引数に乱数元値フィールドの値を設定しています。

データシートビューで結果を見てみましょう。

乱数の元値に1を設定した1行目のレコードでは乱数が生成されています。
2を設定した2行目のレコードは、前回の生成値と同じ値、つまり1行目と同じ値が生成されます。
-1を設定した3行目のレコードはこれらとは異なる値が生成されます。

では、一度クエリを閉じて再実行してみましょう。

乱数の元値に0より大きい値を設定した1行目は異なる値が生成されます。
一方で、0より小さい値を設定した3行目では前回と同じ値が生成されていることがわかります。

このように、引数によってランダムな値の生成方法を制御することが可能です。

以上、ランダムな数値を返すRnd関数をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス紹介

最後までお読みいただき、ありがとうございました。