- ベストアンサー
ACCESSのFILTERについて教えてください。
いつも、お世話になっております。 以下について教えてください。 会社内のシステムのデータからACCESSでリンクを張って、日付(テキスト型)の絞り込み機能を作りたいと思い、以下のようにPGをくんだのですが、「直前の操作は取り消されました」と出て原因がわかりません。 (ちなみにYYYYMMDDの形で入力します。) Me.Filter = "[日付] >= " & Me.txt_開始 & "And" & "[日付] <= " & Me.txt_終了 Me.FilterOn = True BETWEENでやってみても同じでうまくいきませんでした。 すみませんが、原因とうまく行く対処法を教えてください。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Option Compare Database Option Explicit Private Sub コマンド_日付による抽出_Click() Me.FilterOn = False Me.Filter = "日付 >= '20070201' AND 日付 < '20070401'" Me.FilterOn = True End Sub Private Sub コマンド_日付による抽出_II_Click() Me.FilterOn = False Me.Filter = "日付 >= '20070301' AND 日付 < '20070401'" Me.FilterOn = True End Sub これで、抽出範囲を切り替えることが可能です。 ポイントは、文字列をシングルクォーテーション(’)で囲んでいる点です。 Me.Filter = "[日付] >='" & Me.txt_開始 & "' And " & "[日付] <= '" & Me.txt_終了 & "'" と修正すればエラーは回避されます。 Private Sub コマンド_日付による抽出_III_Click() Me.FilterOn = False Me.Filter = "日付 BETWEEN '20070201' AND '20070228'" Me.FilterOn = True End Sub と、SQL文の WHERE節の文は全てOKです。
その他の回答 (1)
- Dxak
- ベストアンサー率34% (510/1465)
> 日付(テキスト型) テキストの場合「'」で囲んで検索の必要があります > Me.Filter = "[日付] >= " & Me.txt_開始 & "And" & "[日付] <= " _ > & Me.txt_終了 を Me.Filter = "[日付] >= '" & Me.txt_開始 & "' And " & "[日付] <= '" _ & Me.txt_終了 & "'" に変更してあげてください 条件のAndの前後のスペースも欠けてますね
お礼
有難うございます。
お礼
なるほど、勉強になりました。有難うございます。