MS Access 2002 データベースへの OLEDB 接続が次のように開かれる VB.NET WinForm アプリケーションがあります。
Private Function MakeNewConnection(FullPath) As OleDbConnection
Dim Conn As OleDbConnection = New OleDbConnection()
Try
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + FullPath
Conn.Open()
Catch ex As Exception
Throw ex
End Try
Return Conn
End Function
これは通常は問題なく動作しますが、Windows XP 32 ビット マシン (SP3) では散発的にエラーが発生します。散発的です。完全に機能することもあれば、単純にエラーをスローすることもあるためです。メッセージには次の 2 種類があります。不明なエラーまたは 'Microsoft.Jet.OLEDB.4.0' プロバイダーがローカル コンピューターに登録されていません。この投稿の最後に、例外のスタック トレースがあります。
私はすでに多くの検索を行ってきました。「プロバイダー」エラーは、主に 64 ビット ウィンドウに関係しています。私の場合、それは 32 ビット システムです。
何か案が?
エラーの詳細:
Error message: Unspecified error
Stack trace:
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at QueryAgent.MakeNewConnection()
Error message: the 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine
Stack trace: at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at QueryAgent.MakeNewConnection()