• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS97 日付での検索)

Access97 日付での検索

このQ&Aのポイント
  • Accessのプログラムで、日付を使ってデータを検索する方法について教えてください。
  • 日付でデータを抽出する際に問題が発生しており、正しく抽出できない状況です。
  • Windows 98のOSを使用しており、プログラムの作り方や他の原因についても教えていただけると助かります。

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

  • ベストアンサー
  • aptiva
  • ベストアンサー率36% (193/529)
回答No.1

DATEissu="02/09/01" ' テスト SET RS=DB.OPENRECORDSET("SELECT * FROM A_TABL WHERE 日付 = #" & DATEissu & "#") のDATEissuの日付の解釈が、mm/dd/yyになってしまっています。つまりこの場合は日付が、2001年2月9日に一致するもの、という検索条件になってしまっています。 いわゆる、VBの2001年問題といわれるもので、この場合は、 SET RS=DB.OPENRECORDSET("SELECT * FROM A_TABL WHERE 日付 = #" & Format$(DATEissu,"yyyy/mm/dd") & "#") とするとうまく行くと思います。 日付を渡すところはうまくユーザー関数を作ってやると、毎回Format関数を書くよりも便利です。

参考URL:
http://www.google.com/search?num=50&lr=lang_ja&q=2001年問題%20VB
GA1
質問者

お礼

早速のご回答どうもありがとうございます。 試すと問題なくデータの抽出できました。 余談ですが、この回答を見る前にマイクロソフトサポート技術技報を見ました。 そこには回避策としてFORMAT関数で"mm/dd/yy"にする 又は西暦を4桁で扱うとありました。 FORMAT関数を利用しましたがうまくいきません 調べると下記のようになっていました DateFrom = Format$("02/01/01","mm/dd/yy") DateTo = Format$("02/12/31","mm/dd/yy") DateFrom -- 01/01/02 問題なし DateTo -- 02/12/31 ???? わけが判らなく、年号を2桁で表示するのをあきらめていましたが、助かりました。

関連するQ&A