ACCESSのプログラム、日付でデータを検索する場合次に様に書いています
DIM DATEissu AS DATE
DATEissu="02/09/01" ' テスト
SET RS=DB.OPENRECORDSET("SELECT * FROM A_TABL WHERE 日付 = #" & DATEissu & "#")
この検索で、データがあるにもかかわらず抽出が出来なくなりました。
デバッグでデータを参照しても異常はないようです。
コントロールパネル-地域-日付で短い形式を yyyy/MM/DD に設定しなおすと問題なく抽出できますが、日付の欄の幅等の設定をやり変えねばなりません。
形式を yy/MM/DD に設定すると抽出されなくなります。
OSはウィンドウ98です。
プログラムの作り方が悪いのか、他に原因があるのか知っている方お教えください。
このような事が起こらないプログラムの書き方知っている方お教えください。
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 …年問題%20VB
早速のご回答どうもありがとうございます。
試すと問題なくデータの抽出できました。
余談ですが、この回答を見る前にマイクロソフトサポート技術技報を見ました。
そこには回避策として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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- JavaScript gasについて 1 2022/05/31 21:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3人のじゃんけんのプログラム
-
DataGridViewでyyyy/MM/dd
-
エクセルVBAで機械の稼働時間を...
-
VB 日付範囲チェック
-
JSPからYYYYMMDDで日付入力する
-
C++で日付判定を行いたい!!
-
今日より前の書き方 マクロ
-
VB6で時刻の範囲に入っているか...
-
テキストボックスにカレンダー...
-
VBAのvalueとvalue2の違いに...
-
エクセルのVBAで日付を検索し転...
-
Eclipseの対応する括弧の強調表...
-
VBAで日付入力しているのですが
-
システム日付とは?
-
ユーザーフォームのラベルに日...
-
excelのVBAについて、以下のコ...
-
VBA 日付・時刻の判別 時刻を認...
-
SQLサーバに日付と時間を入れる
-
コンボボックスに日付を表示する
-
【Excel VBA】条件に合った行の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
ユーザーフォームのラベルに日...
-
VBAの質問になります 行の非表示
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
DataGridViewでyyyy/MM/dd
-
3人のじゃんけんのプログラム
-
システム日付とは?
-
コンボボックスに日付を表示する
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
エクセルVBAで機械の稼働時間を...
-
VBA 日付、未来の日付はエラー...
-
DataGridViewの和暦表示について
-
VBAで当月の1日を表示するには...
-
「eclipseで作るカレンダー(ス...
-
テキストボックスにカレンダー...
-
ExcelVBAでSQLサーバの日付時刻...
-
【Excel VBA】条件に合った行の...
-
VBAのapplication.ontime メソ...
おすすめ情報