人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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月の間など月指定の場合、どうやって引っ張ってくるのかご教授お願いいたします。

●質問者: akaired
●カテゴリ:コンピュータ
✍キーワード:access SELECT VBA テキスト フィールド
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● legnum
●35ポイント

betweenを使うといいです。

where 日付 between A and B

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

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


2 ● pahoo
●35ポイント

SQL文のみを示します。

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

select * from Table1 where Year([Date])="2009" and Month([Date])="10";

3 ● Mook
●10ポイント

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

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#;
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ