- ベストアンサー
年を条件にデータを抽出する方法
- 年を条件にデータを抽出する方法を教えてください。
- フォームヘッダーのコンボボックスを使用して特定の年のデータを抽出する方法について教えてください。
- VBAを使用してフィールド1から特定の年のデータを抽出する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "# And #" & Me.コンボ3.Value & "#" & "'" たとえば、最初のプロシージャの上記の最後のあたりの、 & "'" これだけが不要ではないですか? したがって、最後のあたりは、 ・・・・・・Me.コンボ3.Value & "#" では?
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
>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 なので対象外ですから抽出されません。 時刻の部分にもデータが有る場合は ご注意を。
お礼
いろんなパターン、ありがとうございました!
お礼
!!! こんな簡単な事だったんですね。 気付けませんでした。