Question

I've created a small vb.net application that connects to a an excel sheet on a shared folder. It works great if i open the excel before using the the application , the issue is when the excel isn't open in the background i get a "System.Data.OleDb.OleDbException" error when trying to open a connection.

I've read a bit about this error and i understand it has something to do with access rights to a local temp library. So my questions are: 1) Is there a solution? 2) Is this the best connection strategy for my situation where the excel files sit on a shared drive?

Connection code:

    skuPath = "C:\path.xlsm"
    cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + skuPath + ";Extended Properties=Excel 8.0;")
    q1 = "select * from [" + year + "$B4:V128]"
    da = New System.Data.OleDb.OleDbDataAdapter(q1, cn)
    cn.Open()
    da.Fill(ds, "Table1")
    cn.Close()
    dt = ds.Tables(0)

I receive the error on cn.Open().

Was it helpful?

Solution

Got exactly the same problem few weeks ago.
Error is caused by incorrect version of oledb provider, just as Steve suggested.

Try this:

skuPath = "C:\path.xlsm"
cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + skuPath + ";Extended Properties=""Excel 12.0;HDR=Yes""")
q1 = "select * from [" + year + "$B4:V128]"
da = New System.Data.OleDb.OleDbDataAdapter(q1, cn)
cn.Open()
da.Fill(ds, "Table1")
cn.Close()
dt = ds.Tables(0)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top