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

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
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
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.CloseEnd 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.

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 288343 - Poslední kontrola: 12/06/2015 00:26:48 - Revize: 3.2

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

  • kbnosurvey kbarchive kbmt kbbug kbmdacnosweep kbpending KB288343 KbMtcs
Váš názor