2

フロントエンドとバックエンドを含むサードパーティ独自のms-accessデータベースアプリケーションからのクエリをログに記録する方法を探していました。

データベースはMS-Access2003で実行されます。この質問への回答で提案された記事に記載されている手順を読み、それに従って、クエリによってアクセスされているテーブルを見つけるためにshowplan.outファイルを作成しました。

記事で指定されているレジストリキーを見つけたとき:\\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\JET\4.0\Enginesパスがを超えて存在しないことに気付いたので、値がに設定されたキーをJET含む残りのパスを作成しました。 DEBUGON

また、使用しているOfficeインストールには複数のバージョンのOffice / Access(2003および2010)がインストールされており、過去に誰かがここに来る前に、レジストリハックを使用して両方のバージョンのインストールを有効にした可能性があることも知っています。

ああ、そして表示されるはずの「マイドキュメント」Showplan.outは外部の移動プロファイルサーバーにも保存されています。

Showplan.out他の方法でWindows764ビットで出力を取得することは可能ですか?それとも、OfficeをクリーンなVMにインストールし、データベースをコピーして、そこから試してみる方がよいでしょうか?

4

1 に答える 1

3
Debug.Print CurDir

これにより、Access が認識している現在の作業ディレクトリが出力されます。そこに showplan.out があります。既定では、これはマイ ドキュメント ディレクトリになりますが、保証はありません。

Windows レジストリに正しいパスとキーが設定されているようです。 @Remou がコメントでリンクしている場所は、Access 2007 以降 (つまり、.accdb ファイル) のものだと思います。

更新: Windows 64 を使用しているため、実際のレジストリ キーは次のようになります。

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Debug]
"JETSHOWPLAN"="ON"
于 2012-09-28T20:20:21.907 に答える