プロが教えるわが家の防犯対策術!

ACCESSをつかっています。
年月日、氏名、その他のレコードを持つテーブルがあります。
フォーム、レコードで検索条件のコンボボックスがあるとします。
条件で、2002年4月を選ぶと、2002/04/01~2002/04/30
までのデータを出せるようにしたいのです。

他の質問にあるあいまい検索等を参考にしましたが、コンボボックス
と、テーブル、フォームの関係が頭の中でごちゃごちゃになって
つながりません。最終的にはフォームの上部にコンボボックスがあり、
下部(サブフォームでしょうか)に抽出されたデータがでればと
思っています。なにぶん初心者なもので質問自体もわかりにくいと
思いますがよろしくお願いします。

A 回答 (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

関数などの詳細はヘルプを参照して下さい。
では。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。なるほど、という答えでした。
まだ完全にはできていませんが、とてもよいヒントとなり、
もう少しでできそうです。頑張ってみます。

お礼日時:2002/04/06 00:02

月単位で良いのならACCESSではmonth関数が使えますから、



where month(年月日)=4

と言うような検索式を設定すればOKでしょう。もし年号が必要ならandでyear関数を追加すれば絞れますね。
当然コンボボックス内の条件「2002年4月」から年号と月のデータ抽出はする必要が有りますが。
    • good
    • 0
この回答へのお礼

ありがとうございました。ヒントになりましたので頑張って
やってみます。

お礼日時:2002/04/05 23:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A