- ベストアンサー
年月日を持つテーブルから年月を指定して抽出したいのですが
ACCESSをつかっています。 年月日、氏名、その他のレコードを持つテーブルがあります。 フォーム、レコードで検索条件のコンボボックスがあるとします。 条件で、2002年4月を選ぶと、2002/04/01~2002/04/30 までのデータを出せるようにしたいのです。 他の質問にあるあいまい検索等を参考にしましたが、コンボボックス と、テーブル、フォームの関係が頭の中でごちゃごちゃになって つながりません。最終的にはフォームの上部にコンボボックスがあり、 下部(サブフォームでしょうか)に抽出されたデータがでればと 思っています。なにぶん初心者なもので質問自体もわかりにくいと 思いますがよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 コンボボックス(cbo年月)のリストデータは、"2002年4月"のように日付で認識出来る文字列とします。 コンボボックスのClickイベントまたはChangeイベントに次のように書きます。 Dim startYM As Date Dim endYM As Date Dim myFilter As String If Me!cbo年月.Value = "" Then '未選択 Exit Sub End If '年月だけだと"○○○○/△△/1"と1日を返す startYM = CDate(Me!cbo年月.Value) '1ヶ月後の前日(つまり今月の末日)を返す endYM = DateAdd("m", 1, startYM) - 1 'フィルタに設定する抽出条件文字列を作る myFilter = "年月日 BETWEEN #" & startYM & "# AND #" & endYM & "#" 'フォームにフィルタをかける Me.Filter = myFilter Me.FilterOn = True 関数などの詳細はヘルプを参照して下さい。 では。
その他の回答 (1)
- yohkah
- ベストアンサー率53% (46/86)
月単位で良いのならACCESSではmonth関数が使えますから、 where month(年月日)=4 と言うような検索式を設定すればOKでしょう。もし年号が必要ならandでyear関数を追加すれば絞れますね。 当然コンボボックス内の条件「2002年4月」から年号と月のデータ抽出はする必要が有りますが。
お礼
ありがとうございました。ヒントになりましたので頑張って やってみます。
お礼
どうもありがとうございます。なるほど、という答えでした。 まだ完全にはできていませんが、とてもよいヒントとなり、 もう少しでできそうです。頑張ってみます。