Access VBAを利用しています。フォームにテキストボックスを置いてユーザーに日付を入力してもらおうとしています。Accessのテーブル、Table1のDateフィールドには日付が入っています。2009/10/01みたいに8桁で入っています。


やりたいことは、フォームのテキストボックスに日付を2009/10みたいに入力してもらいます。実行ボタンを押すと、そうすると2009/10/1から2009/10/31までの10月の値のみをselect文でひっぱってきたいと思っています。ここで指定の日付のみをひっぱってくるselect文が思いつきません。2009/10/1のみの値を引っ張ってくるselect文はわかるのですが、10月の間、11月の間など月指定の場合、どうやって引っ張ってくるのかご教授お願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2009/04/18 08:05:38
  • 終了:2009/04/25 08:10:02

回答(3件)

id:legnum No.1

legnum回答回数43ベストアンサー獲得回数52009/04/18 09:00:15

ポイント35pt

betweenを使うといいです。

where 日付 between A and B

でAからBの範囲にある日付データを全て抽出可能です。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj07_5.htm

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/04/18 11:19:31

ポイント35pt

SQL文のみを示します。

たとえば2009年10月のみを抽出するなら下記のようにします。

select * from Table1 where Year([Date])="2009" and Month([Date])="10";
id:Mook No.3

Mook回答回数1312ベストアンサー獲得回数3912009/04/20 22:30:05

ポイント10pt

どのようなやり方でもできますが、関数を使うのであれば下記のようにすることもできます。

SELECT * FROM Table1 WHERE Format(Table1.Date,"yyyymm")="200910";

下記のように書式は自由に設定できますので、このほうが分かりやすいかもしれません。

SELECT * FROM Table1 WHERE Format(Table1.Date,"yyyy/mm")="2009/10";

10/1 のみの検索はできるとのことなので、すでにご存じとは思いますが、Access で日付指定する場合

日付を#で囲うように書きます。

SELECT * FROM Table1 WHERE Table1.Date BETWEEN #2009/10/01# AND #2009/10/31#;

これは、下記のように条件をつなげたことと等価です。

SELECT * FROM Table1 WHERE Table1.Date >= #2009/10/01# AND Table1.Date <= #2009/10/31#;

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません