- ベストアンサー
アクセスのフォームで期間検索するには?
アクセスの検索フォームで、レコードを別フォームで表示して、表示したフォームでフィールド毎に検索しています。 日付の部分だけ、検索方法が分からず、なかなか出来ない状態です。 このフォームに、開始と終了のテキストボックスを設置しています。 ボタンを押して、開始と終了の期間のデータを表示出来ればと思います。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>日付フィールドは、日付/時刻型でyyyy/mm/ddで入力しています。 ということですから Private Sub 期間検索_Click() Me.Filter = "日付 Between #" & Me.[開始] & "# And #" & Me.[終了] & "#" Me.FilterOn = True End Sub
その他の回答 (4)
- Dxak
- ベストアンサー率34% (510/1465)
#1です すみません 肝心なの忘れてました > Me.Filter = "Between #" & _ Me.Filter = "[フォームのレコードソースに使われるフィールド] Between #" & _ > Format(Me.[開始],"yyyy/mm/dd") & "# And #" & _ > Format(Me.[終了],"yyyy/mm/dd") & "#" Betweenの前に、どのフィールドが!って指定して無いですね 他は、ぱっと見大丈夫そうですが・・・ 検索フォームと、表示したフォームって別物?
お礼
対応ありがとうございます。
- Dxak
- ベストアンサー率34% (510/1465)
#1です 立て続けで申し訳ない Me.Requery は、Acc97の場合は、必要だったと思うけど・・・Acc2000以降だと、2回フィルタが動作するので、消してね
補足
この様にしてみました。 Private Sub 期間検索_Click() Me.Filter = "Between #" & _ Format(Me.[開始], "yyyy/mm/dd") & "# And #" & _ Format(Me.[終了], "yyyy/mm/dd") & "#" Me.FilterOn = True End Sub 同じエラーが出てしまいます。。
- Dxak
- ベストアンサー率34% (510/1465)
#1です あらま^^;;; > Private Sub 期間検索_Click() > Between [開始] And [終了] > End Sub こう言う使い方するなら・・・ Private Sub 期間検索_Click() Me.Filter = "Between #" & _ Format(Me.[開始のコントロール名],"yyyy/mm/dd") & "# And #" & _ Format(Me.[終了のコントロール名],"yyyy/mm/dd") & "#" Me.FilterOn = True Me.Requery End Sub と、言う使用方法かな?
補足
Private Sub 期間検索_Click() Me.Filter = "Between #" & _ Format(Me.[開始],"yyyy/mm/dd") & "# And #" & _ Format(Me.[終了],"yyyy/mm/dd") & "#" Me.FilterOn = True Me.Requery End Sub この様に、作ってみましたが、エラーが出てしまいます。。 このオブジェクトに値を代入できません、と言うエラーが出てしまいます。
- Dxak
- ベストアンサー率34% (510/1465)
> このフォームに、開始と終了のテキストボックスを設置しています。 これが、曲者だね・・・日付としてデータがなってるのか?ただのテキストとしてデータが、入ってるのか? 期間として行うなら Between [開始] And [終了] で、抽出可能だけど・・・これは、日付として入力されている場合 テキストの場合は、日付に変換 Between CDate([開始]) And CDate([終了]) あたりで、簡単に行けばよいのだけど・・・ "20080901"あたりで、入ってれば、Format関数で形式を整えてとなるね
補足
日付フィールドは、日付/時刻型でyyyy/mm/ddで入力しています。 この様にやってみました。 Private Sub 期間検索_Click() Between [開始] And [終了] End Sub エラーが出て、表示できませんでした。。
お礼
対応ありがとうございます。 解決出来ました。