Excel VBA - ADO RecordSet将第2行作为标题行而不是第1行返回

时间:2012-03-29 17:21:58

标签: excel-vba ado recordset vba excel

我正在使用以下代码打开与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。

1 个答案:

答案 0 :(得分:0)

答案就在连接字符串中:

    HDR = YES;

该子句指示数据库驱动程序将文件的第一行读作列或字段名称列表。

将其重新编码为:

   HDR = NO;

此处还有其他文档:http://www.connectionstrings.com/excel

ConnectionStrings.com上的文本驱动程序页面提供了一些有关IMEX = 0和其他OLEDB apocrypha的有趣提示。