我正在使用以下代码打开与Excel 2003(.xls)工作表的连接:
Set adoConn = New ADODB.Connection
Set adoRS = New ADODB.Recordset
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & vendorSource & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
.Open
End With
adoRS.CursorLocation = adUseClient
adoRS.CursorType = adOpenStatic
adoRS.ActiveConnection = adoConn
adoRS.Open "SELECT * FROM [6000_600_VENDOR_MAIN_INFO]"
直到最近,这已从工作表中正确返回结果。在我连接的当前电子表格中,记录集将第2行作为标题行而不是第1行返回。我不确定电子表格中的更改。从视觉上看电子表格,除了标题行的单元格格式外,似乎没有什么不同。我尝试清除第1行的格式,但它没有任何区别。是什么导致记录集将第2行作为标题行而不是第1行返回?
需要注意的是,我正在从Excel 2007建立连接,但是连接到Excel 2003格式的电子表格。
任何建议的TIA。
答案 0 :(得分:0)
答案就在连接字符串中:
HDR = YES;
该子句指示数据库驱动程序将文件的第一行读作列或字段名称列表。
将其重新编码为:
HDR = NO;
此处还有其他文档:http://www.connectionstrings.com/excel
ConnectionStrings.com上的文本驱动程序页面提供了一些有关IMEX = 0和其他OLEDB apocrypha的有趣提示。