SORUN: Access tablosunun sütunlarını ADOX kullandığınızda sütunlar alfabetik olarak sıralama

Makale çevirileri Makale çevirileri
Makale numarası: 299484 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Bir Microsoft Access tablosunun sütunlarını almak için ADOX kataloglarını tahsilat ve Microsoft Jet için OLE DB Provider'ı kullanırsanız, sütunlar alfabetik olarak sıralanır.

Neden

OLE DB Provider 4.0 için Jet sütunları alfabetik yerine sütun sıralı sırayla alır.

Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, ODBC sürücüsü için Microsoft Access, OLE DB sağlayıcısı ile bağlantılı ODBC için kullanın. Diğer OLE DB sağlayıcısı, OLE DB Provider for SQL Server gibi bu soruna neden.

Jet için OLE DB Sağlayıcısı'nı kullanmalısınız, ADODB Connection nesnesi OpenSchema yöntemini kullanın ve ORDINAL_POSITION alanına sonuç kayıt kümesini sıralama.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

  1. Yeni bir proje standart exe DOSYASı, Visual Basic'te oluşturun. Varsayılan olarak, Form1 oluşturulur.
  2. Proje) menüsünde, Başvurular ' ı tıklatın ve sonra Microsoft ActiveX Data Objects 2.1 ve Microsoft ADO Ext. 2.1 için ve güvenlik'i tıklatın.
  3. Üç KomutDüğmesi denetimi Form1'e ekleyin.
  4. Form1 Tanımlamalar bölümüne aşağıdaki kodu yapıştırın:
    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. Cnn.Open ifadeleri, geçerli bir Microsoft Access veritabanı dosyasına işaret edecek biçimde değiştirin.
  6. Projeyi çalıştırın ve Command1 ' ı tıklatın. OLE VT Sağlayıcısı'nı kullandığınızda, alan adları alfabetik olarak sıralanır unutmayın.
  7. Command2 Ek Yardım düğmesini tıklatın. ODBC sürücüsü kullandığınızda, bu alan adlarını sıra konumlarına göründüğüne dikkat edin.
  8. Command3 Ek Yardım düğmesini tıklatın. OpenSchema yöntemi ile OLE VT Sağlayıcısı'nı kullandığınızda, bu alan adlarını sıra konumlarına göründüğüne dikkat edin.

Referanslar

Daha fazla bilgi için aşağıdaki MSDN makalelere bakın:
OpenSchema Yöntemi
http://msdn.microsoft.com/en-us/library/ms676705.aspx

ADOX Table nesnesi
http://msdn.microsoft.com/en-us/library/ms677529.aspx

Özellikler

Makale numarası: 299484 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbjet kbprb KB299484 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:299484

Geri Bildirim Ver

 

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