Makale numarası: 246335 - Bu makalenin geçerli olduğu ürünleri görün.
Excel'in otomatik olarak bir Microsoft Excel çalışma sayfasına bir ADO kayıt kümesi içeriğini transfer edebilirsiniz. Kullanabileceğiniz bir yaklaşım, otomatikleştirme Excel sürümünde bağlıdır. Excel 97, Excel 2000 ve Excel 2002 için bir kayıt aralığı için transfer etmek için kullanabileceğiniz bir CopyFromRecordset yöntemi vardır. Excel 2000 ve 2002 CopyFromRecordset bir DAO veya ADO kayıt kopyalamak için kullanılabilir. Ancak, Excel 97'de CopyFromRecordset yalnızca DAO Kayıt kümesi destekler. Bir ADO kayıt kümesi, Excel 97'ye aktarmak için <a0></a0>, kayıt kümesi ' bir dizi oluşturabileceğiniz ve sonra da bir aralık, bir dizi içeriğiyle doldurmak.
Bu makalede, her iki yaklaşımdan anlatılır. Gösterilen örnek kod, Excel 97, Excel 2000, Excel 2002, Excel 2003 ve Excel 2007 için bir ADO kayıt kümesi nasıl aktarabilirsiniz göstermektedir.
Aşağıda verilen kod örneği, bir ADO kopyalama gösteren <a1>Otomasyon</a1> alanından, Microsoft Visual Basic kullanarak bir Excel çalışma sayfası için kayıt kümesi. Kod, önce Excel sürümünü denetler. Excel 2000 veya 2002 algıladı, etkin olduğundan ve daha az kod gerektiren CopyFromRecordset yöntemi kullanılır. Ancak, Excel 97 veya önceki algılanırsa, kayıt kümesinin ilk ADO recordset nesnesi GetRows yöntemini kullanarak bir diziye kopyalanır. Dizi sonra ilk boyuta (satırlar) kayıtlardır ve ikinci boyutun (sütun) bulunan alanlardır guıd'nin yerleri. Sonra dizinin, bir Excel çalışma sayfasına bir hücre aralığına dizi gerçekleştirebilecekleri kopyalanır. (Tek bir adımda kopyalanan yerine çalışma sayfasındaki her hücreye döngü dizidir.)
Kod örneği, Microsoft Office ile gelen örnek Northwind veritabanını kullanır. Microsoft Office'in yüklü olduğunda, varsayılan klasör seçtiyseniz, veritabanı bulunur:
\Program Files\Microsoft Office\Office\Samples\Northwind.mdb
Northwind veritabanı ve bilgisayarınızdaki farklı bir klasörde bulunan, aşağıda verilen kod veri tabanının yolu düzenlemeniz gerekiyorsa.
Northwind veritabanını sisteminizde yüklü değilse, örnek veritabanları yüklemek için Microsoft Office Kur için <a1>Ekle/Kaldır</a1> seçeneğini kullanabilirsiniz.
Not 2007 Microsoft Office yüklediğinizde, Northwind veritabanı yüklü değil. Northwind 2007 edinmek için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://office.microsoft.com/en-us/templates/TC012289971033.aspx
(http://office.microsoft.com/en-us/templates/TC012289971033.aspx)
Örnek oluşturma adımları
Performansı ve verimliliği CopyFromRecordset tercih edilen yöntemdir. Bir ADO kayıt kümesi, Excel 97 ile CopyFromRecordset geçirmeye çalıştığınızda, Excel 97 ile CopyFromRecordset, yalnızca DAO Kayıt kümesi desteklediği için aşağıdaki hatayı alırsınız:
Kod örneğinde, Excel'in denetleyerek bu hatayı önleyebilirsiniz sürüm 97 sürümü için CopyFromRecordset kullanmak.
Çalışma zamanı hatası 430:
Sınıf Otomasyonu desteklemiyor ya da beklenen arabirimi desteklemiyor.
Not CopyFromRecordset kullanırken, kullandığınız ADO veya DAO Kayıt kümesi OLE nesnesi alanları veya dizi verileri hiyerarşik kayıt kümeleri gibi içeremez bilmelisiniz. CopyFromRecordset yöntem, bir kayıt kümesindeki her iki türü alanları içeriyorsa, aşağıdaki hata ile başarısız olur:
GetRows kullanma
Çalışma zamanı hatası-2147467259:
Yöntemi, Nesne aralığı CopyFromRecordset başarısız oldu.
Excel 97 algılanırsa, kayıt, bir dizi içine kopyalamak için GetRows yöntemini ADO kayıt kümesini kullanın. Çalışma sayfasındaki bir hücre aralığı için GetRows tarafından döndürülen bir dizi atarsanız, kolon satırlarda yerine verileri gider. Örneğin, kayıt kümesi, iki alan ve 10 satır varsa, dizinin iki satır ve 10 sütunlar görünür. Bu nedenle, bir hücre aralığına dizi atamadan önce TransposeDim() işlevini kullanarak bir dizi işlem tablosunda devrik dönüştürmek gerekir. Bir hücre aralığına dizi atarken haberdar bazı sınırlamalar vardır:
Bir dizi Excel aralığı nesneye atarken, aşağıdaki kısıtlamalar geçerlidir:
dizi devriğini almak yerine TransposeDim() işlevi Excel'in devrik yöntemi kullanmaya karar verirseniz, aşağıdaki sınırlamalar devrik yöntemiyle bilmeniz:
Çalışma zamanı hatası: 13: Tür uyuşmazlığı
Çalışma zamanı hata 5: Geçersiz yordam çağrısı veya bağımsız değişken
Çalışma zamanı hatası 1004: Uygulama tanımlı veya nesne hata tanımlanmış
Excel'in çeşitli sürümleri için geçirme dizilerinde kısıtlamaları 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:
177991Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
(http://support.microsoft.com/kb/177991/ )XL: Excel Otomasyonu kullanma Arrays gönderme, kısıtlamaları
146406
(http://support.microsoft.com/kb/146406/EN-US/ )XL: nasıl tablo Access'ten DAO kullanarak Excel'e Al
215965
(http://support.microsoft.com/kb/215965/ )XL2000: 12: 00: 00'için bir tarihler 1900 daha önceki bir sürümü görüntülenen de
243394
(http://support.microsoft.com/kb/243394/ )Kullanım nasıl MFC bir DAO Kayıt kümesi Otomasyon ile Excel'e kopyalama
247412
(http://support.microsoft.com/kb/247412/ )BILGI: verilerini Visual Basic'den Excel'e aktarma yöntemleri
Makale numarası: 246335 - Last Review: 28 Mart 2007 Çarşamba - Gözden geçirme: 5.1
Bu makaledeki bilginin uygulandığı durum:
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:246335
(http://support.microsoft.com/kb/246335/en-us/ )