| Access実践入門 TOPへ |
| ■ マイクロソフトアクセス、乱数の発生他 | |
| 乱数を発生させる 特に新しい処理はありません。 数字を予想する画面での、乱数を発生させるところを見てみます。 ban(5) という配列変数を使っています。 配列にすると、For ループを使って数字を扱いやすくなります。 予想ボタンの「クリック時」です ------------------------------------------ Private Sub 予想_Click() Dim i As Integer Dim j As Integer '予想は1回だけ If kaisu = 1 Then Exit Sub End If '乱数の初期化 Randomize '1つ目を決定 If IsNull(Me!番号01) Then ban(0) = Int((Rnd * 43) + 1) Else ban(0) = Me!番号01 End If '2つ目以降を決定 For i = 1 To 5 RELOOP: ban(i) = Int((Rnd * 43) + 1) '決定された数字と同じ番号があればやり直し For j = 0 To i - 1 If ban(i) = ban(j) Then GoTo RELOOP: End If Next j Next i 'テキストボックスに表示 Me!番号01 = ban(0) Me!番号02 = ban(1) Me!番号03 = ban(2) Me!番号04 = ban(3) Me!番号05 = ban(4) Me!番号06 = ban(5) kaisu = 1 End Sub ------------------------------------------ ロト6の場合、1〜43の数字を使いますから、 1〜43までの乱数は、 Int((Rnd * 43) + 1) で求められます。 同じ数字があってはいけませんから、 もし同じ数字があれば、やり直すようにしています。 配列変数は、こんな時に便利です。 複雑で解りにくいですが、 慣れてくると、簡単に使えるようになります。 |
|
| 数字を小さい順に転記 数字が決まったら、入力画面に転記するのですが、数字を小さい順に転記した方が解りやすいです。 次のように書いています。 ------------------------------------------ For i = 1 To 43 For j = 0 To 5 If ban(j) = i Then If Form_fo入力6.予想01 = 0 Then Form_fo入力6.予想01 = ban(j) Exit For End If If Form_fo入力6.予想02 = 0 Then Form_fo入力6.予想02 = ban(j) Exit For End If If Form_fo入力6.予想03 = 0 Then Form_fo入力6.予想03 = ban(j) Exit For End If If Form_fo入力6.予想04 = 0 Then Form_fo入力6.予想04 = ban(j) Exit For End If If Form_fo入力6.予想05 = 0 Then Form_fo入力6.予想05 = ban(j) Exit For End If If Form_fo入力6.予想06 = 0 Then Form_fo入力6.予想06 = ban(j) Exit For End If End If Next j Next i ------------------------------------------ これも配列変数で処理しています。 1〜43番まで調べて、存在すれば、左から埋めるようにしています。 じっくり見てください。 |
|