• ベストアンサー

accessのフォームフィルタで 土日だけを抽出したい

ACCESS2000 初心者です。よろしくお願いします。 フォームのフォームフィルタで日付欄から土日だけをを抽出する式を教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

連続した曜日を抽出する時には、判別しやすい形にすることができます。 Weekday の、第2引数を使います。 Weekday(日付,2) とすると、月曜日から 1 が振られます。  土曜:6  日曜:7 Weekday(日付,2) >= 6 で土日が判別できます。 また、 Weekday(日付,7) とすると、土曜日から 1 が振られます。  土曜:1  日曜:2 Weekday(日付,7) <= 2 で土日が判別できます。 範囲をどちらかに偏らせておくと、判別は楽なのかなと思います。 どちらかと言えば、土日なので、土曜を指定する後者の方が良いのかも。 以下手順でできるようです。 「レコード」→「フィルタ」→「フォームフィルタ」から 入力欄に Weekday([日付],7)<=2 を入力し フォーム上で、マウス右ボタンで「フィルタ/並べ替えの実行」を選びます。 または、 通常のフォーム上の日付をクリックし、マウス右ボタンで、 フィルタの対象欄に、Weekday([日付],7)<=2 を入力 設定された内容は、以下手順で編集できます。(初めからこの画面でも) 「レコード」→「フィルタ」→「フィルタ/並べ替えの編集」 と辿ると、クエリのデザイン画面と同じような表示になります。 そこで、フィールドに Weekday([日付],7) を入れ (入れると 式:Weekday([日付],7)に変わります) 抽出条件に <=2 とし、 マウス右ボタンで「フィルタ/並べ替えの実行」を選びます。 実行した後は、編集画面は閉じて良いです。 編集画面で、Weekday([日付]) を入れ 抽出条件に 1 Or 7 を設定/実行しても同じです。 ※編集画面にはSQLビュー的な機能はないようです。 また、フォーム上のボタンを押した時に土日に絞り込むのなら、以下の記述で良さそうです。 Private Sub btn1_Click()   Me.Filter = "Weekday([日付],7)<=2"   Me.FilterOn = True End Sub

puyopa
質問者

お礼

大変親切丁寧な回答をありがとうございました。 式の意味まで教えてくださり、おかげさまで理解することが出来たので、感激しております。

その他の回答 (1)

noname#182251
noname#182251
回答No.1

フォームフィルタはほとんど使ったことがないので、替わりにクエリで抽出する方法を。 下記SQL文は date テーブルから 日付 フィールド(日付/時刻型)が土日を抽出します。 SELECT date.日付 FROM [date] WHERE (((Weekday([日付]))=1)) OR (((Weekday([日付]))=7)); SQL文を見るには、ツールボタンのビューから「SQLビュー」を選びます。 フィルタでも Weekday 関数を使用すればよいのかもしれません。

puyopa
質問者

お礼

参考になりました。 ありがとうございました。