none
Access 2016 Not supporting OLEDB16.0 Provider RRS feed

  • Question

    1. Hi..

    I have installed office 2016 in my PC, now I am trying to connect Access 2016 files using oledb.16 provider through .exe file I am getting below error message:

    System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local machine.

    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, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
       at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
       at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.OleDb.OleDbConnection.Open()
       at ProjectLIT_2013.FormProjectLIT.Form1_Load(Object sender, EventArgs e)
       at System.EventHandler.Invoke(Object sender, EventArgs e)
       at System.Windows.Forms.Form.OnLoad(EventArgs e)
       at System.Windows.Forms.Form.OnCreateControl()
       at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       at System.Windows.Forms.Control.CreateControl()
       at System.Windows.Forms.Control.WmShowWindow(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.Form.WmShowWindow(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)while connecting access 2013 file through same exe by using oledb 12.0 provider is working fine...

    please help to select correct connection string for access 2016 oledb provider..

    thanks

    Talha


    Monday, March 20, 2017 9:54 AM

Answers

  • There is no entry for Microsoft.ACE.OLEDB.16.0 in the Registry unless the corresponding version of Office/Access (2016) is installed. I would stick with 12.0 since all ACE.OLEDB references point to the same underlying data access library (ACEOLEDB.DLL).

    The Access Runtime for 2016 may install Microsoft.ACE.OLEDB.16.0 but you probably don't need this download. My understanding is that 2013 and 2016 are functionally equivalent.


    Paul ~~~~ Microsoft MVP (Visual Basic)


    Tuesday, March 28, 2017 12:25 PM

All replies

  • If you have 32-bit Office or Access installed then you must set the Platform property of the Visual Studio project to x86. For 64-bit you can use Any CPU.

    Paul ~~~~ Microsoft MVP (Visual Basic)

    Monday, March 20, 2017 12:30 PM
  • Hi TalhaTJ,

    you can try to install Microsoft Access Database Engine 2010 Redistributable .

    Microsoft Access Database Engine 2010 Redistributable

    you can also try to refer thread below in which other user had similar issue like yours.

    Regards

    Deepak


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Tuesday, March 21, 2017 6:50 AM
    Moderator
  • Thanks for replay..

    I have installed Access runtime 2013 and I have change the connection string in my exe to 'Microsoft.ACE.OLEDB.12.0' Provider.. working fine for me.

    but I want to know how to connect without Access runtime 2013  and with 'Microsoft.ACE.OLEDB.16.0' provider..??

    Thanks.

    Tuesday, March 28, 2017 4:41 AM
  • There is no entry for Microsoft.ACE.OLEDB.16.0 in the Registry unless the corresponding version of Office/Access (2016) is installed. I would stick with 12.0 since all ACE.OLEDB references point to the same underlying data access library (ACEOLEDB.DLL).

    The Access Runtime for 2016 may install Microsoft.ACE.OLEDB.16.0 but you probably don't need this download. My understanding is that 2013 and 2016 are functionally equivalent.


    Paul ~~~~ Microsoft MVP (Visual Basic)


    Tuesday, March 28, 2017 12:25 PM