• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:年を条件にデータを抽出するには?)

年を条件にデータを抽出する方法

このQ&Aのポイント
  • 年を条件にデータを抽出する方法を教えてください。
  • フォームヘッダーのコンボボックスを使用して特定の年のデータを抽出する方法について教えてください。
  • VBAを使用してフィールド1から特定の年のデータを抽出する方法について教えてください。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "# And #" & Me.コンボ3.Value & "#" & "'" たとえば、最初のプロシージャの上記の最後のあたりの、    & "'" これだけが不要ではないですか? したがって、最後のあたりは、 ・・・・・・Me.コンボ3.Value & "#" では?

aaaertaaa
質問者

お礼

!!! こんな簡単な事だったんですね。 気付けませんでした。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

>Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "# And #" & Me.コンボ3.Value & "#" & "'" は、最後の & "'" は余計です。 そして、日付時刻型のフィールド1とテキスト型のコンボ3を直接比較するには無理が有ります。 フィールド1から、年 に相当する部分を抜き出す必要があります。 なので Me.Filter = "year(フィールド1) = " & val(me!コンボ3) でしょうね。 Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "/01/01" & "# And #" & Me.コンボ3.Value & "/12/31" & "#" & "'" も同じく、最後の & "'" は余計です。 こちらは全社とは逆にフィールド1はそのままにして年月日での比較ですから Me.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "/01/01" & "# And #" & Me.コンボ3.Value & "/12/31#" です。 一般には前者のパターンで済ます場合が多いかと思います。 なお、蛇足ですが後者で、以前はまったオバカなパターン。 日付時刻型は年月日+時刻の部分も含まれます。 今日の日付を入れるのに何を血迷ったか、VBA で、=date ではなく =now にしてしまっていた部分がありました 当然、2012/12/31 15:30:23 のように格納されます。 で、書式設定では、yyyy/mm/dd にしてしまっていました。パッと見ではわかりません。 後者のパターンでは、1/1の零時から12/31の零時までのが抽出されます。 2012/12/31 15:30:23 > 2012/12/31 0:00:00 なので対象外ですから抽出されません。 時刻の部分にもデータが有る場合は ご注意を。

aaaertaaa
質問者

お礼

いろんなパターン、ありがとうございました!

関連するQ&A

専門家に質問してみよう