• ベストアンサー

Accessで教えてください。

「生年月日」が入力されているフィールドがあります。この値をクエリーを使って「年」、「月」、「日」に分割したいのですが、方法を教えてください。 Excelのように関数「Year」、「MONTH」、「DAY」を使ってできれば良いのですが。 Accessでの関数の設定方法が分かりません。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

FORMAT文が使用できます。一部バグのあるバージョンあり。 年:Format([日付],'yyyy') 月:Format([日付],'mm') 日:Format([日付],'dd')

makigogo
質問者

お礼

早速の回答ありがとうございました。 おかげで出来ました! 式ビルダを使ったときに見慣れない《Expr》が表示され戸惑ってしまいました。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

#1です。 「一部バグ」とは下記URLが詳しいです。 「生年月日」が「文字列8バイト(19991231)」であるとか、 「文字列10バイト(1999/12/31)」であるとかならば MID関数(等)で切り出してください。 「文字列8バイト(19991231)」 年:mid([生年月日],1,4) left([生年月日],4)でも可 月:mid([生年月日],5,2) 日:mid([生年月日],7,2) right([生年月日],2)でも可 「文字列10バイト(19991231)」 年:mid([生年月日],1,4) left([生年月日],4)でも可 月:mid([生年月日],6,2) 日:mid([生年月日],9,2) right([生年月日],2)でも可

参考URL:
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFunctionErrorInQuery.html
  • dober-o
  • ベストアンサー率59% (260/439)
回答No.2

Excelと同じようにできますよ =Year([生年月日]) =month([生年月日]) =Day([生年月日])

makigogo
質問者

お礼

早速の回答ありがとうございました。 出来ました。

関連するQ&A

  • 日付の範囲を月単位で取り出したい

    年月日~年月日を月単位で取り出したいのですが、 phpのリファレンスを見ても、日付に関して使えそうな関数が見当たりませんでした。 ありそうな処理なので、関数の組み合わせで、 スマートな方法はないでしょうか。 最後はどのような配列の形になってもいいのですが、 以下のように分けたいのです。 2011/8/12~2012/3/20 ↓ 2011/8/12, 2011/8/31 2011/9/1,2011,9,31 ・ ・ 2012/3/1~2012/3/20 $period (0 => array('year' =>2011, 'month' => 8, 'day' => 12), 1 => array('year' =>2012, 'month' => 3, 'day' => 20)); こんな感じで年月日が入っています。 function separeted($period){   $start = $period[0];   $end = $period[1];   $result[] = $start;   $result[] = array('year' => $start['year'], 'month' => $start['month'], 'day' => $this->getEndDay($start['month'])); この先、どのようにするかで止まっています。 全く別の方法でも、何かヒントでもいいので、アドバイスください。 getEndDay()関数は、引数の月の最後の日を返す自作関数です。 3月なら31、4月なら30を返します。

    • 締切済み
    • PHP
  • Accessのクエリ

    アクセス超初心者で困っています。 アクセスのクエリで、 「フィールドにデータが入力されている数」 を関数はありますでしょうか? エクセルで言えば、count関数に当たる関数を探しています。 よろしくお願いします。

  • アクセスで日付を年と月に区分する時に?

    こんばんは。アクセスで日付(依頼日)を年と月に区分する時に、クエリに下記のように関数の入力をしたのですが、うまくいきません。『式に未定義関数 '「年:Year'があります。』とでます。どこが悪いのか教えていただけないでしょうか?よろしくお願いします。 年:Year([依頼日]) 月:Month([依頼日])

  • Excel VBAで「date」関数を使いたい

    VBAを使用して年月日を入力してます。 セルに表示だけなら Year & "/" & Month… とかでもいいんですが、その日付で計算を行いたいんです。 何日足す、とか。。 それでExcelで使える Date(Year,Month,Day) を思い出したんですが、VBAではエラーになってしまいました。 Application.WorksheetFunction.Date(Year, Month, Day) や Application.Date(Year, Month, Day) もダメでした。 どのようにしたら入力した日付で計算が行えるでしょうか?

  • Accessの選択クエリーについて教えて下さい。

    Access2002です。 フイールド名DATEには01/01~12/31まで日付型(mm/dd)で入っています。 このデーターベースからクエリーで今日(MonthとDay)をクエリー実行で取り出すにはフイールドDATEの抽出条件はどのように書けばよいのでしょうか。よろしくお願いします。

  • ACCESS 生年月日から数え年の計算方法

    ACCESS2003を使っています。 クエリーで「生年月日」フィールドの値を利用して、「年齢」フィールドに数え年を表示したいのですが、下記のように「生年月日」には、年、年月、年月日と値がバラバラです。 表示したいのは、ただ正月になったら1足すだけの数え年なので、何かいい方法があったら教えてください。 名前|生年月日 |年齢 ああ|1973    | いい|1973/12/ | うう|1971/12/22|

  • accessクエリの抽出条件

    access初心者です。 フィールド:「年」 数値型 フィールド:「月」 数値型 があり クエリの抽出条件に 年:2001 月:11 でクエリが実行できます。 これを当月分をクエリ実行できるように 年:year(date()) 月:month(date()) のように入れて当月のレコードを抽出したいのですが 「式に未定義関数dateがあります」というメッセージが出ます。どこが間違っているか助言をいただけると助かります。

  • 【Access2000】月末の日付を条件にクエリーから抽出する方法

    フォーム[フォーム1]にある[年月日]フィールド(非連結)に入力されたデータをもとにして、そのデータの末日より以前、という条件で抽出を行いたいと思います。クエリーの抽出条件には以下の式を採用しました。 <=DateValue(Year([Forms]![フォーム1].[年月日]) & "/" & (Month([Forms]![フォーム1].[年月日]))+1 & "/" & 1)-1 この式を使用すると、確かに月末は出るのですが、12月の時にエラーになってしまいます。原因も12月で1を足すと、13になるのでおかしくなるのでは?と特定できているのですが、どう回避すれば良いのかわかりません。何か方法がありましたら、お教えくださいませ!!宜しくお願いいたします。 ちなみにOSはWindows2000を使用しています。

  • アクセスで年度で表示

    アクセス2000 初心者です。 [伝票テーブル.TBL] にデータがあります。 フィールド は  [日付] と [売上] です。 [日付] について 年別でなく 年度別の 売上 合計 と 件数 を 集計 をしたいのです。(4月1日から3月31日まで) (1)レポートを使う場合 ウイザードを使って、グループレベルを [日付] にする。そこで グループ間隔の設定 の中に、"年" と "四半期" しかありません。 "年度" がないので、困っています。 (2)クエリを使う場合 選択クエリで 年度 の 式: を作ってみようとして年度: if(month([日付])<4,year([日付])-1989,year([日付])-1988)などと、何も分からずにやってみましたが、予想どおりうまくいきませんでした。 関数は、何を使うのでしょうか? [ とか " が間違っていますか? これで、できた選択クエリ を [年度]について、クロス集計クエリウイザードで処理したらできるのではないかと思っていますが、間違いでしょうか?もっとよい方法があるでしょうか? よろしくお願い致します。

  • 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の時に返す値が判りません。 どうかよろしくお願いします。

専門家に質問してみよう