- ベストアンサー
数字を抽出するクエリ
- ACCESSで数字が出なかった時の次回記録のレコードを抽出する方法を説明します。
- 一の位(1~9)が1つも出なかった時の次回のレコードを抽出するクエリと、十の位(10~19)1つも出なかった時の次回のレコードを抽出するクエリを作成する方法を教えます。
- データベースの記録テーブルから一の位(1~9)が1つも出なかった次回のレコードと、十の位(10~19)1つも出なかった次回のレコードを抽出するクエリの作り方を解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
No.1の続きです。 >10番台と20番台を別々に分けて抽出する >方法はないでしょうか? その場合は、LENを使わずに、10で割った商を使えばよいと思います。 具体的には、 [n枚目] \ 10 が、 0なら、1-9 1なら、10-19 2なら、20-29 だと判断できます。
その他の回答 (1)
Aは、 SELECT 記録テーブル.回数, 記録テーブル.[1枚目], 記録テーブル.[2枚目], 記録テーブル.[3枚目], 記録テーブル.[4枚目], 記録テーブル.[5枚目] FROM 記録テーブル, 記録テーブル AS 記録テーブル_1 WHERE (((記録テーブル.回数)=[記録テーブル_1]![回数]+1) AND (((Len([記録テーブル_1]![1枚目])=1)+(Len([記録テーブル_1]![2枚目])=1)+(Len([記録テーブル_1]![3枚目])=1)+(Len([記録テーブル_1]![4枚目])=1)+(Len([記録テーブル_1]![5枚目])=1))=0)); Bは、 SELECT 記録テーブル.回数, 記録テーブル.[1枚目], 記録テーブル.[2枚目], 記録テーブル.[3枚目], 記録テーブル.[4枚目], 記録テーブル.[5枚目] FROM 記録テーブル, 記録テーブル AS 記録テーブル_1 WHERE (((記録テーブル.回数)=[記録テーブル_1]![回数]+1) AND (((Len([記録テーブル_1]![1枚目])=2)+(Len([記録テーブル_1]![2枚目])=2)+(Len([記録テーブル_1]![3枚目])=2)+(Len([記録テーブル_1]![4枚目])=2)+(Len([記録テーブル_1]![5枚目])=2))=0)); でよいかと。
補足
回答ありがとうございます。 いただいた回答をやってみましたら 1つも出なかった時の次回を 抽出することが出来ました! ありがとうございます。 もう1つお尋ねしたいのですが 1~29のカードで質問と同じ抽出をする時 ・1番台(1-9)が出なかった次回を抽出 ・10番台(10-19)が出なかった次回を抽出 ・20番台(20-29)が出なかった次回を抽出 この場合Len関数を使うと10番台と20番台が 2文字で同じ扱いになってしまいます。 10番台と20番台を別々に分けて抽出する 方法はないでしょうか?
お礼
再びの回答ありがとうございます。 Len関数を使わず 教えていただいた商を用いて : (((([記録テーブル_1]![1枚目])\10=0)… (((([記録テーブル_1]![1枚目])\10=1)… (((([記録テーブル_1]![1枚目])\10=2)… : 1.10.20番台が出なかったときをそれぞれ 抽出することが出来ました。 何度も回答いただき本当にありがとうございました。