早上好, 使用以下代码读取Excel文件。
[CODE]
strFClasse = oCld.GetSettingBus("BSJVE001", "OPZIONI", ".", "FileClasse", Path.Combine(oApp.AscDir, "Classi.xls"), " ", Path.Combine(oApp.AscDir, "Classi.xls"))
MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strFClasse & "';Extended Properties=Excel 8.0;")
MyConnection.Open()
strSCl = "SELECT * FROM [Classi$A:B] WHERE [Group] = " & CStrSQL(strCodIn)
MyCommand = New System.Data.OleDb.OleDbDataAdapter(strSCl, MyConnection)
MyCommand.Fill(dtTemp)
[/CODE]
在测试中运行生产中的所有内容(Windows 7),我收到以下错误:
OleDbException:-2147467259 - 创建文件时出错。
提前致谢。
答案 0 :(得分:0)
当您使用它时,如果OLEDB无法找到它,它将尝试创建一个文件。我怀疑您的服务器无法访问该路径,因此假设该文件不存在,然后尝试创建它。这也会失败,因此您会收到“Error Creating File”错误。检查路径上的安全性。
顺便说一句,您应该使用Microsoft.ACE.OLEDB.12.0提供程序,因为V4.0现在已经很老了。
您还可以在连接字符串中添加HDR = Yes和IMEX = 1。第一个指示工作表是否在第一行中具有列名称,第二个指示OLEDB应将列视为文本。这有助于避免混合数据列的所有问题。
最后明确定义变量是一种好习惯。
Dim MyConnection As System.Data.OleDb.OleDbConnection
答案 1 :(得分:0)
对于其他寻找此常规错误的其他原因的人,如果您在文件路径中添加其他不必要的空格,我会看到此错误。例如,在“c:\ Folder1 \ Folder2 \ Myfile.xls”中,“Folder1”之后的额外空格似乎也会产生此类错误。