• ベストアンサー

アクセスのクエリで困ってます。

契約日から6ヶ月めの日付をだして、さらにその日を検索したいんですが・・・ テーブルに契約日のデータがあります。 クエリで、    フィールドに6ヶ月: DateSerial(Year([竣工金入金日]),Month([竣工金入金日])+7,Day([竣工金入金日]))    抽出条件にBetween [開始日] And [最終日] としました。 抽出条件を入れなければ正常に値がでましたが、 抽出条件を入れると  ”式が正しく入力されていないか、複雑すぎるために評価出来ません。たとえば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を簡単にして下さい。” という、エラーメッセージが出てしまいます。 解消する方法を教えて下さい。

noname#2643
noname#2643

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

  • ベストアンサー
  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.2

「6ヶ月後の日付」を DateAdd("m", 6, [竣工金入金日]) としてみてください。 なお、関係演算(選択)を伴わないものは副問い合わせとは言いません。

noname#2643
質問者

お礼

教えて頂いたとおりやったら、できました。 本当に有り難うございました。

noname#2643
質問者

補足

お答えありがとうございます。 教えて頂いたとおりにやってみたら、 できましたー! ありがとうございました。 もうひとつ困っていることがあるんですが・・・ 教えて頂いた要領でクエリに6ヶ月目と12ヶ月目 を設定しました。 そうすると、6ヶ月は抽出期間内で12ヶ月目は抽出期間内ではない       12ヶ月は抽出期間内で6ヶ月目は抽出期間内ではない ものがでてきますが、 このクエリからレポートを作った時に 抽出期間内の日付の背景に色をつけたりできますか。 初心者なので、説明もわかりにくくて申し訳有りませんが、 もし、おわかりになりましたら、教えて下さい。

その他の回答 (1)

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.1

日付を求めるクエリーと範囲指定で抽出するクエリーを分けてはいかがでしょうか? 簡単に説明しますと日付計算クエリーをまず作成し範囲指定クエリーで日付計算クエリーを テーブル要素と同じように扱えばよいと思います。 いわゆる、副問い合わせというやつです。

noname#2643
質問者

お礼

回答有り難うございました。 まだ、初心者なのでTMINETさんが、教えてくださった 方法は出来ませんでしたが、有り難うございました。

関連するQ&A

  • Accessでクエリの抽出条件がうまくいきません…

    お忙しいところ、恐れ入ります。 Accessで1年間の日付の入った、テーブルがあります。 それをクエリで、月単位で(一か月分)表示させたいのですが、うまくいかないので、何がいけないのか、教えていただけますでしょうか。 現在、クエリの抽出条件には、Year(Now()) And Month(Now())と記入しています……

  • accessクエリの抽出条件

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

  • アクセス クエリー抽出条件 今月初日から

    winXp access2003 クエリー デザインビューにおいて 日付フィールドを 今月の初日からで 検索したいのですが 抽出条件を >=""Year(Now())"/"Month(Now())"/"1"" >="Year(Now())"/"Month(Now())"/"1" これですと いずれも うまくいきません 抽出条件で データ型が一致しません とでます 宜しくお願い致します

  • AccessのクエリをSQL Server2005で書き直したい。

    AccessのクエリをSQL Server2005で書き直したい。 誕生日の翌日を雇用契約の開始日(契約開始日)とするAccessのクエリがあります。 契約開始日: DateSerial(Year(Now()),Mid([生年月日],6,2),Right([生年月日],2)+1) (AccessのSQL文は:SELECT 給与台帳.生年月日, DateSerial(Year(Now()),Mid([生年月日],6,2),Right([生年月日],2)+1) AS 契約開始日 FROM 給与台帳;) これを SQL Server2005 に書き直したいのですが、その方法がわかりません。 どう書き直せばよろしいですか? よろしくお願いします。

  • ACCESS クエリ 「先々月末日」 を求める関数

    ACCESSのクエリ上にて 作業をする日が属する月の「先々月末日」を返す関数を教えて頂きたく存じます。 先々月初は 「 DateSerial(Year(Date()),Month(Date())-2,1)」 で求める事が出来ましたが、先々月末日がうまくいきません。 何卒よろしくお願いいたします。

  • Access 抽出クエリーについての条件

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

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

  • アクセスの期間抽出

    今月の初日から今日まで・・・は、Between DateSerial(Year(Now()),Month(Now()),1) And Now()だと知りました。 では、今年の初日から今日までは?

  • ACCESS  クロス集計クエリの抽出条件について

    http://www.accessclub.jp/samplefile/samplefile_39.htm 上記サイトのクロス集計クエリのやり方で、抽出条件を Between [Forms]![フォーム1]![開始日] And [Forms]![フォーム2]![終了日] とする場合、 クエリパラメータダイアログにはどう記述したらよいのでしょうか? [Forms]![フォーム1]![開始日]と[Forms]![フォーム2]![終了日]をそれぞれ別々にテキスト型としてもエラーですし、(「式が複雑です」とのエラー) 条件を全て記述しても、「かっこの使い方が正しくありません。」とのエラーです。 何が間違っているのでしょうか?

  • 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年でも抽出したいのですが、何か方法はないでしょうか?

専門家に質問してみよう