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
大変ご丁寧にありがとうございます。
今回は2つ目の回答者様のものでやりたかったことができましたので、お教え頂いた方法は使いませんが、
今後ACCESSの使い方や、今回のやり方でもできないパターンが出てきた場合など、
ぜひぜひ参考にさせて頂ければと思います。
あとお二方に最高ポイントをお付けしたいのですが不可能なので、こういうポイントの付け方になりましたこと、お詫びし、アドバイスに感謝いたします。
ありがとうございました!
No.2
- 回答日時:
すでに入力されているテーブルから抽出するのかな
日付の抽出条件欄に
Between DateAdd("d",-Weekday([日を指定],2)+1,[日を指定]) And DateAdd("d",7-Weekday([日を指定],2),[日を指定])
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) 条件付き書式で文字入力 6 2022/08/29 10:40
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- Access(アクセス) Accessのデータ型の日付/時刻型について 1 2023/04/02 17:03
- Excel(エクセル) エクセルVBA オートフィルタでの絞り込みと並び替えについて 1 2023/07/08 13:08
- 病院・検査 7/1土曜日に家族が入院しました。 先週の金曜日と今週の月曜日に担当のドクターから電話で病状の説明が 5 2023/07/13 02:40
- 地球科学 太陽系の惑星と週(日曜日~土曜日)、月(1月~12月)に付いての質問です。 太陽系には、8つの惑星が 3 2022/10/08 22:32
- その他(就職・転職・働き方) 祭日の所定労働時間 4 2023/04/26 12:00
- Excel(エクセル) 出勤簿の土、日、休日に色付けできない 2 2022/08/04 20:10
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Accessで日付のみのデータから週次集計したい
Access(アクセス)
-
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
-
4
accessクエリで直前の水曜日〜火曜日の期間の条件
Access(アクセス)
-
5
Access 各レコードの中での最大フィールドを抽出したい
Access(アクセス)
-
6
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
7
フォームで入力しても反映されない
Access(アクセス)
-
8
Access を×ボタンで閉じる時、レコード保存したくない。
Visual Basic(VBA)
-
9
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
10
アクセスVBAのMe!と[ ]
Access(アクセス)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
「年」と「月」だけの日付の表示方法
Excel(エクセル)
-
13
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
14
【エクセル2002】 週番号から日付を返すには?
Windows 10
-
15
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
16
「#エラー」の回避
Access(アクセス)
-
17
今週分だけ表示させたい
その他(データベース)
-
18
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
19
SQL Server2005のクエリで「今週のデータ」を抽出したいので
SQL Server
-
20
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンで購入したデーターが...
-
「24日の0時」って・・・
-
差し込み印刷に当日の日付が入...
-
回覧板の日付について質問です...
-
「時間」、「期日」、「日付」...
-
日付の大小の表現
-
ACCESSで日付ごとに自動連番(...
-
2つの日付の中間の日付 エク...
-
AccessのDMax関数の複数条件式...
-
word文書で赤文字テキストを抽...
-
エクセル マクロで指定日にメ...
-
履歴書の日付間違いで落ちますか。
-
カレンダーで日付をワンタッチ...
-
指定の日付以前かつ最新を取得...
-
下の画像はアンドロイドタブレ...
-
エクセル マクロ 名前を付けて...
-
ACCESS97でカレンダーコントロ...
-
回転印の使い方
-
SQL 複数条件での検索について
-
日付以外のデータを抽出したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンで購入したデーターが...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
差し込み印刷に当日の日付が入...
-
日付の大小の表現
-
「時間」、「期日」、「日付」...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
履歴書の日付間違いで落ちますか。
-
EXCELで日付を****年上期、****...
-
エクセルで6ヵ月後を自動入力で...
-
ACCESSで日付ごとに自動連番(...
-
WEEKDAYが反映されない
-
2つの日付の中間の日付 エク...
-
Excelでヘッダに前日の日付を表...
-
エクセルで日付け表示で、明治...
-
ACCESSで1月1日~12月31日まで...
-
アンドロイドスマホ。カメラに...
-
差込印刷 縦書きで和暦(漢数...
-
Excel関数 基準日に一番近い指...
おすすめ情報