システムwiki

Windows 10 version1903に更新した後のMicrosoftアクセスでのエラー3035

AJAAC 解決済 最終更新日:2020-09-15 17:25

Windows 10ver 1903に更新した後、異なるversionのAccess、少なくともversion13とversion16のMS Accessを使用する複数のPCでms 30ミリ秒のアクセスエラーが発生します.私はキャッシュ設定や
レジストリWorkingSetSleepおよびDAO.DBEngine.SetOption dbMaxLocksPerFile、1000000を追加します.

成功した唯一の考えは、1プロセッサへのアフィニティを減らすことです.これは問題のある回避策のようですので、もっと良い修正をお願いします.

テストマシンで、すべての更新がWindowsとOffice 365の両方に適用されることを確認しました.

Windows 10上にあるが、ver 1903にアップデートされていない他のマシンでは、この問題は発生していません.

任意の提案.

返信リスト(回答:6)

1 #
CliffGu

説明から、問題はWindows 10オペレーティングシステムのversionを1903にアップデートした後にのみ発生するようです.アップデートする場合、オペレーティングシステムのversionに根本的な原因がある可能性があります.アクセスの問題を引き起こし、関与する
チェックに関するリソース.Windowsのカテゴリに新しいスレッドを投稿して、さらにヘルプを求めることをお勧めします.

その間、参照用にここに提供できるいくつかの方法があります.

1.ローカルユーザープロファイルを変更してコンピューターにログインし、テストを行って結果を確認します.

2.[コントロールパネル]>[プログラム]>[OfficeApplication]アイコンを右クリックして[変更]>[オンライン修復を実行]を選択し、コンピューターを再起動してテストを行って結果を確認します.

さらに、[ファイル]>[フィードバック]をクリックして問題を関連チームに直接報告し、問題を認識して、問題のさらなる調査にいくつかのリソースを含めることをお勧めします.

応答1# ->にスキップ
2 #
AJAAC

ステップ1を試すつもりでしたが、ステップ2はすでに実行されていましたが、これはさまざまなversionのAccessで発生します.

最初にテストシステムをセットアップしたかったのですが、テストアプリをセットアップした後、エラーを再度発生させることができませんでした.何が変わったのかわかりませんが、元のversionでも問題なく動作しています.

チェックしましたが、MS Access 2013を搭載したPCでもエラーが発生しますが、ランダムにテストすることはできません.他の約18台のPC、この問題は発生していません.これらのノートはまだWindows 10ver 1903にありますが、自動で取得されるはずです.
すぐにそのversionに更新されます.

現時点では、アフィニティを1プロセッサに変更すると問題が修正されるように見えるため、起動時にアフィニティを1プロセッサに自動的に設定するようにアプリを変更しました.しばらくそのままにしておきます.うまくいけば、マイクロソフトがリリースされる
近い将来この問題を解決する1903へのアップデート.

応答2# ->にスキップ
3 #
CliffGu

ご返信いただきありがとうございます.お客様の環境の現在の状況をお知らせください.

Access 2016のパソコンで問題が解消されたとのこと、嬉しく思います.Access 2013のコンピューターで引き続きいくつかの問題が発生するため、Office 2013カテゴリーに新しいスレッドを投稿して、エンジニアができるかどうかを確認することをお勧めします
Access 2013の問題を解決するためのいくつかの提案を共有します.

その間、[ファイル]>[フィードバック]をクリックして問題を関連チームに直接報告することをお勧めします.そうすることで、問題を認識し、さらなる調査にいくつかのリソースを含めることができます.
問題.

応答2# ->にスキップ
4 #
HohlMat

こんにちはAjaac

私たちは同じ問題を抱えています.Appをどのように変更して親和性を自動的に設定しましたか?

応答4# ->にスキップ
5 #
AJAAC

私はインターネット上のいくつかのコードを見つけ、それを私のApplicationに適応させました.

スプラッシュ画面にSetaFinity()を呼び出します.コードを下のコードを提供します

これは私たちの問題を助けました、しかし彼らはまだ続いています.私はついにバックエンドをSQL Serverに変換し、これはより恒久的な解決策のようです.

SetAphinityModule:

オプション比較データベース

オプション明示

'プロセッサ数が4コアを超えると、システムリソースが超過したエラー3035にこのコードを使用します.

'このコードはMSアクセスを実行しているコアの数を設定するために使用され、以前は古いversionの他の問題に使用されていましたSO MS Access

'' '' Access 2010 Compact&Repair Drops Indexsのincestes incessesのincesses "

に返信したDENNIS WIからのコード 開発者フォーラムのMicrosoft Officeの

'>開発者向けのアクセスフォーラム

'https://social.msdn.microsoft.com/forums/office/ja_4a7b-b5f8-bc4c26854164/BC4C26854164/ACCESS-2010-Compact-repair-Drops-Indexes?Forum= AccessDev

関数getProcessaffinityMask lib "kernel32.dll"(長い間、byref dwprocessaffinitymask、byref dwprocessaffityMask、byref dwsystemafinitymask)boolean

関数setProcessAphinityMask lib "kernel32.dll"(長く、byval hprocess、byval hprocess、byval dwprocessAphinityMaskを長い)としてboolean

関数getCurrentProcess lib "kernel32.dll"()

サブgetSysteminfo lib "kernel32"(lpsysteminfoとしてsystem_info)

type system_info

' リンク:getTheProcessorTypeAndNumberOfProcessors.

Dwoemid

DWPAGESIZE

LPMINIMIMAPPL化address

LPMAXIMUSAPPLIZATADDRESS

DwActiveProcessorMask

DWNUMBEROFPROCESSORS LONG

DWProcessorType

DWAllockingfranuly

DWRESTERVER

end type 'system_info

公開機能設定値()

'msaccess.exeのこのインスタンスのプロセッサの親和性を設定します.

'マルチコアwindows 7コンピュータの4 CPUへのアクセスを制限するのに役立ち、MS Access 2016

を実行しているWindows 10コンピュータ

'「システムリソースを超えた」エラーを避けるために

'MS 2019のMS 2019エラーのMAXを設定するように変更されたコードを修正しました

'' '' Access 2010 Compact&Repair Drops Indexsのincestes incessesのincesses "

に返信したDENNIS WIからのコード 開発者フォーラムのMicrosoft Officeの

'>開発者向けのアクセスフォーラム

'https://social.msdn.microsoft.com/forums/office/ja_4a7b-b5f8-bc4c26854164/BC4C26854164/ACCESS-2010-Compact-repair-Drops-Indexes?Forum= AccessDev

'(9/17/2019)MS Access 2019システムリソースを超えたエラーを超えたajaacによってさらに修正されたコード.

エラー後見NECERRHND

Dim PrintMeとして文字列として:printme= "setaffinity" ':debug.print printme

薄暗いエラーループ

DIM TRIGGERNUMPROCESSORSとして、MAXAFINITYMASKとして整数

TRIGGERNUMPROCESSORS= 4

'MaxAffinityMask=(2 ^ TriggernumProcessors)-1

MaxAffinityMask= 2 'MS 2019は2コアで動作しますが、それでも2コアの3050を取得してはいけません.

'コンピュータが4つ以上のコアを持っている場合にのみ親和性を変更します.

ErrorreEntry:

getNumProcessors>TriggernumProcessors

薄暗い

DIM DWPROCMASK

DIM DWSYSMASK

hret= getProcessaffinityMask(getCurrentProcess()、DWProcMask、DWSySmask)

dwprocmask>maxaffinitymask

'必要なプロセッサ数に親和性を設定します.

HRET= SetProcessAphinityMask(getCurrentProcess()、MaxAffinityMask)

hret= 0の場合

debug.print "Process Affinityが"&MaxAffinityMask&"に設定されました."

else

'はエラー0で頻繁に誤ってエラーが発生し、続けるかどうかを確認するには1回ループします.

errorloop= errorloop + 1

ErrorLoop>2の場合

MSGBOX( "エラー:"&err.lastdllerror&vbcrlf&printme、vbokonly + vbapplicationModal + VBMSGBoxSetForeground)

else

Goto ErrorreEntry

の場合終了 の場合終了 の場合終了 の場合終了

出口:

出口関数

NECERRHND:

DIM ERRMSGとしての文字列として:errmsg= printme&":error#"&err.number&":"&err.description

ケースERR.NUMBER

'2001:前の操作をキャンセルしました.

ケース2001

debug.print errmsg

Goto Exitme

ケース

debug.print errmsg

呼び出しMSGBOX(errmsg、vbokonly + vbapplicationModal + VBMSGBoxSetForeground)

終了

エンド機能 'SetAphinity

関数getNumProcessors()整数

'このマシンのプロセッサ数を返します.

のコードに基づく

' リンク:getTheProcessorTypeAndNumberOfProcessors.

DIM LPSYSINFO SYSTEM_INFO

GetSystemInfo LpsysInfo

getNumProcessors= lpsysinfo.dwnumberofprocessors

エンド機能 'getNumprocessors

応答5# ->にスキップ
6 #
HohlMat
OK.どうもありがとうございました.やってみます!