- ベストアンサー
クエリのフィールドに 式1:DateAdd("d",-2,Date()
クエリのフィールドに 式1:DateAdd("d",-2,Date()) と入力し、実行すると、2日前の日付ではなく、2年前の同じ日付となってしまいます。何が原因か分からず困惑しています。ご教授よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
http://groups.google.az/group/microsoft.public.jp.access/browse_thread/thread/7512043f698bb493 行き詰まったのでGoogle。 上記ではレスがつかなくてOSの再インストールまでしたそうです。 (クリックしても飛ばないかもしれませんのでその際はアドレスをコピペ) どうも似たような症状。 初心に立ち返って、思いつくままに。 ・メニューのヘルプから『アプリケーションの自動修復』 ・新規データベースでも発生するか ・ADOのバージョンが古いので、2.5まで上げてみる。Microsoft ActiveX Data Object 2.5 Library 2.1のチェックは外して、プルダウンメニューの中央辺りに2.5があります。 最新は多分、2.8以降になっているかと思います。 ・メニューから(VBEでは無い方)『ツール』→『オプション』→『全般タブ』 新規データベースの並び順が、日本語 UniCode であれば、日本語に変更。 これで新たに作ってみて試す。 これで駄目なら私は降参です。 ※Microsoft DAO 3.6 Objects Libraryのチェックは戻して置いてください。
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
イミディエイトウィンドウで以下を実行するとどうなります? ?DateAdd("yyyy", 1, "2009-10-1") ?DateAdd("yyyy", 1, "2010-10-1")
- nicotinism
- ベストアンサー率70% (1019/1452)
西暦は4桁で扱っているようなので問題ないようですね。 ?dateadd("d",1,#2010/10/01#) でなんでエラーになるのだろう? 私のタイプミスかと思って確認しましたが、2010/10/02になりました。 もしかして、先ほどのVBEの画面でメニューから、『ツール』→『参照設定』で 参照不可になっているのが有ればチェックをはずしてみて下さい。 Default では以下に参照設定がされているはずです。 当方WinXP & Access2002 なので、若干違うと思います。 Visual Basic Applications Microsoft Access 10.0 Object Library OLE Automation Microsoft ActiveX Data Object 2.x Library 外している様な気もしてきました。。。 あと、余計なことですがクエリーで 式1:DateAdd("d",-2,Date()) は、式1:Date() - 2 と書き換えられます。
補足
お早い回答本当にありがとうございます。 VBEの画面でメニューから、『ツール』→『参照設定』では、 『参照可能なライブラリファイル(A)』と書かれており、 以下のようにチェックが入っていました。 Visual Basic for Applications Microsoft Access 11.0 Object Library OLE Automation Microsoft ActiveX Data Object 2.1 Library Microsoft DAO 3.6 Objects Library Microsoft DAO 3.6 Objects Libraryのチェックをはずして やってみましたが、だめでした。
- nicotinism
- ベストアンサー率70% (1019/1452)
Accessかな?OSとAccessのバージョンは必ず明記しましょう。 挙動が異なる場合あり。 以下、DateAddのヘルプからの抜粋 メモ DateAdd の戻り値の書式は、引数 date に指定する日付の書式ではなく、 [コントロール パネル] の設定によって決まります。 なので まずはイミディエイトウィンドウ(Access2003 までは Ctrl + G で開きます)にて ?date + Enter で帰ってくる値はなに? ついでに ?dateadd("d",1,#2010/10/01#) は?
補足
早々のご回答ありがとうございます。 Access2003 で OS はWindows7です。 ?date+Enter を入力すると、 2010/10/01 と表示されました。 また、?dateadd("d",1,#2010/10/01#)と入力すると 『実行時エラー'5': プロシージャの呼び出しまたは引数が不正です。 と表示されました。 よろしくお願いいたします。
お礼
ご尽力くださいまして、ありがとうございます。 職場の事務系PCなので、OSからインストールは IT部門に相談してから、行います。 本当にありがとうございました。