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で質問しましょう!
似たような質問が見つかりました
- 郵便・宅配 マンションの宅配ボックスの場所について Amazonで注文した品物を手渡しで受け取る際にAmazon 4 2022/06/14 09:52
- 郵便・宅配 マンションなどの宅配ボックスの利用方法について 4 2023/03/17 21:47
- Excel(エクセル) エクセル シート内のボックスを縦並びから横並びに 7 2023/04/05 04:28
- Excel(エクセル) ログインIDの一発入力? 5 2023/07/07 12:30
- 分譲マンション オートロック内に宅配ボックス 3 2023/05/16 10:17
- Word(ワード) ワード2019で、テキストボックスの位置を、左右の真ん中にする方法 1 2022/09/21 13:49
- その他(法律) 教えてください 家に帰ったら玄関の前に置いてあるタイヤに「消防法に抵触するため、共有部分に置かないで 3 2022/12/19 18:51
- 郵便・宅配 宅配ボックス(集合住宅)の使い方について 1 2022/11/23 16:47
- カスタマイズ(バイク) リアボックス取り付け位置 2 2023/08/11 06:08
- 電気工事士 第一種電気工事士の実務経験について。 工期とはどの期間を言いますか? 例えば、制御ボックスを増設する 1 2023/02/01 17:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ACCESSのフォームで次のレコー...
-
Accessのレポートの集計に条件...
-
Accessのフォームへ、記録者の...
-
ADOで現在のレコードの次のレコ...
-
KeySQLの代替ソフトありませんか
-
ホスト汎用機でのNDBアクセス方法
-
Accessで最終レコードの削除に...
-
FileMakerで全レコードを対象外...
-
ファイルメーカーでレコード複...
-
日付の加算・減算ってできますか?
-
VSAM
-
ファイルメーカーで一括入力す...
-
FileMakerで特定のレコードのみ...
-
差込印刷ヘルパーの設定方法
-
ファイルメーカープロでレコー...
-
ACCESS入力でのバッティングに...
-
ファイルメーカーのポータル内...
-
access の テキストボックス名...
-
ファイルメーカでの条件付き画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ACCESSのフォームで次のレコー...
-
Accessのフォームへ、記録者の...
-
ADOで現在のレコードの次のレコ...
-
Accessのレポートの集計に条件...
-
日付の加算・減算ってできますか?
-
accessのマクロで「一時変数設定」
-
ACCESSでオフセットを求める方法
-
ラベルをクリックしてレコード...
-
ACCESSでのランダムのレ...
-
PSQLで-- More --を表示しない方法
-
ACCESSのレコード操作で1つ前...
-
アクセスでのエクセルでいう行...
-
ファイルメーカでの条件付き画...
-
VSAM
-
Accessで写真(JPEG)管理がした...
-
ファイルメーカーのポータル内...
-
ファイルメーカーで最大シリア...
-
ファイルメーカーでレコード複...
-
ACCESSで空白行を追加
おすすめ情報