私は、アクセスデータベースのファイルパスとファイル名を約400個リストしています。 AccessでVBAプログラムを書いて、リストをループし、Accessの2番目のインスタンスで各データベースを開き、必要な情報を取り出しますが、ファイルパスの一部が間違っていて、Accessが開くことができないというエラーが発生します。データベース。Accessの別のインスタンスでopenCurrentDatabaseを処理する際にエラーが発生しました
これを処理しようとするエラーハンドラがあるにもかかわらず、エラーハンドラがトリガされず、代わりにコードがエラーでブレークします。私のオプションは、処理されていないエラーだけを破るように設定されていますが、これは役に立ちません。
appAccessオブジェクトによって生成されたこのエラーをキャプチャする方法はありますか?
Set rstReportList = Currentdb.OpenRecordset("SELECT * FROM tbl_ReportList")
rstReportList .movefirst
Do Until rstReportList .EOF
On Error Goto CantRun '--Never actually triggers
strDb = rstReportList!Location & rstReportList!FileName
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase strDb '-- Error 7866 occurs here, code breaks
For each qdf in appAccess.Currentdb.QueryDefs
UpdateResults rstReportList!ID, rstReportList!FileName, qdf.name, qdf.SQL, qdf.Type
Next qdf
appAccess.DoCmd.Quit
NextReport:
rstReportList.MoveNext
Loop
Set rstReportList = Nothing
Set appAccess = Nothing
Exit Function
CantRun:
UpdateResults rstReportList!ID, rstReportList!FileName, "Error", "Error", 999
Set appAccess = Nothing
GoTo NextReport
End Function
これはすばらしいヒントです。HansUp、ありがとう!私はそれが私が直面している問題を解決するだろうと思う。それは、エラーを処理することから私を防ぐ何らかの種類のVBAの制限であるかどうか、またはそれが実際に可能であり、私はちょうど何か間違っているかどうかを知ることはまだ興味があります。 –
OK。 'GoTo'には注意してください。 'GoTo NextReport'を' Resume NextReport'に変更するとどうなりますか? – HansUp
[** GOTO IS EVIL **](http://stackoverflow.com/a/38255542/77335) – HansUp