• 締切済み

accessの期間集計が特定日付以降できない

お世話様になります。 まだmdbファイルの時代のaccessのフォームを使って、期間の売り上げ集計をしています。 具体的には 開始日 **/**/** 終了日 **/**/** という二つのテキストボックスを設けて**部分に年月日を入力し、その期間の売り上げをサブフォーム上に表示するというものです。 これまでは、まったく問題なく動作していたのですが、 終了日のテキストボックスに、13/04/18、つまり、2013年4月18日以降の日付を入れると、 「エラー番号 3420」のマクロエラーが発生し、集計用のマクロに設定した再クエリが停止してしまいます。 2013年4月17日以前の日付ならば、まったく問題なく動くため、原因が突き止められません。 ここまで来て、いよいよ会社実務にも支障が出始め、困り果てて、質問させていただきました。 実は、accessでDBを作っていたのは既に何年も前で、今はただの利用者になっており、質問の仕方さえよくわからなくなっておりますが、ヒントになるようなことがありましたら教えていただければありがたいです。 どうぞ、よろしくお願いいたします。

みんなの回答

回答No.2

1の関連コードと言うと、マクロの内容を記載すればいいのでしょうか? ・サブフォームのレコードソース。   -->サブフォームをデザイン表示しプロパティで確認。 ・マクロ(VBA)のコード。   -->どこかに XXXXXXX.Requey のコードがあるはず。   レコードソースから不具合の引き金になっているテーブルが判明。   それを手掛かりに、問題の日付以後の全データを削除。   (もちろん、バックアップしておいて・・・)   先ずは、このテーブルの破損個所の修復テストでどうなるのか?   レコードソースのSQL文の変更と不具合との関係もテスト。   SELECT 列名 FROM テーブル名 WHERE 列名 BETWEEN 値1 AND 値2;   もしかしたら、 BETWEEN "#2013/09/09#" AND "#2013/0910#"   という書き方だとエラーは発生しないかも知れません。 2の停止コードをコメントアウトと言うのがどのような作業なのか?   XXXXXXX.Requey    ↓   ' XXXXXXX.Requey   Stop   実行コードをRem文に変更。   同時に Stop文も挿入。   この修正で、サブフォーム更新はストップします。   Stop文を含むVBAも表示されます。   ここで、{F9}を押して反応をみます。   また、その他のエラー回避策も試します。 【最初にやるテスト】 テスト1、問題なく動作していたバックアップで問題日付を試す。   これが一番確実で、しかも、真っ当なやり方です。   「不具合が発生したらバックアップに戻れ!」です。 テスト2、HDDとMDBの修復が終わったらテーブルの修正・復元です。   バックアップが利用できない場合は・・・。   問題の日付以後の全データを削除=>最適化/修復。   動くようだったら、必要なデータを少しづつ戻してテスト。   動かなかったら、テーブルの全データを削除=>最適化/修復。   動くようだったら、必要なデータを少しづつ戻してテスト。 PS、考え方。 (1)Accessのバージョンの旧さが原因。 (2)MDBの破損が原因。 現象からは(2)が有力そうですが(1)も視野に。 日付が"yyyy/mm/dd"形式でないこと、あるいは、関連テーブルの破損によりレコードソースの再取得でスタック領域を浪費。もって、エラーが発生。ということならば、(2)と(1)とを両睨み。などなどと考えています。   

gretch6121
質問者

お礼

ご丁寧に。ご丁寧に。 本当にありがとうございます。 合間を見ながらの作業なので、どうしても時間が必要ですが、一つ一つ、ご指摘いただいたことで、まずは、自分でできるところをやってみて、改めてご指導を仰ぎたいと思います。 どうぞ、よろしくお願いいたします。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

【情報不足1・・・関連コード】 >再クエリが停止してしまいます。 せめて、停止に関連しているコードを公開。 でないと、憶測だけの世界に。 【情報不足2・・・テスト状況】 停止コードをコメントアウトして{F9}を押して見るとどうなるのか? 再クエリレではなくコードソースを再セットするやり方では? まあ、もう少し、このようなテスト情報も公開。 でないと、憶測だけの世界に。 【今できる対応】 1、チェックディスク(スキャン)を実行。 2、Accessの修復/最適化を行う。 チェックディスク・・・mdbがあるディスクのプロパティで指示。 修復/最適化・・・ツール(T)-データベースユーティリティ(D)で実行。

gretch6121
質問者

お礼

情報不足のご指摘。。その通りで、お恥ずかしい限りです。 1の関連コードと言うと、マクロの内容を記載すればいいのでしょうか? 2の停止コードをコメントアウトと言うのがどのような作業なのか、これまた恥ずかしですがよくわかりません。 まあ、情けない話です。 とりあえず、ご提示いただけた、今出来る対応をやってみます。 その結果は後ほど報告いたします。 こうして書きながら、自分の無知に苦笑いしてしまいます(泣;; まずは、ありがとうございます。 とにかく、やってみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access の集計について教えて下さい。

    Access の質問ばかりしてすみません。 今度は集計について教えて下さい。 レポートで集計したいのですが、SUMを使ったところパラメーターが出ました。 テキストボックス合計 ・A・Bがあります。 テキストボックスAには=合計-Bの式が入っています。 その下に列ごとの集計を出したいのでSumを使ったところ、Aの集計だけ出来ません。 どのようにすると集計出来ますか? 教えて下さい。 よろしくお願い致します。

  • ACCESSの日付について

    こんにちは。 Access2000を使用しています。 フォームで、完了のチェックをしたときに[完了日]のフィールドに 今日の日付を取得するようにしたいのですが、 (1)マクロで、値の代入-[完了日]のフィールドに=Dateで  日付を入れるようにしました。 (2)フォームのチェックボックスをクリックすると、上記のマクロが  実行されるようにした。 を行うと、1899年などという日付がでてきます。 パソコンの内蔵時計を確認しましたが、2002年の今日の日付に なっています。 どなたかよろしくお願いします。

  • Accessにてページごとの集計

    Accessで、ある一覧表の数量の部分を集計させたいので、ページフッターにテキストボックスを作り、 =sum([数量]) と入力したところ、エラーになります。 レポートフッターだとうまく計算するのですが、ページごとの集計はできないのでしょうか? よろしくお願いします。

  • アクセスで期間抽出

    お尋ねします アクセスで納品書のデータベースがあります   納品書データFormには 伝票番号、日付、客先名、数量のフィールドのフォームで テキストボックス1:始めの日 テキストボックス2:終了日 コマンドボタン1:期間で抽出 が配置しています テキストボックス1,2に日付、記入後、コマンドボタン1をクリックして 所要期間でフィルターで抽出するのですがうまく行きません コマンドボタン1クリック時のコード Private Sub コマンド1_Click() Me.Filter = "日付= 'Between" & Me![テキスト1] & "And" & Me![テキスト2] & "'" Me.FilterOn = True End Sub のコードで抽出してくれません、不都合をご指摘下さい なお 指定日での抽出は以下で出来ました。 Private Sub コマンド1_Click()  Me.Filter = "日付= '" & Me![テキスト1] & "'" Me.FilterOn = True End Sub エクセルのモジュールは少しかじったのですがアクセスは 始めたばかりでなかなか要領を得ません 宜しくお教え下さい。

  • Accessで期間指定の売上合計と順位指定のクエリ

    Accessのクエリの質問です。 (1)期間を指定した、顧客の売上を合計。 (2)その順位を出し、1位~100位や250位などの順位を指定した抽出をしたいです。 (1)期間指定の売上合計はできています。 (2)の順位をDCountでしましたが、金額(集計:合計)にしているためか構文エラーがでます。 よろしくお願い致します。 ------------------------------------------------ 2つのテーブルから、Q_売上(クエリ)を作成しました。 tbl顧客 顧客番号 顧客名 tbl販売 販売番号 日付 顧客番号 金額 Q_売上 日付(集計:Where条件) 顧客番号(集計:グループ化) 顧客名(集計:グループ化) 金額(集計:合計) 日付の抽出条件は、 Between [開始] And [終了] としています。 ------------------------------------------------

  • Accessで、複数月にわたる売上を月ごとに集計したいです

    こちらでは初めて質問させていただきます。 Accessは簡単なマクロとVBを作ったことがあるくらいの初級者です。 ■やりたいこと  複数月にわたる場所貸しの日数を求め、その売上を月ごとに集計したい。(場所代は毎日一定で、日にちによる変化はありません) ■詳細  現在、テーブルには「開始日」「終了日」「売上」の項目があります。 売上は、開始日から終了日までの日数を出し、その日数で割って算出したいです。(端数は最後の日に上乗せします) 例えば、 「開始日」    「終了日」     「売上」 2009/04/20    2009/06/03    1,000,000 のような場合、日数はDatediff関数で求めれば良いと思うのですが、 「4月の売上のみ集計」「5月の売上のみ集計」といった場合の 算出の仕方がわかりません。 例えば4月は11日間、5月は30日間、6月は3日間となり、100万円をそれぞれの日数分で割れば良いと思っています。 こういったデータから、月ごとの集計を出すのにはどのようにすれば良いでしょうか? Accessのフォームには「2009/06」などや、「2009/06から6ヶ月分」などのように入力して算出する予定です。 わかりづらい内容がございましたら補足させていただきます。 何卒宜しくお願い致します。

  • SUM関数で教えて下さい。

    関数かマクロで教えて下さい。 シート1に日付が4/1~9/30があり、その下に売上数字があります。 シート2のセルA1に集計開始日、セルC1に集計終了日を入力すると セルB2にシート1の集計期間の売上合計が計算されるようにしたい のですが、わからなくて困ってます。 集計期間は、変動しますので集計開始日、集計終了日を入力した 期間で集計したです。 わかりにくい説明ですみませんが宜しくお願い致します。 シート1 日付 4/1 4/2 4/3 4/4 4/5 → 9/28 9/29 9/30 売上 10   21   3   9   6    → 4   6  7 シート2 5/1 ~ 5/15 売上合計 163

  • アクセスで集計って出来ますか?

    アクセスで出したデータをExcelにエクスポートして集計しないとならないのに、出来ません。エクスポートボタンをクリックして何分経ってもエクスポートできず、あげくのはてにはエラーで応答しなくなります。今日3時までに抽出が必須なのでパニックです。。・゜・(ノД`)・゜・。初歩の質問ですみません。アクセスでクエリを使い出したデータを、アクセス上で集計する方法あるんですか?例えば、A社B社の各月の売り上げをクエリを実行し出したとします。それをExcelにエクスポートしてから集計するのではなくアクセス上で二社の売り上げ総合計をだすこと出来ますか?どなたかお詳しい方教えて下さい。アクセス初めて使うのに誰も教えてくれないので助けてください(>人<;)

  • ACCESSで、メインフォームとサブフォームがあるとき・・・

    Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?

  • ACCESS2002(or2003)の日付表示でエラー(#Name?)

    こんにちは。 OSはWINXP、ACCESS2000でMDBファイルを作成しました。 あるレポートの日付関連のテキストボックスでを Format(ある日付,"ggge年m月d日") で指定し「平成17年5月8日」と出力させています。 これをWINXP、ACCESS2002(or2003)で同じ項目を 出力すると「#Name?」と表示されてしまいます。 なお、MDBファイルはACCESS2002(or2003)に変換せず、 ACCESS2000のままで使用しています。 ACCESS2002以上だとFormat関数の使用の仕方が異なる のでしょうか? どなたか解決策をお願いいたします。