If you are sure the provider is properly installed I would build my connection string as follows
Code:
Dim Builder As New OleDbConnectionStringBuilder With _
{ _
.DataSource = IO.Path.Combine(Application.StartupPath, "MyBook.xlsx"), _
.Provider = "Microsoft.ACE.OLEDB.12.0" _
}
Builder.Add("Extended Properties", "Excel 12.0;HDR=Yes;IMEX=1")
Console.WriteLine(Builder.ConnectionString)
Or set extended properties to
Code:
Builder.Add("Extended Properties","HDR=Yes;IMEX=1;Jet OLEDB:Engine Type=37")
Also try removing IMEX=1 and see what happens, it may connect but cause issues with your data and if so you might need to consider setting IMEX to another value 0 or 2 then again you might need to rethink your entire solution. Excel can be difficult at times and sometime down right refuse to work as expected with OleDb thus requiring early or late binding.