掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ランダムに表示をするには? (ID:100050)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初めまして。 VB6.0を始めて1ヶ月の初心者です。 調べてもどうしても分からない部分があったので質問させて下さい。 もし、分かる方がいらっしゃいましたら教えて頂けると嬉しいです。 まだ、初心者のため専門用語の知識が薄く。文章の内容が分かりづらかったり ソースの書き方がめちゃくちゃだったりして見づらいかもしれませんが 見ていただけたら嬉しいです。よろしくお願いします。 【質問内容】 10問質問項目があり、それに対して、有り無しをチェックボックスにて回答していきます。 チェックボックスには チェックボックス1 = flgSyokuji1 チェックボックス2 = flgSyokuji2 チェックボックス3 = flgSyokuji3 チェックボックス4 = flgSyokuji4 チェックボックス5 = flgSyokuji5 チェックボックス6 = flgSyokuji6 チェックボックス7 = flgSyokuji7 チェックボックス8 = flgSyokuji8 チェックボックス9 = flgSyokuji9 チェックボックス10 = flgSyokuji10 と各々の変数に代入してフラグ(チェック有:1,チェック無:0)を持たせてあります。 データベースはAccess2000のADOを使用しているのですが、 ロード時にテーブル「tb_syokuji」を参照し最新のIDのフラグの有り無しを確認し 全ての変数に代入します。 その結果を元に、もし「flgSyokuji1 = 1」だった場合は「1〜9」の整数より 乱数を出し、「SyokujiNo1」という変数に代入。 「flgSyokuji2 = 1」だった場合は「10〜15」の整数より乱数を出し、 「SyokujiNo2」という変数に代入。 「flgSyokuji3 = 1」だった場合は「16〜23」の整数より乱数を出し、 「SyokujiNo3」という変数に代入。 「flgSyokuji4 = 1」だった場合は「24〜29」の整数より乱数を出し、 「SyokujiNo4」という変数に代入。 「flgSyokuji5 = 1」だった場合は「29〜32」の整数より乱数を出し、 「SyokujiNo5」という変数に代入。 「flgSyokuji6 = 1」だった場合は「33〜35」の整数より乱数を出し、 「SyokujiNo6」という変数に代入。 「flgSyokuji7 = 1」だった場合は「36〜37」の整数より乱数を出し、 「SyokujiNo7」という変数に代入。 「flgSyokuji8 = 1」だった場合は「38〜44」の整数より乱数を出し、 「SyokujiNo8」という変数に代入。 「flgSyokuji9 = 1」だった場合は「45〜46」の整数より乱数を出し、 「SyokujiNo9」という変数に代入。 「flgSyokuji10 = 1」だった場合は「47〜58」の整数より乱数を出し、 「SyokujiNo10」という変数に代入。 その結果を元に、SyokujiNo1〜SyokujiNo10の中からランダムにSyokujiNoという変数に 代入したいと思っているのですが・・・。 どのように式を書いたらよいのかが分かりません。 よろしければ教えて下さい。 【ソース】 Option Explicit Private cn As ADODB.Connection Private rs As ADODB.Recordset Private strSQL As String Private SyokujiNo As Integer Dim flgSyokuji1 As Integer Dim flgSyokuji2 As Integer Dim flgSyokuji3 As Integer Dim flgSyokuji4 As Integer Dim flgSyokuji5 As Integer Dim flgSyokuji6 As Integer Dim flgSyokuji7 As Integer Dim flgSyokuji8 As Integer Dim flgSyokuji9 As Integer Dim flgSyokuji10 As Integer Dim ret As Integer '------------------------------------------------------------------------------------------------ Private Sub Form_Load() '*********************************************************************************************** Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & " Data Source = C:\Database\db1.mdb" cn.Open '*********************************************************************************************** Set rs = New ADODB.Recordset rs.Open "select * from tb_syokuji where id = 59", cn flgSyokuji1 = rs("flgSyokuji1") flgSyokuji2 = rs("flgSyokuji2") flgSyokuji3 = rs("flgSyokuji3") flgSyokuji4 = rs("flgSyokuji4") flgSyokuji5 = rs("flgSyokuji5") flgSyokuji6 = rs("flgSyokuji6") flgSyokuji7 = rs("flgSyokuji7") flgSyokuji8 = rs("flgSyokuji8") flgSyokuji9 = rs("flgSyokuji9") flgSyokuji10 = rs("flgSyokuji10") '*********************************************************************************************** End Sub '------------------------------------------------------------------------------------------------ Private Sub SSTab1_Click(PreviousTab As Integer) Set rs = New ADODB.Recordset Dim SyokujiNo1 As Integer Dim SyokujiNo2 As Integer Dim SyokujiNo3 As Integer Dim SyokujiNo4 As Integer Dim SyokujiNo5 As Integer Dim SyokujiNo6 As Integer Dim SyokujiNo7 As Integer Dim SyokujiNo8 As Integer Dim SyokujiNo9 As Integer Dim SyokujiNo10 As Integer If flgSyokuji1 = 1 Then SyokujiNo1 = Int(Rnd(1) * 9) + 1 Else SyokujiNo1 = 59 End If If flgSyokuji2 = 1 Then SyokujiNo2 = Int(Rnd(10) * 15) + 1 Else SyokujiNo2 = 59 End If If flgSyokuji3 = 1 Then SyokujiNo3 = Int(Rnd(16) * 23) + 1 Else SyokujiNo3 = 59 End If If flgSyokuji4 = 1 Then SyokujiNo4 = Int(Rnd(24) * 29) + 1 Else SyokujiNo4 = 59 End If If flgSyokuji5 = 1 Then SyokujiNo5 = Int(Rnd(30) * 32) + 1 Else SyokujiNo5 = 59 End If If flgSyokuji6 = 1 Then SyokujiNo6 = Int(Rnd(33) * 35) + 1 Else SyokujiNo6 = 59 End If If flgSyokuji7 = 1 Then SyokujiNo7 = Int(Rnd(36) * 37) + 1 Else SyokujiNo7 = 59 End If If flgSyokuji8 = 1 Then SyokujiNo8 = Int(Rnd(38) * 44) + 1 Else SyokujiNo8 = 59 End If If flgSyokuji9 = 1 Then SyokujiNo9 = Int(Rnd(45) * 46) + 1 Else SyokujiNo9 = 59 End If If flgSyokuji10 = 1 Then SyokujiNo10 = Int(Rnd(47) * 58) + 1 Else SyokujiNo10 = 59 End If '!!ランダムのランダム未解決!! SyokujiNo = ○○○○○←ココの部分に式を書こうと思っているのですか・・・ rs.Open "select * from ms_snaiyou where cd=" & SyokujiNo, cn Text7.Text = rs("strNaiyou").Value End Sub
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.