Fehler: Excel ODBC-Treiber ignoriert die FirstRowHasNames oder Header festlegen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 288343 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie den ODBC Microsoft Excel öffnen Database Connectivity (-) Treiber, verwenden um ein Excel-Arbeitsblatt als ODBC-Datenquelle herstellen, der Treiber standardmäßig davon ausgegangen, dass die erste Zeile von Arbeitsblattdaten Spaltenheader (Feldnamen) enthält. Gemäß der Treiberdokumentation zu kann optional FirstRowHasNames -Verbindungseinstellung verwendet werden, um dieses Standardverhalten ändern, mit 0 für False und 1 für True. Jedoch tatsächlich der Treiber ignoriert diese Einstellung und die erste Datenzeile wird immer als Spaltenüberschriften behandelt. Wenn die erste Zeile der Daten keine Spaltenüberschriften oder andere Einträge enthält, ist das effektive Ergebnis, dass die erste Datenzeile "ausgeblendet."

Ursache

Der Wert des FirstRowHasNames oder Header (HDR) Parameter ist nie an der Excel-ODBC-Treiber übergeben.

Lösung

Die HDR = Einstellung ist verfügbar und funktionsfähig, wenn Sie die Microsoft Jet-OLE DB-Provider und der Excel-ISAM-Treiber verwenden. Daher ist die beste Lösung der Jet-Provider anstelle der Excel-ODBC-Treiber verwenden.

Da der Excel-ODBC-Treiber immer vorausgesetzt, dass die erste Zeile Feldnamen enthält, muss die erste Zeile entweder gültigen Feldnamen oder dummy Einträge, die der Entwickler bereit, zu ignorieren ist immer enthalten.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel Microsoft-Produkten handelt.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie eine neue Excel-Arbeitsmappe und speichern Sie es mit dem Standardnamen in den Ordner, in dem Sie Visual Basic-Testprojekt erstellen.
  2. Füllen Sie in Zelle A1 ein paar Zellen in der ersten Spalte mit zufälligen Daten.
  3. Erstellen Sie ein neues Visual Basic-Projekt und legen Sie einen Verweis ActiveX Data Objects (ADO).
  4. Eingeben und Ausführen des folgenden Codes:
    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
    					
Normalerweise würden Sie erwarten, um finden Sie in den Excel-Treiber die Spalte von Daten der Standardfeldname "F1" zuweisen und die Daten beginnend mit dem ersten Datensatz anzuzeigen, die Sie in Zelle A1 eingegeben haben. Beachten Sie, die jedoch in das Testfenster der Wert, der Eingabe in Zelle, die a2 als der Wert des ersten Datensatzes trotz des ihr Vorhandensein FirstRowHasNames auf false festgelegt gedruckt. "Der Wert in Zelle A1 verschwunden" den Feldnamen für die Spalte zu.

Eigenschaften

Artikel-ID: 288343 - Geändert am: Dienstag, 16. September 2003 - Version: 3.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.1 Service Pack 1
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5
Keywords: 
kbmt kbbug kbmdacnosweep kbpending KB288343 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 288343
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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