• ベストアンサー

ACCESSのFILTERについて教えてください。

いつも、お世話になっております。 以下について教えてください。 会社内のシステムのデータからACCESSでリンクを張って、日付(テキスト型)の絞り込み機能を作りたいと思い、以下のようにPGをくんだのですが、「直前の操作は取り消されました」と出て原因がわかりません。 (ちなみにYYYYMMDDの形で入力します。) Me.Filter = "[日付] >= " & Me.txt_開始 & "And" & "[日付] <= " & Me.txt_終了 Me.FilterOn = True BETWEENでやってみても同じでうまくいきませんでした。 すみませんが、原因とうまく行く対処法を教えてください。 お願いします。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.1

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です。

AKI78
質問者

お礼

なるほど、勉強になりました。有難うございます。

その他の回答 (1)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

> 日付(テキスト型) テキストの場合「'」で囲んで検索の必要があります > Me.Filter = "[日付] >= " & Me.txt_開始 & "And" & "[日付] <= " _ > & Me.txt_終了 を Me.Filter = "[日付] >= '" & Me.txt_開始 & "' And " & "[日付] <= '" _ & Me.txt_終了 & "'" に変更してあげてください 条件のAndの前後のスペースも欠けてますね

AKI78
質問者

お礼

有難うございます。

関連するQ&A