Makale numarası: 257819 - Son Gözden Geçirme: 27 Ocak 2007 Cumartesi - Gözden geçirme: 4.6 Excel verileriyle Visual Basic'de veya VBA'DA gelen ADO nasıl kullanılır
Bu SayfadaÖzetBu makalede, ActiveX Data Objects kullanımı anlatılır (ADO) bir veri kaynağı olarak Microsoft Excel elektronik tablolarla. Makaleyi, sözdizimi, sorunlar ve sınırlamalar için Excel'in belirli de vurgular. Bu makalede, OLAP anlatılmamaktadır veya Özet Tablo teknolojileri ya da diğer özel kullanır verileri Excel. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 303814
(http://support.microsoft.com/kb/303814/EN-US/
)
Visual Basic'de veya VBA'DA alınan Excel verileriyle ADOX nasıl kullanılır Daha fazla bilgiGirişSatır ve sütunları Microsoft Excel elektronik tablonun satırlarını ve sütunlarını veritabanı tablosunun yakından benzer. Kullanıcılar, Microsoft Excel, bir ilişkisel veritabanı yönetim sistemi olmadığını göz önünde bulundurun ve bu durum getirir sınırlamaları tanı sürece genellikle depolamak ve verileri çözümlemek için Excel ve araçlarını yararlanmak anlamlıdır.Microsoft ActiveX Data Objects (ingilizce), bir veritabanı gibi bir Excel çalışma kitabını kabul olanak sağlar. Bu makalede, aşağıdaki bölümlerde bunu nasıl anlatılmaktadır:
ADO ile Excel'e bağlanmaADO iki OLE birini içeren bir Excel veri dosyasını bağlanabildiği DB sağlayıcıları MDAC yer:
Microsoft Jet OLE DB sağlayıcı nasıl kullanılır?Jet Sağlayıcısı, bir Excel veri kaynağına bağlanmak için yalnızca iki parça bilgisi gerektirir: dosya adı ve Excel dosya sürümü de dahil olmak üzere bir yol.Jet Sağlayıcısı kullanılarak bir bağlantı dizesi Yüklenebilir ISAM bulunamadı. Jet Sağlayıcısı veri bağlantısı özellikleri iletişim kutusunu kullanma Uygulamanızın ADO veri denetimini veya veri ortamı kullanırsanız, gereken bağlantı ayarlarını toplanacak Veri bağlantısı özellikleri iletişim kutusu görüntülenir.
Sütun başlıkları: varsayılan olarak, Excel veri kaynağınızın ilk satırındaki alan adları olarak kullanılabilir bir sütun başlıkları içerdiğini kabul edilir. Değilse, bu ayarı devre dışı bırakmanız gerekir veya ilk satırdaki veriler "alan adı olarak kullanılacak kayboluyor". Bu isteğe bağlı ekleyerek yapılır HDR =Extended Properties bağlantı dizesi için ayarlama. Belirtilmesi gerekmez, varsayılan değer HDR = Yes. Sütun başlıkları yoksa belirtmek zorunda HDR = No; alanlarınız F1, F2, sağlayıcı adlarını vb.. Genişletilmiş Özellikler dize artık birden çok değer içerdiğinden, çift tırnak içinde kendisini çift tırnak (burada fazladan boşluklar için görsel netlik eklenmiş) aşağıdaki örnekte olduğu gibi hazır bilgi değerleri olarak tekliflerinin ilk kümesi'ni işlemek için Visual Basic bildirmek için ek bir çiftinin artı alınmalıdır. ODBC sürücüler için Microsoft OLE DB Provider'ı kullanmaSağlayıcı ODBC sürücülerini (Bu makale "ODBC Provider" için kısaltma başvurduğu) için de bir Excel veri kaynağına bağlanmak için yalnızca iki (2) bilgi parçalarını gerektirir: sürücü adı, çalışma kitabı yolu ve dosya adı.ÖNEMLI: Excel'e bir ODBC bağlantısı varsayılan olarak salt okunur özelliklidir. ADO Recordset, LockType özelliği ayarı bu bağlantıyı düzeyi ayarı geçersiz kılmaz. Verilerinizi düzenlemek istiyorsanız, ReadOnlyyanlış bağlantı dizenizde veya DSN yapılandırmanızı ayarlamanız gerekir. Aksi durumda, aşağıdaki hata iletisini alırsınız: İşlem, güncelleştirilebilir sorgu kullanmalıdır. Uygulamanızın ADO veri denetimini veya veri ortamı kullanırsanız, gereken bağlantı ayarlarını toplanacak Veri bağlantısı özellikleri iletişim kutusu görüntülenir.
Sütun başlıkları: varsayılan olarak, Excel veri kaynağınızın ilk satırındaki alan adları olarak kullanılabilir sütun başlıkları içerdiğini kabul edilir. Değilse, bu ayarı devre dışı bırakmanız gerekir veya ilk satırdaki veriler "alan adı olarak kullanılacak kayboluyor". Bu isteğe bağlı ekleyerek yapılır FirstRowHasNames = bağlantı dizesi olarak ayarlanıyor. Belirtilmesi gerekmez, varsayılan değer FirstRowHasNames = 1; burada 1 = true. Sütun başlıkları yoksa belirtmek zorunda FirstRowHasNames = 0; burada 0 = false; alanları F1, F2 ve benzeri sürücü adları. Bu seçenek DSN yapılandırması iletişim kutusunda kullanılabilir değil. Ancak, ODBC sürücüsü bir hata yüzünden, FirstRowHasNames belirten şu anda ayarlamanın hiçbir etkisi. Diğer bir deyişle, Excel ODBC sürücüsü (MDAC 2.1 ve sonrasıyla) her zaman ilk satırda belirtilen veri kaynağı alan adları olarak değerlendirir. Ek informationon için sütun başlığının hata, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 288343
(http://support.microsoft.com/kb/288343/EN-US/
)
Hata: Excel ODBC sürücüsü FirstRowHasNames veya başlığı ayarı Disregards Taranacak satırlar: ilişkisel bir veritabanında gibi Excel ADO içerdiği ayrıntılı şema bilgileri ile ilgili verileri sağlamaz. Bu nedenle, sürücü her sütunun veri türünü bir educated tahmin yapmak için varolan verileri en az bir kaç satır tarama gerekir. "Satır için tarama" varsayılan değer sekiz (8) satır olur. Bir tamsayı değeri belirttiğiniz bir (1) için on altı (16) satırları, veya (tüm varolan satırları taranacak sıfır 0) belirtebilirsiniz. Bu isteğe bağlı ekleyerek yapılır MaxScanRows = bağlantı dizesi DSN yapılandırması iletişim kutusundaki Rows to Scan ayarını değiştirerek veya ayarlama. Ancak, ODBC sürücüsü bir hata nedeniyle, satırları (MaxScanRows) tarama belirten şu anda ayarlamanın hiçbir etkisi. Diğer bir deyişle, Excel ODBC sürücüsü (MDAC 2.1 ve sonrasıyla) her zaman ilk 8 satırları belirtilen bir veri kaynağındaki her bir sütunun veri türünü belirlemek için tarar. Satırları için basit bir geçici çözüm de dahil olmak üzere, tarama hata 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: 189897
(http://support.microsoft.com/kb/189897/EN-US/
)
XL97: verileri Excel ODBC sürücüsü ile 255 karakter için kesildi. Diğer ayarlar: <a0>Veri bağlantısı özellikleri</a0> iletişim kutusunu kullanarak, bağlantı dizesini oluşturmak, kesinlikle gerekli gibi olmayan bağlantı dizesine eklenen bazı diğer Genişletilmiş Özellikler ayarları görebilirsiniz: Belirli bir MDAC sürümleri ile Visual Basic tasarım ortamında programınızı, tasarım zamanında bir Excel veri kaynağına bağlanır aşağıdaki hata iletisini ilk süresini görebilirsiniz: Işletim sistemi tarafından desteklenen harmanlama sırası seçili. 246167
(http://support.microsoft.com/kb/246167/EN-US/
)
SORUN: Sequence hata açılıyor ADODB Recordset'i ilk kez bir Excel XLS karşı Collating... Hem OLE DB sağlayıcıları için uygulama, dikkat edilmesi gereken noktalarBir dikkat karışık veri türleri hakkındaYukarıda belirtildiği gibi ADO saat veri türü, bir Excel çalışma sayfasını veya aralığını her sütun için tahmin gerekir. (Bu ayarlar biçimlendirme Excel hücre tarafından etkilenmemektedir.) Aynı sütundaki metin değerleri içeren karma sayısal değerler varsa, önemli bir sorun ortaya çıkabilir. Jet ve ODBC Provider hem çoğu, verileri yazın, ancak azınlık veri türü için NULL (boş) değerlere geri dönün. Iki sütundaki eşit karma, sağlayıcı, metnin üzerinde sayısal seçer. Örneğin,:
Salt okunur verileri bu soruna geçici bir çözüm bulmak için <a0></a0>, Ayarlar'ı kullanarak Alma modunu etkinleştir "IMEX = 1" genişletilmiş özellikler bölümünde, bağlantı dizesi. Bu zorlar ımportmixedtypes Text = kayıt defteri ayarı. Ancak, güncelleştirmelerin bu modda beklenmeyen sonuçlar verebilir unutmayın. Bu ayar hakkında ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 194124
(http://support.microsoft.com/kb/194124/EN-US/
)
SORUN: DAO OpenRecordset kullanarak BOş olarak döndürülüyor Excel değerleri Parola korumalı bir çalışma kitabı açık bağlantı, bir kısmı veya tamamı ingilizce olan içeriğe işaret edebilir.Excel çalışma kitabı parola ile korunmuşsa, çalışma kitabı dosyası Microsoft Excel'in uygulamada açık değilse bile doğru parolayı bağlantı ayarlarınızla sağlayarak veri erişimi için açılamıyor. Denerseniz, aşağıdaki hata iletisini alırsınız: Dosyanın şifresi çözülemedi. 211378
(http://support.microsoft.com/kb/211378/EN-US/
)
XL2000: Dosya "Not şifresini dosya" hatası ile parola korumalı. Alma ve Excel verileri ADO ile DüzenleBu bölüm, Excel'in çalışma iki yönü anlatılır veri:
Nasıl yapılır: Veri SeçVerileri seçmek için çeşitli yollar vardır. Şunları yapabilirsiniz:
Excel verilerini Kodu'na sahip seçin.Excel verilerinizi çalışma kitabınız aşağıdakilerden birinde yer alabilecek:
Bir çalışma sayfası, recordsource belirtmek için <a0></a0>, dolar işareti izler ve köşeli ayraçla içinde çalışma sayfasının adını Ek Yardım düğmesini kullanın. Örneğin: Dolar işareti ve köşeli ayraçlar veya dolar işaretini yalnızca hem'yi atlarsanız, aşağıdaki hata iletisini alırsınız: ... Jet veritabanı alt yapısı, belirtilen nesne bulunamadı FROM yan tümcesinde sözdizimi hatası. Sorguda sözdizimi hatası. Tamamlanmamış sorgu yan tümcesi. Bilgisayarınızı recordsource adlandırılmış bir hücre aralığı belirtmek için <a0></a0>, tanımlı bir ad kullanın. Örneğin: Adsız bir hücre aralığı, recordsource belirtmek için <a0></a0>, standart Excel satır/sütun gösterimde sonuna köşeli ayraç içinde sayfa adını ekleyin. Örneğin: Aralıkları belirleme hakkında BIR uyarı: bir çalışma sayfası, recordsource belirttiğiniz zaman alanı sağlar gibi sağlayıcı yeni kayıtlar varolan kayıtların altındaki çalışma ekler. Bir aralık belirttiğiniz (adlandırılmış veya adlandırılmamış) alanı verdiğinden Jet de yeni kayıtlar varolan kayıtların aşağıdaki aralıktaki ekler. Ancak, sonuç kayıt kümesini ve özgün aralığındaki yeniden sorgulamak, izin verilen aralığın dışında yeni eklenen kayıtları içermez. 2.5, Önceki MDAC sürümlerinde adlandırılmış bir aralık belirttiğinizde, yeni bir kayıt aralığı tanımlanmış sınırları ötesine eklenemiyor veya aşağıdaki hata iletisini alırsınız: Adlandırılmış aralık genişletilemiyor. ADO veri denetiminin ile Excel verileri seçin.ADODC Özellikler iletişim kutusunun Genel sekmesindeki Excel'in veri kaynağınız için bağlantı ayarlarını belirttikten sonra RecordSource sekmesinde Değiştir'i tıklatın. Bir adCmdText, CommandType seçerseniz, daha önce açıklanan sözdizimi ile bir SELECT sorgusu Komut metin iletişim kutusuna girebilirsiniz. Bir adCmdTable, CommandType seçin ve Jet Sağlayıcısı'nı kullanıyorsanız, bu a?a?? aç?lan listesinden Adlandırılmış aralıkları ve seçilen çalışma kitabında Adlandırılmış aralıkları ile ilk sırada kullanılabilir çalışma sayfası adlarını görüntüler.Bu iletişim kutusunun doğru çalışma sayfası adlarını dolar işareti ekler, ancak gerekli köşeli ayraç eklemez. Yalnızca bir çalışma sayfası adı seçin ve Tamam ' ı tıklatın, sonuç olarak, aşağıdaki hata iletisini daha sonra alırsınız: FROM yan tümcesinde sözdizimi hatası. Veri ortamı komutlar ile Excel verileri seçin.Veri ortamı bağlantısı için Excel ayarlama sonra veri kaynağı, yeni bir Command nesnesi oluştur. SQL deyimi, bir Veri kaynağı'nı seçerseniz, sorgu daha önce açıklanan sözdizimini kullanarak bir metin kutusuna girebilirsiniz. Veritabanı nesnesi, Tablo seçin ilk a?a?? aç?lan listesinden bir Veri kaynağı seçin ve Jet Sağlayıcısı'nı kullanıyorsanız, a?a?? aç?lan listesinden ilk sırada Adlandırılmış aralıkları ile adlandırılmış aralıkları hem de seçili çalışma kitabında kullanılan çalışma sayfası adlarını görüntüler. (Bu konumda bir çalışma sayfası adı'nı seçerseniz, ADO veri denetiminin için olduğu gibi köşeli parantezler içinde çalışma sayfasının adını el ile eklemeniz gerekmez.) ODBC sağlayıcı kullanıyorsanız, bu aşağı açılan listesinde yalnızca adlandırılmış aralıkları bakın. Ancak, bir çalışma sayfası adı el ile girebilirsiniz.Değiştir Excel'in verileri nasıl: Düzen Ekle ve SilDüzenlemeExcel verilerini, normal ADO yöntemleriyle düzenleyebilirsiniz. Excel çalışma sayfası içeren Excel formüllerini ("=" ile başlayan) bir hücreye karşılık gelen bir Recordset alanlar salt okunurdur ve düzenlenemez. Bağlantı ayarlarınızı aksini belirtmediğiniz sürece Excel bir ODBC bağlantısı varsayılan olarak salt okunur olduğunu unutmayın. Daha önce bkz: altındaki "Microsoft OLE DB sağlayıcı ODBC sürücüleri için kullanılıyor." Ekleme Alan verdiğinden, kayıtları için Excel recordsource ekleyebilirsiniz. Ancak, özgün olarak belirttiğiniz aralık dışında yeni kayıtlar eklerseniz, bu kayıtlar özgün aralığı belirtimine yeniden sorgulamak için görünür değil. "Aralık belirleme hakkında BIR uyarı." altında daha önce bkz: Bir Excel tabloya yeni veri satırları eklemek için ADO Recordset nesnesinin AddNew ve Update yöntemleri kullandığınızda, bazı durumlarda, Excel yanlış sütunlara veri değerlerini ADO ekleyebilirsiniz. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 314763
(http://support.microsoft.com/kb/314763/EN-US/
)
Düzeltme: Excel'de, hatalı sütunlar halinde ADO veri ekler SilmeExcel verilerini farklı veri ilişkisel veri kaynağından silme fazla kısıtlanır. Ilişkisel bir veritabanında hiçbir anlamı veya bulunması dışında "kayıt", "satır" vardır; bir Excel çalışma sayfasında, bu doğru değildir. (Hücre) alanlarındaki değerleri silebilirsiniz. Ancak, yapamazsınız:
Veri kaynağı yapısı (meta veriler), Excel'den alma(Tablolar ve alanlar) Excel'in veri kaynağının yapısı ile ilgili verileri ADO ile geri alabilirsiniz. Her ikisi de aynı küçük yararlı bilgi alanları sayısı en az dönmek için ancak sonuçlar aşağıdaki iki OLE DB sağlayıcı arasında biraz farklı olur. Bu meta verileri bir ADO Recordset nesnesini döndüren ADO bağlantı nesnesi, OpenSchema yöntemi ile alınabilir. Bu amaç için daha güçlü Microsoft ActiveX Veri Nesneleri Uzantıları kitaplığı veri tanımlama dili ve güvenlik (ADOX) için de kullanabilirsiniz. Bir Excel veri kaynağını olması durumunda, ancak burada "Tablo" çalışma sayfası veya adlandırılmış aralık ve "field" genel veri türleri, sınırlı sayıda biridir bu ek güç kullanışlı değildir.Sorgu tablosu bilgileriIlişkisel bir veritabanında kullanılabilen çeşitli nesnelerinin (tablolar, görünümler, saklı yordamlar vb.), çalışma sayfalarını ve belirtilen çalışma kitabında tanımlı bir adlandırılmış aralıkları oluşan yalnızca tablo eşdeğerleri, bir Excel veri kaynağını gösterir. Adlandırılmış aralıkları "Tablolar" kabul edilir ve çalışma sayfalarındaki "Sistem tabloları" kabul edilir ve bu "table_type" özelliği alabilirsiniz çok yararlı bir tabloda bilgi yok. Bir çalışma kitabında aşağıdaki kodu içeren kullanılabilir tabloların listesini isteyin:
ODBC Provider, ayrıca, yalnızca doldurur (9) dokuz alanları ile bir recordset döndürür üç (3):
Sorgu alanı bilgileriExcel veri kaynağındaki her alan (sütun), aşağıdaki veri türlerini biridir:
Tablolar ve <a2>alanlar</a2> ve <a4>kendi özellikleri numaralandırılamıyor.Tablo ve sütunlarda, bir Excel veri kaynağını ve her hakkındaki bilgilerin kullanılabilir alanları numaralandırılamadı, Visual Basic kodu (örneğin, aşağıdaki örnek) kullanılabilir. Bu örnek, aynı form üzerindeki bir liste kutusu, List1, sonuçları verir.Veri görünümü pencereyi kullanın.Veri Görünümü penceresi, Visual Basic için veri görünümü) penceresinde, bir Excel veri kaynağına veri bağlantısı oluşturursanız, programlı olarak daha önce açıklandığı gibi almak aynı bilgileri görüntüler. Özellikle, her iki çalışma Jet Sağlayıcısı listeler ve adlandırılan aralıkları'nın altında "Tablolar", burada ODBC Provider gösterir yalnızca adlandırılmış aralıkları unutmayın. ODBC sağlayıcı kullanıyorsanız ve adlandırılmış bir aralık tanımladığınız, "Tablolar" listesi boş olacaktır.Excel'in sınırlamalarıExcel veri kaynağı olarak kullanımını, Excel çalışma kitapları ve çalışma sayfaları'nın iç kısıtlamaları tarafından bağlıdır. Bu dahil ancak bunlarla sınırlı değildir:
ReferanslarADO.NET, Visual Basic .NET ile Excel çalışma kitabındaki kayıtları almak ve kullanma 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: 316934
(http://support.microsoft.com/kb/316934/EN-US/
)
ADO.NET almak için kullanılır ve bir Excel çalışma kitabı Visual Basic .NET ile kayıtlarında Değiştir Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın: 295646
(http://support.microsoft.com/kb/295646/EN-US/
)
Nasıl yapılır: veri, ADO veri kaynağı ADO ile Excel'e aktarma 246335
(http://support.microsoft.com/kb/246335/EN-US/
)
Nasıl yapılır: veri, ADO Recordset'ten Otomasyon ile Excel'e aktarma 247412
(http://support.microsoft.com/kb/247412/EN-US/
)
BILGI: verilerini Visual Basic'den Excel'e aktarma yöntemleri 278973
(http://support.microsoft.com/kb/278973/EN-US/
)
Örnek: ExcelADO nasıl okuma ve verileri Excel çalışma kitapları yazma için ADO kullanılacağını gösterir. 318373
(http://support.microsoft.com/kb/318373/EN-US/
)
Visual Basic. NET'te GetOleDbSchemaTable yöntemini kullanarak nasıl alma meta veriler Excel'deki Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖ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:257819
(http://support.microsoft.com/kb/257819/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste