PRB: Sloupce jsou seřazeny podle abecedy používání ADOX k přijetí sloupce tabulky Access

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:299484
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
Pokud sloupce tabulky aplikace Microsoft Access načíst pomocí kolekce ADOX katalogy a Microsoft OLE DB Provider for Jet jsou abecedně seřazeny sloupce.
Příčina
OLE DB Provider 4.0 pro Jet načte sloupců v abecedním pořadí a nikoli v pořadí sloupců pořadové umístění.
Řešení
Chcete-li tento problém vyřešit, pomocí ovladače ODBC pro aplikaci Microsoft Access ve spojení s OLE DB Provider pro ODBC. Ostatní OLE DB Providers, jako je například zprostředkovatel OLE DB pro SQL Server nepředstavují problém.

Je nutné použít OLE DB Provider for Jet, použijte metodu OpenSchema objektu ADODB připojení a třídit výsledné sady záznamů na poli ORDINAL_POSITION.
Další informace

Kroky pro reprodukci chování

  1. Vytvoření nového projektu standardní EXE v jazyka. Jako výchozí je vytvořen formulář Form1.
  2. V nabídce projekt klepněte odkazy a klepněte na příkaz Microsoft ActiveX Data Objects 2.1 a Microsoft ADO Ext. 2.1 for DDL and Security.
  3. Přidat tři ovládací prvky CommandButton Form1.
  4. Vložte následující kód do deklarační sekci Form1:
    Option ExplicitDim cnn As ADODB.ConnectionDim cat As ADOX.CatalogDim tbl As ADOX.TableDim col As ADOX.ColumnPrivate Sub Command1_Click()   Set cnn = New ADODB.Connection   With cnn      .Provider = "Microsoft.Jet.OLEDB.4.0;"      .Open "Data Source=D:\Nwind.mdb;"   End With   Set cat = New ADOX.Catalog   cat.ActiveConnection = cnn   Set tbl = cat.Tables("Products")   Debug.Print "Results using the OLEDB Provider and ADOX"   For Each col In tbl.Columns      Debug.Print col.Name   NextEnd SubPrivate Sub Command2_Click()   Set cnn = New ADODB.Connection   With cnn      .Provider = "MSDASQL.1;"      .Open "Driver={Microsoft Access Driver (*.mdb)};" & _       "DBQ=D:\Nwind.mdb;"   End With   Set cat = New ADOX.Catalog   cat.ActiveConnection = cnn   Set tbl = cat.Tables("Products")   Debug.Print "Results using the ODBC Driver and ADOX"   For Each col In tbl.Columns      Debug.Print col.Name   NextEnd SubPrivate Sub Command3_Click()   Dim rsSchema As ADODB.Recordset   Dim fld As ADODB.Field   Dim rCriteria As Variant   Set cnn = New ADODB.Connection   With cnn      .CursorLocation = adUseClient      .Provider = "Microsoft.Jet.OLEDB.4.0;"      .Open "Data Source=D:\Nwind.mdb;"      End With   Set rsSchema = cnn.OpenSchema(adSchemaColumns, _        Array(Empty, Empty, "Products"))   rsSchema.Sort = "ORDINAL_POSITION"   Debug.Print "Results using the OpenSchema method"   While Not rsSchema.EOF      Debug.Print rsSchema!COLUMN_NAME      rsSchema.MoveNext   WendEnd Sub					
  5. Upravit příkazy cnn.Open odkazovat na platný soubor databáze Microsoft Access.
  6. Spustit projektu a klepněte na tlačítko Command1. Všimněte si, že jsou názvy polí seřazeny abecedně při použití zprostředkovatele OLE DB.
  7. Klepněte na tlačítko Command2. Všimněte si, že názvy polí se zobrazují v jejich pořadové umístění, při použití ovladače ODBC.
  8. Klepněte na tlačítko Command3. Všimněte si, že názvy polí se zobrazují v jejich pořadové umístění, pokud používáte zprostředkovatele OLE DB s metoda OpenSchema.
Odkazy
Další informace naleznete v následujících článcích MSDN:
nesprávné řazení polí 3.51 MSAccess Acc2k

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

Vlastnosti

ID článku: 299484 - Poslední kontrola: 02/28/2014 12:00:00 - Revize: 3.2

Microsoft Data Access Components 2.0, 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, Microsoft Data Access Components 2.5 Service Pack 1, Microsoft Data Access Components 2.6

  • kbnosurvey kbarchive kbmt kbjet kbprb KB299484 KbMtcs
Váš názor