Excel VBA - ADO RecordSet возвращает строку 2 в качестве строки заголовка вместо строки 1 - PullRequest
0 голосов
/ 29 марта 2012

Я открываю соединение с таблицей 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 голосов
/ 11 апреля 2012

Ответ есть в строке подключения:

HDR = YES;

Этот пункт дает указание драйверу базы данных прочитать первую строку вашего файла как список имен столбцов или полей.

Перекодировать его в:

HDR = NO;

Здесь есть дополнительная документация: http://www.connectionstrings.com/excel

На странице текстового драйвера на ConnectionStrings.com есть несколько интересных советов по IMEX = 0 и другим апокрифам OLEDB.

...