Chyba: Excel ODBC Driver ignoruje FirstRowHasNames nebo nastavení záhlaví

Překlady článku Překlady článku
ID článku: 288343 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při použití ovladače Microsoft Excel Open Database Connectivity (ODBC) k připojení k listu aplikace Excel jako zdroj dat ODBC ovladač předpokládá výchozí první řádek dat listu obsahuje záhlaví sloupců (pole názvy). Podle dokumentace ovladač lze volitelné nastavení připojení FirstRowHasNames změnit toto výchozí chování pomocí 0 pro NEPRAVDA a 1 TRUE. Však ve skutečnosti ovladač ignoruje toto nastavení a první řádek dat je vždy zacházeno jako záhlaví sloupců. Pokud první řádek dat neobsahuje záhlaví sloupců nebo jiných položek, efektivní výsledkem je, že první řádek dat "zmizí."

Příčina

Hodnota FirstRowHasNames nebo parametr záhlaví (HDR) je nikdy předáním Excel ODBC Driver.

Řešení

HDR = nastavení je k dispozici a funkční při použití Microsoft Jet OLE DB Provider a jeho ovladač ISAM pro Excel. Nejlepším řešením je proto použít zprostředkovatele Jet spíše než ovladač Excel ODBC.

Protože ovladač Excel ODBC vždy předpokládá, že první řádek obsahuje názvy polí, první řádek musí vždy obsahovat platné pole názvy nebo fiktivní položky, které vývojář je ochotni ignoruje.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o chybu v produktech společnosti uvedených na začátku tohoto článku.

Další informace

Kroky pro reprodukci chování

  1. Vytvoření nového sešitu a uložit s výchozí název složky, kde můžete vytvořit testu projektu jazyka.
  2. V buňce A1 vyplnit několik buněk v prvním sloupci náhodná data.
  3. Vytvoření nového projektu jazyka a nastavte odkaz na ADO (ActiveX Data Objects).
  4. Zadejte a spusťte následující kód:
    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
    					
Obvykle by očekáváte viz ovladač Excel přiřadit výchozí název pole "F1" sloupce dat a zobrazit data začínající na první záznam zadané v buňce A1. Uvědomte si však, které v ladicím okně hodnota zadaná v buňce A2 vytištěn jako hodnota prvního záznamu v spite vaše nutnosti nastavit FirstRowHasNamesFalse. Hodnota v buňce A1 "zmizel" stát pole název pro sloupec.

Vlastnosti

ID článku: 288343 - Poslední aktualizace: 16. září 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbbug kbmdacnosweep kbpending KB288343 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:288343

Dejte nám zpětnou vazbu

 

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