O provedor Microsoft.ACE.OLEDB.12.0 não está registrado
Eu tenho uma solução do Visual Studio 2008 com dois projetos (um projeto do Word-Template e um aplicativo de console do VB.Net para teste). Ambos os projetos fazem referência a um projeto de banco de dados que abre uma conexão com um arquivo de banco de dados do MS-Access 2007 e tem referências ao System.Data.OleDb. No projeto de banco de dados, tenho uma função que recupera uma tabela de dados da seguinte maneira
private class AdminDatabase
' stores the connection string which is set in the New() method
dim strAdminConnection as string
public sub New()
...
adminName = dlgopen.FileName
conAdminDB = New OleDbConnection
conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _
"Provider=Microsoft.ACE.OLEDB.12.0"
' store the connection string in strAdminConnection
strAdminConnection = conAdminDB.ConnectionString.ToString()
My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection)
...
End Sub
' retrieves data from the database
Public Function getDataTable(ByVal sqlStatement As String) As DataTable
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New OleDbDataAdapter
Dim localCon As New OleDbConnection
localCon.ConnectionString = strAdminConnection
Using localCon
Dim command As OleDbCommand = localCon.CreateCommand()
command.CommandText = sqlStatement
localCon.Open()
da.SelectCommand = command
da.Fill(dt)
getDataTable = dt
End Using
End Function
End Class
Quando eu chamo essa função do meu projeto de modelo do Word 2007, tudo funciona bem; Sem erros. Mas quando eu o executo no aplicativo de console, ele lança a seguinte exceção
ex = {"O provedor 'Microsoft.ACE.OLEDB.12.0' não está registrado na máquina local."}
Ambos os projetos têm a mesma referência e o aplicativo do console funcionou quando eu o escrevi (um tempo atrás), mas agora ele parou de funcionar. Devo estar faltando alguma coisa, mas não sei o quê. Alguma ideia?