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

Překlady článku Překlady článku
ID článku: 299484 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

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 Explicit
    
    Dim cnn As ADODB.Connection
    Dim cat As ADOX.Catalog
    Dim tbl As ADOX.Table
    Dim col As ADOX.Column
    
    
    Private 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
       Next
    End Sub
    
    Private 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
       Next
    End Sub
    
    
    Private 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
       Wend
    End 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:
Metoda OpenSchema
http://msdn.microsoft.com/en-us/library/ms676705.aspx

ADOX objektu tabulky
http://msdn.microsoft.com/en-us/library/ms677529.aspx

Vlastnosti

ID článku: 299484 - Poslední aktualizace: 28. února 2014 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbnosurvey kbarchive kbmt kbjet kbprb KB299484 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:299484

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