2

Excel 2010 フロントエンド、Access 2010 バックエンドのアプリケーションで断続的な問題が発生しています。同時に 5 ~ 10 人のユーザーが使用しています。最近、断続的に次のエラーが表示されるようになりました。

Run-time error '3035': System resource exceeded.

[デバッグ] ボタンがグレー表示されているため、エラーの原因となったコードにジャンプできないことがありますが、クリックできる場合は、次のコードに移動します。

 'Open connection to back end DB
 Set db = OpenDatabase(dbPath)

 'Open a recordset of a table
 Set RS = db.OpenRecordset(Tbl)

 'loop through rows in a 2D array
 For i = FR To LR
  RS.AddNew
   'loop through columns of the 2D array
   For j = 1 to LC
    'set values for various fields in the new record, using values from the array
   Next
  RS.Update
 Next

ここではRS.Update、エラーの原因となっている行としてマークされています。

奇妙なのは、この問題が起こったり消えたりすることです。ユーザーは、特定のデータ セットを送信しようとすると繰り返し受信し、数時間後に同じデータ セットを再度送信しようとすると、操作はエラーなしで成功します。また、[デバッグ] ボタンが使用できる場合と使用できない場合があることも困惑しています。

問題の 1 つは、Access バックエンドのサイズかもしれません。現在、約 650 MB ですが、約 600 MB になるまでこれらのメッセージを受け取り始めませんでした。

これを引き起こしている可能性のあるものについてのアイデアはありますか? さまざまな Google ヒットは、結合クエリにフィールドが多すぎる場合にこの問題が発生することを示していますが、これは単なるテーブルのレコードセットであり、結合クエリではありません。

4

3 に答える 3

0

これは、スワップ ディスクとも呼ばれる使用可能な仮想メモリ (VM) が不足していることが原因です。32 ビット アプリは 2 GB 以上を使用できず、何らかの理由で Access が大量の VM を使用し、それ以上の VM が必要で取得できない場合、システム リソースが不足します。

解決策は、VM が少なくとも 4 倍の RAM であることを確認し、少なくとも毎日 PC を再起動することです。これにより、他のアプリから残ったゴミから VM が一掃されます。

32 ビット OS でこの問題が発生することはありません。これが発生するのは 64 ビット OS だけです。

于 2016-01-12T22:36:50.467 に答える
0

短い話 私の 3035 エラーは、主キーのないファイルへの add.new が原因でした。

主キーが割り当てられたファイルのコピーを作成し、キーのないファイルを置き換えると、問題が修正されたようです。

長い話 81,000 レコードを超える既存のバックエンド テーブルへの Add.New で 3035 エラーが発生しました。Web でアイデアを検索し、思いついた後、考えられる問題について考えました。

バックエンドファイルを圧縮/修復しましたが、影響はありませんでした。次に、ファイルの設計を確認することにしました。主キーが割り当てられていないことがわかりました。

自動番号 ID フィールドに主キーを割り当てると、同じ 3035 エラーが発生しました。そのため、データ構造を新しいファイルにコピーし、主キーを新しいファイルに割り当ててから、元のファイルのクエリを新しいファイルに追加しました。最後に、ファイルの名前を変更しました。

新しいファイルの使用は機能しているようです。

于 2017-02-19T03:07:01.837 に答える