No.3ベストアンサー
- 回答日時:
フォーム上にテキストボックス"かるた0"~"かるた99"を配置しているとします(処理を簡単にするために1桁の数値は0~9としています)。
また、レコードは整列Noにランダムに0~99までの数値を振り、これが昇順になるように並べ替えられているものとします。
Private Sub Sample()
Dim i As Integer
Dim MyCtrl As Control
For i = 0 To 99
For Each MyCtrl In Controls
If MyCtrl.Name = "かるた" & i Then
MyCtrl.SetFocus
MyCtrl.Text = 下の句
DoCmd.GoToRecord , , acNext
End If
Next
Next i
End Sub
実際にデータを準備して確認はしていませんが、これでご希望の動作をするはずです。
No.5
- 回答日時:
>「myRND」を使用するとテーブルにフィールドを用意しなくてもよいということですか
そうです
>SELECT 回答.上句, 回答.中句, 回答.下句, [myrnd] AS 式mFROM 回答 ORDER BY [myrnd];
myRNDは引数が必要です
SELECT 回答.上句, 回答.中句, 回答.下句, myrnd(上句) AS 式m FROM 回答 ORDER BY 式m;
この回答への補足
ACCESS2000ではダメなのでしょうか
フォームを開くと「式に未定義関数'MYRND'があります。」
myRNDはコードの1行目より次の様にしていますが
Option Compare Database
Option Explicit
Dim I, J, K As Integer
Dim DATA(99, 3) As String
Public Function myRND(anyfield)
Randomize
myRND = Rnd
End Function
Private Sub Form_Load()
…
end sub
よろしくお願いいたします。
色々お世話になりました。
この件一旦締め切らせていただきます。
知りたいことを整理して新たに質問を立ち上げますので、お気づきのときは宜しくお願いいたします。
No.4
- 回答日時:
>任意のテキストボックスに下の句を格納する方法が分からないのです。
テキストボックスには何もせず
レコードのほうに乱数を格納してやればいいのです
もちろんあらかじめテーブルにランダムに数値を振っておくなどという方法では
毎回同じになりますから、クエリでそのつど乱数を振りなおすようにしておく必要があります
ただし、クエリで普通にRND関数を使うと、クエリの演算順序の最適化時に
この関数はレコードと関係のない関数とみなされ
一度評価した値が全てのレコードに適用されてしまいますから
下のようなユーザー関数を作り、あたかもレコードに関係ある関数かのように見せかけ
Accessをだましてやる必要があります
Public Function myRND(anyfield)
Randomize
myRND = Rnd
End Function
クエリに
乱数:myRND(適当なフィールド)
のような式フィールドを作りこれで並び替えてやれば
毎回異なる順序で並びます
この回答への補足
何度もお世話かけますが宜しくお願いします。
「myRND」を使用するとテーブルにフィールドを用意しなくてもよいということですか
SELECT 回答.上句, 回答.中句, 回答.下句, [myrnd] AS 式mFROM 回答 ORDER BY [myrnd];
ではダメでした
いまはテーブルに整列No.を定義し、フォームを開く前に
DoCmd.RunSQL "update 回答 set 整列No.=rnd(No.)*100;"
として、乱数を入れています
No.2
- 回答日時:
>整列No.に乱数を貼り付け、
>ゲームフォームLOAD時に整列No.順に呼び出しカードに貼り付けてゆこうと
この考えででいいんじゃないですか
これをするのに
テキストボックス名を並び替える必要はありません
レコードのほうの順番をシャッフルしてやるだけです
具体的にはクエリで乱数を格納する式フィールドを設け
そのフィールドで並び替えてやればいいだけです
この回答への補足
テキストボックスを並び替える積もりはありません。
テキストボックスは配列宣言は出来ませんよね
特定のテキストボックスへの格納は かるた05=下の句 でよいのですが
任意のテキストボックスに下の句を格納する方法が分からないのです。
何度もお手数をかけますが宜しくお願いします。
No.1
- 回答日時:
発想を変えて下の句のほうをシャッフルして順に書き込んでいけばいいのでは
この回答への補足
早速のお返事有難うございます。
カードNo. 上の句、中の句、下の句、整列No.、チェック のフィールドを定義したテーブルに句は既に入力済です。
メニュー画面でかるたゲームをクリックしたときに整列No.に乱数を貼り付け、ゲームフォームLOAD時に整列No.順に呼び出しカードに貼り付けてゆこうと思ってます。
単純に1レコードづつ呼び出し「かるた01=下の句」「かるた02=下の句」…「かるた99=下の句」と式と呼び込みを含めて200行記述すればよいのですが
例えばテキストボックスに配列が使えるのであれば
for i=0 To 99
かるた(i)=下の句
DoCmd.GoToRecord , , acNext
NEXT i
としたいのですが、何かよい方法はないでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
Accessのレポートの集計に条件...
-
accessのマクロで「一時変数設定」
-
日付の加算・減算ってできますか?
-
ADOで現在のレコードの次のレコ...
-
ファイルメーカーでレコード複...
-
Accessで最終レコードの削除に...
-
ACCESSのレコード操作で1つ前...
-
こんなクエリを作りたいのですが
-
ACCESSのフォームで次のレコー...
-
180g重量版レコードとは? 180...
-
アクセス 最大ファイルサイズ...
-
PSQLで-- More --を表示しない方法
-
Accessで写真(JPEG)管理がした...
-
access レポートで罫線...
-
ファイルメーカーで該当件数を...
-
「#エラー」の回避
-
Accessクエリで特定の行を削除...
-
アクセスのレポートのヘッダー...
-
WORD差し込み印刷:日付の処理 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ACCESSのフォームで次のレコー...
-
Accessのレポートの集計に条件...
-
access レポートで罫線...
-
ACCESSのレコード操作で1つ前...
-
PSQLで-- More --を表示しない方法
-
ラベルをクリックしてレコード...
-
ADOで現在のレコードの次のレコ...
-
ACCESSでオフセットを求める方法
-
accessのマクロで「一時変数設定」
-
ACCESSで空白行を追加
-
ファイルメーカーで検索条件の...
-
日付の加算・減算ってできますか?
-
FileMakerで全レコードを対象外...
-
ホスト汎用機でのNDBアクセス方法
-
Accessで最終レコードの削除に...
-
ファイルメーカー 縦表示を横...
-
ファイルメーカーで一括入力す...
-
アクセスでのエクセルでいう行...
-
「ファイルメーカー」で宛先の...
おすすめ情報