Ошибка: Драйвер ODBC Microsoft Excel игнорирует FirstRowHasNames или параметр заголовка

Переводы статьи Переводы статьи
Код статьи: 288343 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

При использовании драйвера Microsoft Excel возможности подключения ODBC (Open Database) для подключения к электронной таблице Excel как источник данных ODBC драйвер предполагается по умолчанию, первая строка данных содержит заголовки столбцов (имена полей). Согласно документации, необязательный FirstRowHasNames параметр подключения можно изменить это поведение по умолчанию, используя значение 0 для False, а 1 для True. Однако на самом деле, драйвер игнорирует этот параметр и первая строка данных всегда рассматриваются как заголовки столбцов. Если первая строка данных содержит заголовки столбцов или других операций, действующие получается что первая строка данных» исчезнет.»

Причина

Значение FirstRowHasNames или параметр заголовка (HDR) никогда не передается драйвера ODBC Microsoft Excel.

Решение

HDR = параметр функциональных и доступны при использовании доступа Microsoft Jet OLE DB и драйвер Excel ISAM. Таким образом наилучшим решением является использование поставщика данных Jet, а не драйвер ODBC Microsoft Excel.

Поскольку драйвер ODBC Microsoft Excel всегда предполагается, что первая строка содержит имена полей, первая строка всегда должно содержать допустимые имена файлов или фиктивные операции, которые разработчик желает игнорировать.

Статус

Корпорация Майкрософт подтверждает, что это является ошибкой в продуктах Майкрософт, перечисленных в начале данной статьи.

Дополнительная информация

Действия для воспроизведения поведения

  1. Создайте новую книгу Excel и сохраните его с именем по умолчанию в папке, где будет создать тестовый проект Visual Basic.
  2. В ячейке A1 заполнить несколько ячеек в первом столбце случайных данных.
  3. Создание нового проекта Visual Basic и установить ссылку на объекты данных ActiveX (ADO).
  4. Введите и выполните следующую команду:
    Private Sub Form_Load()
      Dim cn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Set cn = New ADODB.Connection
      With cn
        .Provider = "MSDASQL"
        .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & App.Path & "\Book1.xls;FirstRowHasNames=0;"
        .Open
      End With
      Set rs = New ADODB.Recordset
      With rs
        Set .ActiveConnection = cn
        .Source = "[Sheet1$]"
        .Open
      End With
      Debug.Print rs.Fields(0).Value
      Debug.Print rs.Fields(0).Name
      rs.Close
      cn.Close
    End Sub
    					
Обычно можно ожидать увидеть драйвер Excel присвоить имя поля по умолчанию «f1» для столбца данных и отображения данных, начиная с первой записи, введенные в ячейку A1. Однако следует отметить, что в окне отладки значение, введенное в ячейку A2 напечатан как значение первой записи в несмотря на набора FirstRowHasNames Кому Значение false. Значение в ячейке A1 «исчез» становится имя поля для столбца.

Свойства

Код статьи: 288343 - Последний отзыв: 5 июня 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
Ключевые слова: 
kbbug kbmdacnosweep kbpending kbmt KB288343 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:288343

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com