• ベストアンサー

アクセスの抽出条件設定について

 初めて質問させていただきます。  仕事でアクセスを使うようになりました。テーブルとクエリ、レポートとの関係性は、なんとなくですが理解できているみたいです!?  今回みなさまにお伺いしたいのは、クエリから条件を設定して抽出し、それをレポートにする方法です。  具体的には、ランダムに入っている年月日データから、翌月のデータだけ抽出したいのですが、やり方が分からず、困っています。  フィールドデータ(db~)みたいのを入力しても、エラーの連続です。  ご存知の方がいらっしゃいましたら、ぜひ、教えてください。お願いいたします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.6

生年月日から来月生まれの人を抽出したいのですか? だったらそう書かなきゃ 生年月日フィールドの抽出条件欄に Like "*/" & Format(Month(DateAdd("m",1,Date())),"00") & "/*"

tokyo042
質問者

お礼

CHRONOS_0さん こんばんわ  何度もありがとうございます。  ただ、コピペしただけで、すごい!!できました、感動しました。 感謝です。  毎月毎月、200人くらいのデータから半ば自動で抽出し、レポート(プリント)できれば、非常に便利だな。  と思っていたのです。  本当にありがとうございました。  

その他の回答 (5)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

生年月日を使って抽出だと来月と再来月といっても年は使えないのでは? 誕生日が来月・再来月の人はいても生まれたのはずっと前の年ですから... 誕生月が来月と再来月を抽出するなら フィールド欄に 判定月:Month([生年月日]) 抽出条件欄に (Month(Date()) mod 12 + 1) Or ((Month(Date()) + 1) mod 12 + 1) で抽出できると思います。

tokyo042
質問者

お礼

mshr1962さん 回答ありがとうございました。  やってみましたが、どうもうまくいきません。  なにか、思い切り勘違いしているのでしょうか・・・トホホです。    もともとのデータに、ひとりひとりごと西暦で誕生日が入っているモノがすでにあり、月ごとに抽出できるハズ、と思っているのですが・・・

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

パラメータクエリというのを勉強してください。 講習などでは、初級で教えることです。 ーー クエリ デザイン グリッドの [抽出条件] 行に、角かっこで囲んで語句を入力します http://office.microsoft.com/ja-jp/access/HA011170771041.aspx ほか多数。WEB照会のこと。 ーーー Between A And B のAとBを実行時に聞いてきます。 ただフォームなど使ったり、月初ー月末が前提なら年月を使ったり、 今日の前月を使ったり、色々できるので、回答はきりがないですね。

tokyo042
質問者

お礼

imogasiさん、ありがとうございます。  勉強不足なのですね、リンク参照してもう一度チャレンジしてみます。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>それをレポートにする方法です。 クエリからレポートを作るだけです 言い換えれば、レポートのレコードソースをそのクエリにします >翌月のデータだけ抽出したい 日付フィールドの抽出条件欄に Between DateSerial(Year(Date()),Month(Date())+1,1) and DateSerial(Year(Date()),Month(Date())+2,0)

tokyo042
質問者

お礼

CHRONOS_0さん 回答、ありがとうございます。 Between DateSerial(Year(Date()),Month(Date())+1,1) and DateSerial(Year(Date()),Month(Date())+2,0)  は、そのまま使えるのでしょうか? エラーはでませんが、クエリもレポートも、該当ゼロになってしまいます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

選択クエリのデザイン画面の問題にしている、日付フィールドの「抽出条件」の行に Between #2007/11/01# And #2007/12/31# 2007/11/1 から2007/12/31までの例。両端は含んでくれる。 #を日付で囲むのがポイント。 参考 http://www2.wind.ne.jp/noro/access.htm#3-4など のように入れて実行するとうまく行くと思いますが。

tokyo042
質問者

お礼

imogasiさんへ 回答、ありがとうございます。  確かに、Between #2007/11/01# And #2007/12/31# のような式を入れると抽出できました。 参考リンクも行ってきました。  ついでに、ご存知でしたら教えてください。  今回教えていただいた方法だと毎回「期日」を抽出条件に打ち込む方法ということで理解しています。  しかし、出来上がった後は、実際に使うのは自分ではないのです。 そこで、毎月ごとに、翌月の該当者がピックアップできるような方法はないでしょうか? 「現在の日付を参考に、来月の生年月日データから、翌月分だけレポートする。」のようなことを、毎月できないか?  というようなことです。 いかがでしょうか。

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

クエリを作成してその中に新たなフィールドを追加します。 年月:Format([年月日のフィールド名],"yymm") 抽出条件には、[いつ?] このクエリを元にレポートを作成すれば開くときに 聞いてきますので、0612(2006年12月の意)などと入力すれば よろしいかと。

tokyo042
質問者

お礼

nicotinismさんへ  回答、ありがとうございます。 うまくいきません・・・  生年月日と言うフィールドから抽出したいので、 年月:Format([生年月日],"yymm") と、入れればいいのですよね?  不適切な識別子かnullのあとにかっこが来てます・・・のような メッセージが出てしまいます。

関連するQ&A

専門家に質問してみよう