Visual Basic'de veya VBA'DA alınan Excel verileriyle ADOX nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 303814 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

ActiveX Veri Nesneleri Uzantıları veri tanımlama dili ve güvenlik (ADOX) için ActiveX Data Objects (ADO) geliştiricilere, veri erişim nesneleri (veritabanları, tabloları, alanları ve diğer veritabanı nesneleri, programlı olarak işlemek için DAO de) bulunan yetenekleri sağlar. Masaüstü veritabanlarında dışındaki, Microsoft Access, Jet altyapısını kullanan ISAM sürücüleri destekleyen, Jet sürüm 4.0 için Microsoft OLE DB Provider'in yayımlanmasından beri ADO geliştiricilerin Microsoft Excel çalışma kitapları ve çalışma sayfalarını hem ADO hem de ADOX kullanabilmek için olmuştur.

Ancak, Excel çalışma sayfasını normal bir veritabanı olmadığı için Excel ile birlikte kullanıldığında ADO bazı sınırlamalar vardır. Özellikle, birçok ADOX yöntemleri değil çalışma veya, Excel ile kullanılır, beklenmeyen sonuçlar verir. Bu makalede, birçok ADOX ve Excel'in sınırlamaları belgelemektedir. Excel ile ADO kullanımı hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
257819Excel verileriyle Visual Basic'de veya VBA'DA gelen ADO nasıl kullanılır
Bu makalede, aşağıdaki bölümlere ayrılmıştır:

Not: Bu makalede, Microsoft Windows 2000 Server Service Pack 2 (SP2) üzerinde yapılmadı, Microsoft Data Access Components (MDAC) 2.6 SP1, Microsoft Visual Basic 6 SP5 ve XP (Microsoft Excel 2002) için sınama. Bu makalede olmayan kabul veya kullanıcılar, Windows, MDAC, Visual Basic'in veya Excel'in farklı sürümleriyle gözlemek davranış farklılıkları tartışın.

Daha fazla bilgi

ADOX katalogları

ADOX nesne modeli, veritabanının bir Catalog nesnesinin temsil veya, Excel, çalışma kitabını durumda.
  • Bir ADO Connection nesnesini veya bağlantı dizesi, oluşturmak veya bir Catalog nesnesinin açmak için kullanabilirsiniz. Aşağıdaki kod örneği, bir ADOX Kataloğu olarak Kitap1.xls açmaya verilmektedir:
    Dim cat As ADOX.Catalog
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    					
  • Katalog nesnesi Create yöntemi vardır, ancak bir Sil yöntemine sahip değil.

Bir Katalog oluşturma

Yeni bir Excel çalışma kitabı oluşturmak için ADOX Catalog nesnesi Create yöntemi kullanamazsınız. Bunu yapmayı denerseniz, aşağıdaki hata iletisini alırsınız:
Işlem bu nesne türü için desteklenmiyor.
Ancak, bir katalog için yeni bir çalışma kitabı dosya adı belirtmek ve aşağıda açıklanan teknikler kullanılarak yeni kataloğa, en az bir tablo ekleme yeni bir Excel çalışma kitabı oluşturabilirsiniz. Bu yöntem yalnızca ADOX tablo olarak oluşturduğunuz çalışma sayfaları yeni bir çalışma kitabı oluşturur; diğer bir deyişle, boş sayfaları yeni bir Excel çalışma kitabı Excel seçenekleri iletişim kutusu için belirtilen varsayılan sayısı değil eklenecektir.

ADOX tablolar

ADOX Tablo nesnesi ya da e-posta verileri için kapsayıcı olarak hizmet verebilir Excel nesneleri (diğer bir deyişle, bir çalışma sayfası veya aralık) karşılık gelir.

Bir tablo oluşturma

ADOX, Excel'de yeni bir tablo oluşturmak için kullanabilirsiniz. Tablo Sütunlar oluşturmadan oluşturamıyor çünkü kod örneği "ADOX Columns" bölümünde görüntülenir.
  • ADOX yeni bir tablo oluşturma yeni bir çalışma sayfası hem de yeni bir adlandırılmış aralık belirtilen adı taşıyan yeni bir çalışma sayfasında oluşturur. Yeni adlandırılmış bir aralık, sütun başlıklarını yayılır. Örneğin, iki sütunlu bir adlandırılmış aralık Tablom tanımlanan Tablom Tablom adlı bir tablo (çalışma) oluşturursanız,! $ A $ 1: $ B $ 1 ' de oluşturulur.
  • Boşluk içeren bir tablo adı belirtebilirsiniz; Ancak, ADOX alanı alt çizgi, oluşturduğunuz çalışma sayfası ve aralık adlarını değiştirir.
  • Yeni çalışma kitabındaki yeni bir çalışma kitabını Excel Seçenekleri'nde belirtilen boş sayfaları varsayılan sayısını izleyen son sayfa olarak oluşturulur.
  • Excel'de çalışma kitabı açıkken, yeni bir tablo oluşturmak çalışırsanız aşağıdaki hata iletisini alırsınız:
    Belirlenemeyen hata.
  • Tanımlanmış bir sütun içeren bir tablo oluşturmak çalışırsanız, başarılı olması için görünür, ancak gerçekte hiçbir şey oluşturulur.
  • Varolan bir tablonun adını değiştirmeye çalışırsanız, aşağıdaki hata iletisini alırsınız:
    Işlem bu nesne türü için desteklenmiyor.

Tablo silme

ADOX oluşturulduğu olsun veya olmasın, Excel'deki aralığı adlı veya ADOX tablo (çalışma) silmek için kullanamazsınız.
  • Çalışma sayfası (Tablom $) silmeye çalışırsanız, hata başarılı olması için görünür, ancak çalışma kitabındaki çalışma sayfasında kalır. Art arda hatasız <a2>Sil</a2> yöntemini ça??rabilirsiniz, ancak hiçbir etkisi yoktur.
  • (Tablom) aralığı silmeye çalışırsanız, hata başarılı olması için görünür, ancak aralığı çalışma kitabında kalır. Ancak, ikinci bir saat aralığı silmeye çalışırsanız, <a1>hata</a1> 3265 alırsınız:
    Madde, karşılık gelen istenen ad veya sıra derleme içinde bulunamıyor.
  • Adlandırılmış bir aralık silmeye çalışırsanız, adlandırılmış aralık tanımı olduğu gibi bırakır, ancak tüm veriler silinir.

ADOX sütunlar

ADOX sütunları, sütunları veya bir veritabanındaki alanlara karşılık gelir ve yetisini bir Excel çalışma sayfası sütunları karşılık gelir.

ADO veri türleri Excel ile birlikte kullanılır.

ADO, sütunlar oluşturmak için kullanabileceğiniz bir Excel veri kaynağı altı veri türlerini tanır:

  • adDouble, 5 yazın.
  • adDate, 7 yazın.
  • adCurrency, 6 yazın.
  • adBoolean, 11 yazın.
  • adVarWChar, 202 yazın.
  • ("Not") adLongVarWChar 203 yazın

Genel sütun

  • Bir tablonun herhangi bir veri satırı içeren sürece, ek sütunlar bir daha önce oluşturulmuş tabloya ekleyebilirsiniz.
  • Boşluk içeren bir sütun adlarını belirtebilirsiniz.
  • ADOX, her zaman tek bir tırnak işareti ('), örneğin 'F1' Sütun1, önünde sütun başlıkları oluşturur ' Sütun2. Ancak, bu adı tırnak işareti alınır, çünkü daha sonra bir sorun neden görünmüyor.

Bir tablo oluşturma, sütunlar oluşturma

ADOX kullanarak oluşturulan yeni bir tablo aynı anda yapıldığında sütunlar oluşturma en iyi şekilde çalışır.

Aşağıdaki kod, iki sütun (bir metin ve bir sayısal) içeren yeni bir tablo (çalışma) oluşturur:
    Dim cat As ADOX.Catalog
    Dim tbl As ADOX.Table
    Dim col As ADOX.Column
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    Set tbl = New ADOX.Table
    tbl.Name = "TestTable"
    Set col = New ADOX.Column
    With col
        .Name = "Col1"
        .Type = adDouble
    End With
    tbl.Columns.Append col
    Set col = Nothing
    Set col = New ADOX.Column
    With col
        .Name = "Col2"
        .Type = adVarWChar
    End With
    tbl.Columns.Append col
    cat.Tables.Append tbl
				

Varolan bir çalışma sayfasında sütun oluşturma

Boş bir çalışma sayfası için varolan sütunları ekleme, olağandışı sonuçlar üretir. ADOX ilk sütunu, tablonun Columns derlemesine eklenir ADOX ilk çalışma sayfasının BIR sütunda F1 adlı bir sütun başlığı oluşturur ve sonra da yeni ADOX sütun başlığını çalışma sayfası sütun B oluşturur. Bu nedenle, iki yeni sütun ekler ADOX kodu üç sütun üstbilgileri oluşur. Bu istenmeyen silmeye çalışırsanız, Columns derlemesine ilk ADOX sütun eklemeden önce ilk sütunundan, başarılı olması için görünür, ancak istenmeyen sütun yine de oluşturulur.

Sütun silme

Excel'de, bir ADOX tablodan, bir sütunu silemezsiniz.
  • Veri sütunu yok, bu hata başarılı olması için görünür, ancak sütun ve sütun başlığı kalır.
  • Silme işlemi, sütun veri içeriyorsa, aşağıdaki hata iletisiyle başarısız olur:
    Geçersiz işlem.

Varolan bir sütun veri türünü değiştirme

Farklı bir veri türü için .Type özelliğini ayarlamaya çalışırsanız, bir sütun bir tabloya eklenen sonra aşağıdaki hata iletisini alırsınız:
Işleme bu bağlamda izin verilmez.

Verileri Excel tablolar ve sütunlar ekleme

ADO kod Excel Visual Basic tasarım ortamında sınarken, ilk kez bir kayıt işlemi çalıştırdığınızda, aşağıdaki hata iletisini alabilirsiniz:
Işletim sistemi tarafından desteklenen harmanlama sırası seçili.
Bu hatayı göz ardı; uygulama derlenmiş sonra bu hata oluşur. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
246167SORUN: Sequence hata açılıyor ADODB Recordset'i ilk kez bir Excel XLS karşı Collating...

ADOX tarafından oluşturulan, Excel sütuna veri ekleme

ADO, eklemek veya tablolar ve sütunlar ADOX kullanarak Excel'de oluşturduğunuz'deki verileri değiştirmek için kullandığınızda, bu bilgiyi nerede depolandığını temizleyin olsa ADO bu sütun için belirttiğiniz veri türlerini uyar.
  • Tüm metin dizesi değerlerini tek tırnak işareti öncesinde depolanır. Ancak, bu değeri tırnak işareti alınır, çünkü daha sonra bir sorun neden görünmüyor.
  • Bir metin dizesi içinde bir metin sütununu sayı veya sayı tanımlanmış bir sütun eklemek denerseniz, hata 80040e21 alırsınız:
    Birden fazla adımlı işlem hatalar oluşturdu. Her durum değerini denetleyin.

Normal Excel sütun veri ekleme

ADO eklemek veya bu verileri Excel çalışma sayfaları veya oluşturulmaz ya da ADOX kullanarak değişiklik aralıklarını değiştirmek için kullandığınızda, herhangi bir kısıtlama eklemek için veri türüne uygulanır.
  • Metin dizeleri, yukarıdaki tek tırnak işareti depolanır.
  • Sayılar, sola hizalı görüntülenir. Excel 2002'de, "metin olarak depolanan sayılar" uyarır akıllı etiket ile numaralarını bayrakla işaretlenir. Veri ile çalışırken özellikle verileri Excel'e sayısal çözümlemesi için depolanmış, bu sorun daha sonra neden olabilir.

SQL CREATE, DROP deyimleri ve ALTER kullanma

Yukarıda açıklanan ilgili ADOX yöntemleri aynı sonuçları getirebilecek bir ADO bağlantısı üzerinden karşı Excel veritabanı nesnelerini Microsoft SQL veri tanımlama dili (DDL) deyimleri CREATE, DROP ve ALTER gibi çalıştırabilirsiniz.

Sonuç

  • ADOX, yeni bir tablo, Excel ile en iyi çalışır ve sütunlarından tümünü aynı anda oluşturulur.
  • ADOX kullanarak oluşturulan bir çalışma sayfasında depolanan verileri, ADO, Excel verileriyle en iyi şekilde çalışır.

Özellikler

Makale numarası: 303814 - Last Review: 13 Temmuz 2004 Salı - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Anahtar Kelimeler: 
kbmt kbdatabase kbhowto kbiisam KB303814 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:303814

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