• ベストアンサー

(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枚目」           (全て数値型)

質問者が選んだベストアンサー

  • ベストアンサー
noname#15396
noname#15396
回答No.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」を入力してください。

kintetsu
質問者

お礼

回答ありがとうございます 参考にします

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

意味が良く分かりませんが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 のように返ります。 この値を元に抽出をかければ良いのではないでしょうか。

kintetsu
質問者

お礼

回答ありがとうございます。 桁別には分けられたのですが… ある数字が出た次回、その数字と同じ位の 数字が1個の場合と2個の場合の時をそれぞれ 抜き出したいのですが… うまく説明できてませんね…

kintetsu
質問者

補足

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • (ACCESS)今回出た数字を基準にして次回出た数字をカウントしたいのですが…

    1~6までの数字が書かれた6枚のカードから3枚を同時に引いて 出たカードの数字を記録していくデータベースを作るとき、 ・今回引いた3枚が(1).(3).(6)(区別のため()囲み数字にしました)  次回引いた3枚が1.4.5の時 「(1)」が出た次回の数字、1.4.5をカウント 「(3)」が出た次回の数字、1.4.5をカウント 「(6)」が出た次回数字、1.4.5をカウント 今回出たそれぞれの数字を基準にして 次回出た数字をカウントしていくクエリを 作成するにはどうすればよいのでしょうか?  ACCESSの造詣が深い方、ご助力をよろしくお願いいたします。 --------------------------------------------- 今現在あるテーブル ・結果テーブル…引いた3枚の数字を記録      テーブル 「結果テーブル」    フィールド名 「回数」「1枚目」「2枚目」「3枚目」(全て数値型) ・カード番号テーブル    フィールド名 「カード番号」    レコード数=6(カード番号=1,2,・・・6)数値型

  • ACCESSである数字が出なかった時、次回のレコードを抽出したいのですが

    1~19までの数字が書かれた19枚のカードから5枚を同時に引き、 記録していくデータベースを作成するとき、 A.一の位(1~9)が1つも出なかった時の次回記録(次行)のレコードを抽出するクエリ B.十の位(10~19)1つも出なかった時の次回記録(次行)のレコードを抽出するクエリ 上記2つのクエリを作りたいのですが… (記録テーブル) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 ---------------------------------- (1)    1    4    5    7    9 (2)    1    2    3    10    12 (3)    10   12    13   16    18 (4)    1    2    3    4    5 (5)    5    6    7    15    16 上記の記録の時 A.一の位(1~9)が1つも出なかった時に該当するのは回数(3)なので その次回にあたる回数(4)を抽出 (クエリ1) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 -------------------------------------- (4)    1    2    3    4    5 B.十の位(10~19)1つも出なかった時に該当するのは回数(1)と回数(4)なので それぞれの次回にあたる回数(2)、回数(5)を抽出 (クエリ2) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 -------------------------------------- (2)    1    2    3    10    12 (5)    5    6    7    15    16 といったように 一の位が1つも出なかった次回のレコード、 十の位が1つも出なかった次回のレコードを 抽出するクエリ(SQL?)をそれぞれ 作成するにはどうすればよいのでしょうか? ご回答、よろしくお願いします。

  • DBに半角数字10桁入力すると別数字になります

    phpとphpmyadminを連携しており、フィールドはid(AUTO_INCREMENT)を含め、11項目作成しています。 phpでは9つのフォームがあり、入力された値が2~10つ目のフィールド(すべてint(10))に格納され、11こ目のフィールドはdateで取得した値が入ります。 php上で、生成されたsql文をechoで表示させると、入力したとおりになっているのですが、phpmuadminの中身を見てみると、10桁フルで入力した値が、決まって「2147483647」となっており、困っています。 変数もechoで細かく見てみましたが、どこもおかしなところはありません。 DBに格納された数字のみがおかしなことになっています。 さらに、いろいろ試してみたところ、 1234564757はそのまま 2222222222は2147483647 2222222229は2147483647 4545454545は2147483647 1111111112はそのまま 1111111111はそのまま 2222はそのまま(9桁までの数字の連続なら正常) のような感じで、1の場合は10桁でも変な数字にならず、ほかの数字が連続するときまって2147483647になるようです。 11桁からはプログラムによりエラーが出て再入力を求めるようにしており、11桁以上の場合は正常にエラーが出るので、おかしくなるのは、10桁のときのみです。 格納寸前の変数も直後の変数や$sqlもおかしなところは全くないので、何が狂わせているのかがわからずにいます。 php:5.3.8 mysql:5.5.16 phpmyadmin:3.4.5 Apache:2.2.21 (Win32) つたない説明で分かりづらいかもしれませんが、大変困っておりますので、 何かアドバイス等があれば是非ご教授いただければ幸いです。

    • ベストアンサー
    • MySQL
  • ACCESS2003クエリの結合した表示形式が

    ACCESS2003でクエリを作成しました。各テーブルのフィールドを結合したのですが 表示形式が思ったようになりませんでした。 【Aテーブル】 フィールド:学部NO データ型:数値型 書式:00 【Bテーブル】 フィールド:学科NO データ型:数値型 書式:00 【ABクエリ】 フィールド:学籍NO:[Aテーブル]![学部NO]&[Bテーブル]![学科NO] 【ABクエリ】の結果が数字が4桁表示されません。 (例) 0101 と表示してほしいのですが、   11  と表示されます。 各テーブルでは、01と表示されるのですが・・・。 宜しくお願いします。

  • Excelでの二桁数字表示

    Excelでの二桁数字表示 Excelで縦書きに平成22年と文字を入力する場合ですが、そのままだと22が縦に並んでしまうと思います。その22を2桁表示のように横に並べて表示させることは可能でしょうか。

  • 同一セル内の3桁の数字を任意の数字に変換し表示

    excelの関数を教えて下さい。 同一セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 各セルに1数字の場合はVLOOKUP関数を使用し変換できたのですが、同一セル内に複数数字がある場合の考え方がわかりません。 よろしくお願いします。

  • エクセルでの数字を3桁表示にする方法

    エクセルで数字を3桁で表示したいです。 2桁までの数字の場合には表示形式を文字列にするか  ’ をつけて頭にゼロをつけているのですが、 下記のような場合にはどのようにしたらできるのかがわかりません。 たとえば セルA1に 「001」 と入力し、A2を「=A1+1」とするとき A1を001にはできるのですが、A2は2となってしまいます。 A2を「002」とする設定はできるのでしょうか? わかる方がいましたら、教えていただければと思います。 よろしくお願いします。

  • ACCESSで2種類に分類してカウントするクエリを作りたいのですが…

    1~29までの数字が書かれた29枚のカードから5枚を同時に引き、 記録していくデータベースを作成するとき、 1~29が何回出てきたかを以下の種類によってカウントしたいのですが… ・同じレコードの他の数字の上一桁(一の位、十の位)の数が  「単数(1つ)」か「複数(2つ以上)」かによって  別カウントとして集計していきたいのですが。 (記録テーブル[全て数値型]) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 ------------------------------------------ (1)    1    2    3    4    10 (2)    1    2    3    10    11 (3)    1    10   11    12   20 (各番号テーブル) フィールド名「各番号」 レコード数=29 上記のような記録のとき 回数(1)は一の位が4個出現(1.2.3.4)なのでカウントは複数      十の位が1個出現(10)なのでカウントは単数 回数(2)は一の位が3個出現(1.2.3)なのでカウントは複数      十の位が2個出現(10.11)なのでカウントは複数 回数(3)は一の位が1個出現(1)なのでカウントは単数      十の位が3個出現(10.11.12)なのでカウントは複数      二十の位が1個出現(20)なのでカウントは単数 要約すると一の位と十の位と二十の位に分けて 同時に引いた5枚のうち それぞれの位が1つなのか複数なのかによって カウントを別に分けて集計したいのですが… ・作りたいもの (単数複数カウントクエリ) カード   単    複 ←単、複ごとに出た数をカウント ----------------------- 1      1      2 2      2 3      2 : 10      1      2 11            2 12            1 : 20      1 : 上記のようなクエリはどうやれば作れるのでしょうか? ご回答、よろしくお願いします

  • (ACCESS)出た数字ごとに次回のレコードを抽出したいのですが…

    1~6までの数字が書かれた6枚のカードから3枚引き、 出たカードの数字を記録していく時 1,2,3,4,5,6それぞれの数字が出た次回(次行)のレコードを 抽出するクエリを作りたいのですが… (記録テーブル) 回数 1枚目 2枚目 3枚目 ---------------------------- (1)   1    2    6 (2)   2    5    6 (3)   1    4    5 (4)   3    5    6 上記の記録のとき、 1なら 1が出た次回にあたる、(2)回目と(4)回目のレコードを抽出。 ・1が出た次回のレコードを全て抽出 回数 1枚目 2枚目 3枚目 ---------------------------- (2)   2    5     6 (4)   3    4     5 2なら 2が出た次回にあたる(2)回目、(3)回目のレコードを抽出 ・2が出た次回のレコードを全て抽出 回数 1枚目 2枚目 3枚目 ---------------------------- (2)   2    5     6 (3)   1    4     5 3は今の所該当なし 4なら 4が出た次回にあたる(4)回目のレコードを抽出 5なら 5が出た次回にあたる(3)回目のレコードを抽出 6なら 6が出た次回にあたる、(2)回目、(3)回目のレコードを抽出。 といったように 1~6の数字をそれぞれ基準にして その数字が出た次回のレコードを抽出するクエリ(SQL文?)を 作成するにはどうすればよいのでしょうか?

  • 8桁の数字を年(最初の4桁)/月(次の2桁)/日(最後の2桁)表示した

    8桁の数字を年(最初の4桁)/月(次の2桁)/日(最後の2桁)表示したい 条件は月と日の最初がゼロは表示しない事 「99990101」の場合「9999/1/1」としたい。 件数が多いので一括変換出来ると助かります。

専門家に質問してみよう