アクセスのクエリで日付の条件抽出をしたいのです。シャープ(#)が日付のリテラル値ということまではつき止めたのですが、ここで問題発生です。
文字列には*や?のような便利な文字が使えるのに、日付で使おうとするとエラーになってしまいます。
例えば#01/05/2?# のように2001年5月20日~29日を抽出しろ、としても出来ません。
日付抽出には*や?のような文字はないんでしょうか?
どうしてもないようなら関数でもしょうがないのですが、関数だと#01/1?/?3# (2001年10月~12月のうち、03、13、23日を抽出)みたいな複雑な命令が(簡単には)出来ないような気がするんです。

どなたかお助け下さい。

A 回答 (3件)

プロシージャとかを使わずに大体の事はできます。


フィールド数も、256個まではたしか「OK」ですから、頭の中だけで考えずに、フローチャートを作ってから進めば、頭から煙も出なくてすみます。後から見ても、他の人が見ても理解しやすいと思います。それを組み合わせれば、かなり大きな物も作れるようになります。管理表もあったほうが良いかも知れません。
私も、会社で使っている集計用を、上記のやり方で作りました。結構重宝されています。ただ、クエリーの数は多くなります。
    • good
    • 0

簡単に考えて見ましょう。


日付から年・月・日をそれぞれ違うフィールドに・・ year([日付]) month([日付])  day([日付])と分散してから、それぞれ、抽出条件を設定したらどうでしょう。それか、最初の設計で、年・月・日を分けて入力するようにして、必要で開けば、別のフィールドで、DateSerial([年],[月],[日])でくっつけるってのは、どうでしょう。 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、そういう考え方もあるんですね。CHOROLYNさんの解答欄にもあるようにごくごく単純化しなければならいので、i-haradaさんの回答は結構使えるかもしれませんね。
ただ、日付の項目がひとつではないので(届けた日、引き取った日など複数あります)、それだけ項目数が増えるという意味なんですよね。
お答えを参考にして検討したいと思います。
重ね重ねお礼申し上げます。

お礼日時:2001/06/22 21:26

日付の範囲で抽出する場合は、


Between #2001/05/20# AND #2001/05/29#
の方がいいですよ。

もうひとつの場合も、
WHERE (日付 Between #2001/10/01# AND #2001/12/31#)
AND ((Day(日付)=03) OR (Day(日付)=13) OR (Day(日付)=23))
などのように複数の条件を組み合わせするとか。



どうしてもワイルドカードを使う場合は

Format$([日付],"yyyy/mm/dd")で文字列型にしてから
Like演算子を使用してください。
この場合処理速度が遅くなりますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
僕自身はいいのですが、このファイルを会社の人のためにできるだけ簡単に作らなければならないのです。なにしろマイツールという今となってはマニアックなソフトからMS Officeへの移行なので・・・
お答えを参考に検討させていただきます。
重ね重ねお礼申し上げます。

お礼日時:2001/06/22 21:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入力画面
       ↓
レコード番号を入れると、そのレコードのデーターが画面に表示され、
その画面で修正可能
       ↓
 保存 ボタンで保存

という流れです。

レコードナンバーはIDを使おうと思っています。

データの量が莫大な為、コンポボックスなどは使えません。

できるだけ、VBAなどは使わずに作りたいです。

よろしくお願い致します。

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入...続きを読む

Aベストアンサー

まずそのテーブルを基にしてフォームを作成します。
そのフォームのヘッダー部分にテキストボックスを配置後、一旦
上書き保存。
フォームのレコードソースを
SELECT *
FROM テーブル名 WHERE ID=[Forms]![フォーム名]![テキストボックス名]
とします。
次にテキストボックスの更新後処理に
Me.Requery
とすれば完成です。
フォームを開いてテキストボックスにID入力後エンターしてください。

保存に関しては、コマンドボタン作成後クリック時イベントに
DoCmd.RunCommand acCmdSaveRecord
とすれば良いでしょう。

この手のモノは検索すれば相当数ヒットするので、そちらを参考にされるのもよろしいかと。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング