- ベストアンサー
(ACCESS/複雑です)次回出た数字を桁別&同桁の数毎に分けて記録し、表示したいのですが…
こんばんは、非常にややこしい質問ですがよろしくお願いします。 1~19までの数字が書かれた19枚のカードから4枚を同時に引いて 出たカードの数字を記録していくデータベースを作るとき、 1~9(一の位)、10~19(十の位)というように それぞれの桁ごとにグループを分け、 ・一の位 1が出た次回、同桁(一の位)が1つの時を記録し表示 1が出た次回、同桁(一の位)が2つの時を記録し表示 ・ ・ ・ 9が出た次回、同桁(一の位)が1つの時を記録し表示 9が出た次回、同桁(一の位)が2つの時を記録し表示 (可能ならば) 一の位が出なかった次回、同桁(一の位)が1つの時を記録し表示 一の位が出なかった次回、同桁(一の位)が2つの時を記録し表示 ・十の位も↑で書いた一の位と同じです 10が出た次回、同桁(一の位)が1つの時を記録し表示 10が出た次回、同桁(一の位)が2つの時を記録し表示 ・ ・ ・ というように今回出たそれぞれの数字を基準にして 次回出た数字を 桁べつに & 同桁の数ごと(1つの場合と2つの場合)に 分けて記録し、表示するクエリを作成するにはどうすればよいのでしょうか? ACCESSの知識が豊富な方、ご助力をよろしくお願いいたします。 --------------------------------------------- 今現在あるテーブル ・結果テーブル…引いた4枚の数字を記録 テーブル 「結果テーブル」 フィールド名 「回数」「1枚目」「2枚目」「3枚目」「4枚目」 (全て数値型)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SQLビューで以下をコピペしてください。 SELECT 結果テーブル.回数, IIf(Len(結果テーブル!1枚目)=[桁],結果テーブル!1枚目,IIf(Len(結果テーブル!2枚目)=[桁],結果テーブル!2枚目,IIf(Len(結果テーブル!3枚目)=[桁],結果テーブル!3枚目,結果テーブル!4枚目))) AS カード1, IIf([同桁の数]>1,IIf(Len(結果テーブル!4枚目)=[桁],結果テーブル!4枚目,IIf(Len(結果テーブル!3枚目)=[桁],結果テーブル!3枚目,結果テーブル!2枚目))) AS カード2 FROM 結果テーブル, 結果テーブル AS 結果テーブル_1 WHERE (((結果テーブル.回数)=[結果テーブル_1]![回数]+1) AND ((Abs((Len([結果テーブル]![1枚目])=[桁])+(Len([結果テーブル]![2枚目])=[桁])+(Len([結果テーブル]![3枚目])=[桁])+(Len([結果テーブル]![4枚目])=[桁])))=[同桁の数]) AND ((IIf((Len([結果テーブル_1]![1枚目])=[桁])+(Len([結果テーブル_1]![2枚目])=[桁])+(Len([結果テーブル_1]![3枚目])=[桁])+(Len([結果テーブル_1]![4枚目])=[桁])=0,0,1))=[1(出た)、0(出なかった)])); このクエリを開くと、「桁」、「同桁の数」、「1(出た)、0(出なかった)」の入力を促されます。「桁」は、1桁なら「1」、2桁なら「2」。「同桁の数」は、1つなら「1」、2つなら「2」。「1(出た)、0(出なかった)」は、出た次回なら「1」、出なかった次回なら「0」を入力してください。
その他の回答 (1)
- O_cyan
- ベストアンサー率59% (745/1260)
意味が良く分かりませんが1~19の数字をクエリで桁別に分けたいという事なら Len([1枚目]) Len([2枚目]) ・ '3・4枚目も同様として数字が1桁か2桁か求めるようにして抽出する。 結果テーブルを元にクエリを作り 1回目桁:Len([1枚目]) 2回目桁:Len([2枚目]) 3回目桁:Len([3枚目]) 4回目桁:Len([4枚目]) とすれば カードが1・5・10・1と出た場合 1 1 2 1 と桁数が返ります。 カードが10・12・4・8と出た場合 2 2 1 1 のように返ります。 この値を元に抽出をかければ良いのではないでしょうか。
お礼
回答ありがとうございます。 桁別には分けられたのですが… ある数字が出た次回、その数字と同じ位の 数字が1個の場合と2個の場合の時をそれぞれ 抜き出したいのですが… うまく説明できてませんね…
補足
お礼
回答ありがとうございます 参考にします