アクセスのクエリで出生時~小学校就学前を抽出

このQ&Aのポイント
  • アクセスのクエリで出生時~小学校就学前のデータを抽出する方法を教えてください。
  • 抽出条件1では、出生時から小学校就学前(6歳に達した最初の3月31日まで)のデータを抽出します。
  • 抽出条件2では、小学生から中学生(4月1日時点で6歳以上で、15歳に達した最初の3月31日まで)のデータを抽出します。
回答を見る
  • ベストアンサー

アクセスのクエリで出生時~小学校就学前を抽出

アクセス2002 クエリにて下記2つの抽出方法を教えて下さい。 【抽出条件1】 出生時~小学校就学前(6歳に達した最初の3月31日まで) 【抽出条件2】 小学生~中学生 (4月1日時点で6歳以上) (15歳に達した最初の3月31日まで) [Q_顧客]というクエリを作っています。 5つのフィールドがあります。 氏名・年号・生年・月・日 氏名・年号はテキスト型 生年・月・日は数値型 氏名 年号 生年 月 日 花子 昭和 46 1 15 太郎 平成 15 3 13 春子 平成 17 1 11 次郎 平成 14 6 23 夏子 平成 18 4 29 秋子 平成  9 7 12 上記のクエリから、 ・出生時~小学校就学前 ・小学生~中学生 の2つを抽出したいのですが、どのようにしたら良いか教えて下さい。 日付型で作成してなく、年齢の出し方も分かりません。 データ数も多いので、困っています。 よろしくお願い致します。

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

  • ベストアンサー
  • hogya
  • ベストアンサー率67% (49/73)
回答No.2

質問は >日付型で作成してなく、年齢の出し方も分かりません。 ということでよろしいでしょうか? まず、下記の列を追加します。これは生年月日をまとめて西暦になおしたものです。 生年月日:Format([年号] & [生年] & "年" & [月] & "月" & [日] & "日", "yyyy/mm/dd") 次に、下記の列を追加します。 これは、「年齢計算に関する法律」によって誕生日の前日に満年齢に達することになっているためで、学校教育法の第22条の就学の基準では「子女の満六才に達した日の翌日以降における最初の学年の初から」となっているためです。もし、この年齢ではなく、当日に満年齢になる計算をお望みの場合は、「Date()」だけに修正すればよいです。(基準日がわからないので、動かした当日にしています) 基準日:DateAdd("d",+1,Date()) 最後に、下記の列を追加します。 年齢:IIf(Format(生年月日,"mm/dd")>Format(基準日,"mm/dd"), DateDiff("yyyy",生年月日,基準日)-1, DateDiff("yyyy",生年月日,基準日)) 上記で年齢の出し方は大体分かるかと思います。 あとは年齢をもとに条件にあう列を追加していくことになるか、上記の年齢計算自体を修正するかになると思います。

yy-sakura
質問者

お礼

hogya 様 回答をありがとうございます。 下記で解決しました。 【抽出1】 SELECT * FROM 顧客 WHERE DateValue([年号] & [生年] & "/" & [月] & "/" & [日]) BETWEEN DateSerial(Year(Date()) -15, 4, 2) AND DateSerial(Year(Date()) -6, 4, 1); 【抽出2】 SELECT * FROM 顧客 WHERE DateValue([年号] & [生年] & "/" & [月] & "/" & [日]) > DateSerial(Year(Date()) -6, 4, 1); SELECT * FROM Q_患者マスターレセプトNEW吉野_南関町ダミー入力 WHERE DateValue([年号] & [生年] & "/" & [月] & "/" & [日]) BETWEEN DateSerial(Year(Date()) -15, 4, 2) AND DateSerial(Year(Date()) -6, 4, 1);

その他の回答 (1)

回答No.1

内部で年齢を計算する関数つくると思います。僕なら。 その結果を比較する。 そういうことでいかがでしょう?

yy-sakura
質問者

お礼

groovyrealityx 様 回答をありがとうございます。 解決しました。

yy-sakura
質問者

補足

groovyrealityx 様 回答ありがとうございます。 日付型に変換の方法を調べたのですがわかりませんでした。 また、小学校就学前(6歳に達した最初の3月31日まで)なども分かりません。 よろしくお願い致します。

関連するQ&A

  • アクセスのクエリの抽出条件について教えてください。

    アクセス2002 平成20年10月1日の時点で、3歳以下の人を抽出したいです。 フィールドは、氏名・年号・生年・月・日に分かれています。 クエリ 氏名 年号 生年  月  日 A   平成 20   2  20 B   平成 17   9  30 C   平成 17  10   1 D   平成 17  10  31 E   平成 18   5   5 F   平成 19   4   7 G   平成 17  11  20 H   平成 20  10   1 I    平成 17  9   29 抽出したい人 氏名 年号 生年  月  日 A   平成 20   2  20 C   平成 17  10   1 D   平成 17  10  31 E   平成 18   5   5 F   平成 19   4   7 G   平成 17  11  20 H   平成 20  10   1 よろしくお願い致します。

  • Accessでのレポートでのクエリ抽出について

    Access2000のクエリについて教えて頂きたいのですが、現在顧客テーブルに何百件のデータがあります。それをレポートで期間指定して抽出したいのですが(例:10月30日~11月27日)このような期間条件に該当するクエリを良ければご教授頂けたらと思います。 顧客テーブルの訪問日時が該当項目になります。

  • ACCESS クエリにて日付で抽出する方法

    宜しくお願い致します。 アクセスにて出荷管理票を作っています。 その過程で下記のクエリを作成しました。 [商品名][出荷先][出荷日][個数] 上記のクエリで[出荷日]に抽出条件を指定したいのです。 抽出条件は【1月分または7月分】です。 Between … And …を使うと Between #2009/01/01# And #2009/01/31# または Between #2009/07/01# And #2009/07/31# となるのですが、2009年というのは指定したくないのです。 2007年でも2008年でもまた2010年でも抽出したいのですが、何か方法はないでしょうか?

  • Access:クエリの複数『or条件』抽出方法

    ・掲載ID ・掲載日 ・掲載者 ・内容 ・氏名A(YES/NO型) ・氏名B(YES/NO型) ・氏名C(YES/NO型) ・・・ 氏名O(YES/NO型) 上記のようなテーブルからクエリを抽出しようと思っています。 抽出条件を『氏名A』から『氏名O』が『False』であるものと設定したいのですが、 クエリの『または』の抽出条件欄が9つしかないのでどうしていいかわかりません。 複数(15項目以上)の『or(または)条件』を抽出する方法をご存知でしたらお教えください。

  • Access抽出クエリの基本的なこと

    お世話になります。 初心者で苦労しながらもAccess2000でデータベースを作成しています。 非常に基本的な質問だと思うのですが、どなたかご教授願います。 日付を含むフィールドがあるテーブルがあり、クエリにてその日付から 年と月を拾っています。 ID   入力日   年:Year([入力日])   月:Month([入力日]) 1   2001/07/06    2001          6 2   2002/06/07    2002          6 3   2002/07/19    2002          7 別に作成したフォームに年と月を絞り込むためのコンボボックスをそれぞれ配置し、 入力された値によって上記クエリの抽出条件に反映させたいのですが、コンボに何も 入力されていないときは全てのデータを表示したいんです。 「コンボ月=2002」&「コンボ月=6」でID=2のデータのみを、 「コンボ月=(Null)」&「コンボ月=6」でID=1と2のデータを表示したいんです。 (判りにくくてすみません。。) このような場合、抽出条件に記述する式はどのように設定したら良いのでしょうか? IIfでIsNullの条件式を組んだのですが、Nullの時に返す値が判りません。 どうかよろしくお願いします。

  • accessである期間にいる人のクエリ抽出をしたい

    access2002を使っています。 テーブルAで、それぞれの人の活動開始日と終了日のデータを もっています。 名前    開始日    終了日 ─────────────────── 井上さん  2005/07/01  2005/11/30 渡辺さん  2005/09/22  2005/09/23 佐藤さん  2005/10/03  2005/10/05  ・  ・  クエリで、「2005/10/01~31まで活動した人」 (テーブルAで、活動期間の中に10月が1日でも含まれている人」を 抽出したいのですが、どうすればよいのかわからず困っています。 テーブルAで言えば、10月の活動者だと、 井上さんと佐藤さんを抽出したいのです。 よろしくお願いします。

  • accessである期間にいる人のクエリ抽出をしたい

    OFFICE2003 を使っています。 テーブルAで、それぞれのデータ入力日をもっています。 名前    入力日     ───────────── 井上さん  2007/07/01 鈴木さん  2007/08/01   渡辺さん  2007/08/22   佐藤さん  2007/09/03    ・  ・  クエリで、データ入力日「2007/08/01~08/31範囲の人」の条件で 抽出したいのですが、どうすればよいのかわからず困っています。 テーブルAで言えば、8月のデータ対象者だと、 鈴木さんと渡辺さんを抽出したいのです。 VisualBasicとかは、まだ勉強不足でわかりません。 よろしくお願いします。

  • クエリで日付の抽出条件

    アクセスのクエリで日付の条件抽出をしたいのです。シャープ(#)が日付のリテラル値ということまではつき止めたのですが、ここで問題発生です。 文字列には*や?のような便利な文字が使えるのに、日付で使おうとするとエラーになってしまいます。 例えば#01/05/2?# のように2001年5月20日~29日を抽出しろ、としても出来ません。 日付抽出には*や?のような文字はないんでしょうか? どうしてもないようなら関数でもしょうがないのですが、関数だと#01/1?/?3# (2001年10月~12月のうち、03、13、23日を抽出)みたいな複雑な命令が(簡単には)出来ないような気がするんです。 どなたかお助け下さい。

  • Access パラメータクエリの抽出条件で、月日だけの入力で2007年のデータを抽出したい

    Access のパラメータクエリで2007年の4/29~5/6までを月と日の指定だけで(4/29~5/6)選べるように記述するにはどのように書けばよいですか? 日付列の抽出条件に5/3などと記述すると2009年と判定され抽出できません。 一応抽出条件に、 2007\"/" & [(4/29~5/6)] と書いてみたのですがうまくできませんでした。 お願いします。

  • 「並び替えとフィルター」を使って空白以外を抽出

    シート1に別のシートから抽出した人名が並んでいます。 シート2にも別のシートから抽出した数字が並んでいます。 人名と数字は同じ行/列に格納されます。 シート1もシート2も空白が含まれています。 シート3に人名と数値を隣り合わせで格納したいのです。 シート1とシート2共に、「並び替えとフィルター」を使って空白以外を 抽出したいのですが、「昇順/降順」を使うと、人名と数字の関連が崩れる ので困っています。 「並び替えとフィルター」で不可能ならば、別な方法でも構いません。 ご教示いただけますようお願い致します。 シート1                 シート2   A   B   C   D         A   B   C   D 1 太郎     次郎         1 100       10 2 三郎 花子     春子     2   5  200       50 3         秋子 夏子     3         500  100 4 四郎 五郎 六郎         4  80  300  400 5 七郎         冬子     5 300            60 シート3   A   B   C   D   E   F   G   H 1 太郎 100  花子 200  次郎 10  春子 50 2 三郎   5  五郎 300  秋子 500  夏子100      3 四郎  80          六郎 400  冬子 400    4 七郎 300      5