16

Access で作成されたカスタム プログラムがあり、異常なクラッシュが発生します。独自のコード内で発生したクラッシュを記録して電子メールで送信するエラー処理を追加しました。これにより、生成したほとんどのエラーを修正できましたが、クラッシュがコード外で発生することもあります。

2013 年に新たに発見された例 - 特定のフィールドのデータを編集した後にクラッシュするフォームがあります - 新しいエントリは問題ありませんでしたが、レコードが作成された後に編集すると完全なクラッシュが発生し、 MS Access のシャットダウン。時間をかけて、最終的に、コードの一部がフォームを次のレコードに移動させていることを突き止めました。このフィールドは行の最後のフィールドでしたが、Access 自体も次のレコードに移動しようとしていました。これは 2007 年からシステムに存在していましたが、2013 年にプログラムのシャットダウンを引き起こし始めました。

MSアクセス内でプログラムレベルのクラッシュをトラップして診断する方法はありますか?
Windows イベント ビューアーには、次の情報のみが表示されます。

障害が発生しているアプリケーション名: MSACCESS.EXE、バージョン: 15.0.4454.1501、タイム スタンプ: 0x50a35ef4 障害が発生しているモジュール名: MSACCESS.EXE、バージョン: 15.0.4454.1501、タイム スタンプ: 0x50a35ef4 例外コード: 0xc0000005 障害オフセット: 0x00116452 障害が発生しているプロセス ID: 0x1398アプリケーションの開始時刻: 0x01ce6e665043d8be エラーが発生したアプリケーション パス: C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE エラーが発生したモジュール パス: C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE レポート ID: 6cfcb0eb-da62-11e2-8966-842b2b86f028

4

6 に答える 6

3

すべての Access データベースのすべてのフォームのすべての関数には、次のようなフローが必要です。

Private Sub btnMyButton_Click()
Dim MyVar as String
On Error GoTo ErrorHappened

'Do some stuff here...

ExitNow:
    Exit Sub

ErrorHappened:
    MsgBox Err.Description
    Resume ExitNow
End Sub

ErrorHappened セクションでは、バグを追跡するテーブルに書き込むことができます。すべての Subs と Function をこのようなフローに変更すると、データベースにあるすべての問題をトラップできるはずです。おそらく、Err.Number と Err.Description を書き出します。

于 2013-06-25T13:05:31.910 に答える
0

str() 関数呼び出しを確認します。2010->2019 からの更新後、この呼び出しで時々クラッシュします。

于 2020-09-30T08:31:59.883 に答える