我创建了一个小型vb.net应用程序,它连接到共享文件夹上的Excel工作表。 如果我在使用应用程序之前打开excel,它的效果很好,问题是当excel在后台打开时我得到一个" System.Data.OleDb.OleDbException"尝试打开连接时出错。
我已经读过一些关于这个错误的内容,我知道它与本地临时库的访问权限有关。 所以我的问题是: 1)有解决方案吗? 2)对于我的excel文件位于共享驱动器上的情况,这是最好的连接策略吗?
连接代码:
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)
我在cn.Open()上收到错误。
答案 0 :(得分:0)
几个星期前出现了完全相同的问题。
正如史蒂夫建议的那样,错误是由oledb提供程序的错误版本引起的。
试试这个:
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)