• ベストアンサー

ACCESSで日付を指定すると、その1週間のデータを月曜~日曜まで並ばせるには‥

ACCESSで日付の入ったデータがあります。 これらのデータから、日を指定するとその週の月曜~日曜まで出るようにしたいのですが、そのようなことはできるのでしょうか。 また、できればその次の週以降も表示させたいのですが‥。 宜しくお願いします。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.3

少し、回答を質問に沿ったものに修正しておきます。 質問者は月曜日を週の始まりとしているようです。 この場合、先に示した Monday関数、Sunday関数は、希望の日付を戻さないと思います。 次は、変形版のMonday関数、Sunday関数のテスト結果です。 [イミディエイト] ? Monday("2007/05/14") 2007/05/14 ? Monday("2007/05/20") 2007/05/14 ? Sunday("2007/05/14") 2007/05/20 ? Sunday("2007/05/20") 2007/05/20 2007/05/14(月曜日) 2007/05/20(日曜日) ですので、先の回答で示した関数の不具合は是正されています。 Public Function Monday(ByVal Hiduke As Date) As Date   Dim D As Date      D = DateAdd("d", 1, DateAdd("d", (Weekday(Hiduke) - 1) * -1, Hiduke))   Monday = D + (D > Hiduke) * 7 End Function Public Function Sunday(ByVal Hiduke As Date) As Date   Dim D As Date      D = DateAdd("d", -1, Monday(Hiduke + 6))   Sunday = D - (D < Hiduke) * 7 End Function

shigaieto
質問者

お礼

大変ご丁寧にありがとうございます。 今回は2つ目の回答者様のものでやりたかったことができましたので、お教え頂いた方法は使いませんが、 今後ACCESSの使い方や、今回のやり方でもできないパターンが出てきた場合など、 ぜひぜひ参考にさせて頂ければと思います。 あとお二方に最高ポイントをお付けしたいのですが不可能なので、こういうポイントの付け方になりましたこと、お詫びし、アドバイスに感謝いたします。 ありがとうございました!

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

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

すでに入力されているテーブルから抽出するのかな 日付の抽出条件欄に Between DateAdd("d",-Weekday([日を指定],2)+1,[日を指定]) And DateAdd("d",7-Weekday([日を指定],2),[日を指定])

shigaieto
質問者

お礼

すごい‥。さんざ悩んだのですが、数行でできてしまうのですね‥。 本当に助かりました。ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.1

まずは、[イミディエイトウインドウ] を開いて日曜日を求めてみましょう。 ? Weekday("2007/05/09") 4 ? DateAdd("d",-3,"2007/05/09") 2007/05/06 ? DateAdd("d", (Weekday("2007/05/09")-1)*-1, "2007/05/09") 2007/05/06 ? DateAdd("d", (Weekday("2007/05/06")-1)*-1, "2007/05/06") 2007/05/06 ? DateAdd("d", (Weekday("2007/05/12")-1)*-1, "2007/05/12") 2007/05/06 次に、土曜日を求めてみましょう。 ? DateAdd("d", (7-Weekday("2007/05/06")), "2007/05/06") 2007/05/12 ? DateAdd("d", (7-Weekday("2007/05/12")), "2007/05/12") 2007/05/12 ここまでテストすれば、Monday関数、Saturday関数も作成可能です。 ? Monday("2007/05/06") 2007/05/07 ? Monday("2007/05/12") 2007/05/07 ? Saturday("2007/05/06") 2007/05/12 ? Saturday("2007/05/12") 2007/05/12 さて、実際に、テーブル[日報]より月曜日から土曜日までを抽出してみましょう。 <クエリ1> ID______日付 127____2007/05/07 128____2007/05/08 129____2007/05/09 130____2007/05/10 131____2007/05/11 132____2007/05/12 Accessが作成したクエリ1を[SQLビュー]で見ると、次のようです。 SELECT 日報.ID, 日報.日付, * FROM 日報 WHERE (((日報.日付) Between Monday("2007/05/09") And Saturday("2007/05/09"))); Public Function Monday(ByVal Hiduke As Date) As Date   Monday = DateAdd("d", 1, DateAdd("d", (Weekday(Hiduke) - 1) * -1, Hiduke)) End Function Public Function Saturday(ByVal Hiduke As Date) As Date   Saturday = DateAdd("d", 7 - Weekday(Hiduke), Hiduke) End Function ここまで書いて月曜日から日曜日という特殊な抜き出し方であることに気が付きました。 同じ要領で Sunday関数を作ればいいと思います。 Public Function Sunday(ByVal Hiduke As Date) As Date   Sunday = DateAdd("d", 6, Monday(Hiduke)) End Function

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

関連するQ&A

  • Javascript 週間カレンダーを月曜始まりに

    現在、こちらのような週間カレンダーをJavascriptを使い作成しております。 http://sample.ul-inc.jp/ 曜日の取得、曜日によるタブの自動切り替えの設定は出来たのですが、週の日付の更新が日曜日になってしまいます。 日曜の0時に週の日付が更新されてしまう状態です。 なので、日曜日に閲覧すると次の週の日付が表示されてしまっています。 こちらを、月曜の0時に日付が更新されるように設定をすることは可能でしょうか? 何卒よろしくお願いいたします。

  • ACCESSで入力した日付の週の日曜日を

    ACCESSで日付を入力して、その週(週のスタートを日曜日として)の 日曜日の日付を求めたいのですがどのようにしたら良いでしょうか。 以前に質問させて頂いたのですが解決しないので再度宜しくお願い致します。

  • ACCESSで入力した日付の週の日曜日を

    ACCESSで日付を入力して、その日付の週の日曜日を求めるには どのようにしたら良いでしょうか。 宜しくお願い致します。

  • クエリで日付指定 〇アクセス2000 →×2010

    お世話になります。クエリでの日付指定が出来なくて困っています。 今までAccess2000を使用していました。 クエリである期間のデータを取り出そうとするときに、 例えば、>=2012/11/05 and <=2012/11/09 のように入力していました。 (↑を入力してEnterを押すと、自動的に>=#2012/11/05# and <=#2012/11/09#の表示になります。) それが、Access2010で同様に入力すると、 >=#2012/11/05(月)# and <=#2012/11/09(金)# となり、 そのまま保存しようとすると、 「指定した式に不適切な日付の値が含まれています。」と表示され、 #2012/11/05(月)# の部分が暗転になり、保存ができません。 入力を変えて、 >=2012-11-05 and <=2012-11-09 や >=2012年11月05日 and >=2012年11月09日 にしても、 Enterを押したら >=#2012/11/05(月)# and <=#2012/11/09(金)#のような表示になり、 さらに##の直入力も試しましたが結果は同じく出来ませんでした。 またBetweenも使ったり、 極端に、 11/09 の 9を一度消してそのまま打ち直しても、 「指定した~」と出てしまい、ダメでした。 2010になったときに日付を指定する方法が変わったのでしょうか。 わかる方ご教授願えますか? PS Access2000はまだ使える状態で、 この投稿をする直前にも日付指定をしてみましたが、こちらは当然問題なく作動します。

  • 日曜日の日付

    お世話になります。PHPで質問です。 似た様な質問はあったのですが、出来なかったので質問させて頂きます。 アクセスされた時に、その週の日曜日の日付を取得したいです。 アクセス日が2008年4月3日(木)の場合、2008年3月30日(日) 宜しくお願いします。

    • ベストアンサー
    • PHP
  • [VBA] 年度を指定し、以降の日付を表示する

    いつも大変お世話になっております。 しばらく、EXCEL担当になり、頻繁にご質問させていただくかもしれませんが、 宜しくお願いいたします。 回答をくださる方々にはいつも大変感謝をしております。 今回は、年度を指定し、以降の日曜日から始まる日付を取得できるVBAを考えております。 プルダウンで年度を指定すると、日曜から始まる日付が「~週」とプルダウンで表示され、 選択すると、固定セル(どこでも可)に 2012/8/15といった形式で、入力されるというものです。 年度指定時に、本日付近の週が表示されるとなお良いです。 追伸 実は、このあと、もう少しややこしい難題がありますので、再度投稿させていただきますが、併せて宜しくお願いいたします。 それでは、何卒宜しくお願いいたします。

  • 指定した日付が、その月の第何週かを求める方法

    月曜から日曜の作業内容を 書く報告書作成画面の作成をしています。 処理の一つに、 作成したい週の月曜の年月日を入力し、 日曜までの日付を自動的に画面に出す、 というものがあります。 さらに自動的に出した日曜日の日付から、 報告書作成週はその月の第何週かを求める、 (今月ですと10/6は第1週、10/13は第2週、 10/20は第3週、10/27は第4週、となります) という処理を作成したいのですが、 良いロジックが思い浮かびません。 (処理する月の日付と曜日を配列に入れて、 ループカウントで第何週かを求める、という 方法は思いついたのですが、効率が悪いと思うので…) 何か良いロジックがありましたら、 書き込みをお願い致します。

  • ACCESS2010で直近の日付を取得したいのです

    お世話になっています ACCESS2010で以下のことがやりたいのです 2つのテーブル「カレンダー」と「データ」があります データの中には「NO」と「指定日」というフィールドがあります データ no      指定日 9364     2012/08/06 9365     2012/08/10 9366     2012/08/11 9367     2012/08/12 カレンダーの中には「日付」と「日祭」というフィールドがあります カレンダー 日付         日祭 2012/08/04    0 2012/08/05    1 2012/08/06    0 2012/08/07    0 2012/08/08    1 2012/08/09    1 2012/08/10    1 2012/08/11    1 2012/08/12    0 「データ」テーブルを元にして作ったクエリーで、新たに追加した出荷日フィールドに、同じレコードの指定日よりも小さく、かつカレンダーテーブルで「日祭」にはいっている「1」を抜かした直近の日付を表示させたいのです その日付が「0」の場合はそのままの日付をとります それぞれの出荷日は以下のようにしたいのです データ クエリ no       指定日       出荷日 9364     2012/08/06     2012/08/04 9364     2012/08/10     2012/08/07 9345     2012/08/11     2012/08/07 9372     2012/08/12     2012/08/12 これはどのようにしたらできるのでしょうか 大変困っています 教えていただけると助かります

  • Accessで範囲指定表示

    範囲入力した日付をAccessで表示したいんですが、どうしたらいいですか? VBでデータ入力→ストアドプロシージャで追加→Accessで表示 入力データは 2008/12/23 などです 範囲指定ですから2つあります Accessで表示するのは範囲日付のデータを表示します プロシージャは削除処理→追加です Accessのページヘッダーに範囲日付を表示します 仮に受付日とします 受付日 2008/12/23 ~ 2009/01/01 みたいに表示したいです うまくできないです VBAつかったらできるんですか? やり方を教えてください。お願いします 箇条書きですがすみません ちなみにSQL Server Management Studio Expressを使ってます

  • 週の始まりは、日曜日それとも月曜日?

    常識をお聞きするようでお恥ずかしいのですが..... よく「今週の○○曜日」という言い方をしますが、週の始まりは日曜日なのでしょうか、それとも月曜日なのでしょうか。 私は、カレンダーを見ると日曜日から始まっているため、週の始まりは日曜日だと思っていますが、それで正しいでしょうか。