XLS belgesini JET OLE DB ile actığımızda sayfalar tablo olarak hizmetimize sunulmaktadır. Sadece sayfa adının sonuna $ (dolar) simgesi gelmektedir. Excel Belgesini actıktan sonra bu sefer işimize gerekli olacak verinin hangi tabloda olduğunu ya programı kullanan kişiye ya da kendimize sectirmeliyiz. Aksi taktirde kafadan Sayfa1 tablosunu acarsak işimize yaracak veri orada olmayabilir. Daha da kotusu var ki belge Turkce değil de İngilizce olabilir o zaman tablo isimleri Sheet1 Sheet2 şeklinde gelecektir. O halde biz sayfa numarasını biliyor olsak da o sayfayı kullanmadan once ufak bir onay mekanizması icin ekrana bir listede sayfa (tablo) isimlerini getirsek pek de fena olmaz gibi duruyor. Ornek kodu aşşağıda bulabilirsiniz.

Kod:
Dim db As Object Dim rs As Object Set db = CreateObject("adodb.connection") 'Excel Dosyasının Tam Yolu Dim dosya_yolu As String dosya_yolu = "c:\erolmercan.xls" ' Sheet / Sayfa Adı Dim excel_tablo As String ' Size sayfa1'in butn sutunlarını ve satırlarını gonderir excel_tablo = "Sayfa1$" ' Bu da belirli bir alanı size dondurur excel_tablo2 = "Sayfa1$A1:B2" ' Excel Dosyası Acmak icin gerekli ConnectionString Dim dbconn As String dbconn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & dosya_yolu & ";" & _ "Extended Properties=""Excel 8.0;HDR=NO;""" db.open dbconn ' Tablo Listesi icin gerekli tanımlamalar Dim tblList as object Set tblList = createobject("ADODB.Recordset") ' Tablo Listesini acalım Set tblList = db.OpenSchema(20) 'Excel icinde bulunan tabloları yani sayfaları listeleyelim Do While Not tblList.EOF ' Tablo / Sayfa olan nesneleri ayıkla If tblList.Fields(3) = "TABLE" Then ' Tablo / Sayfa Isimler Msgbox tblList.Fields(2) End If tblList.MoveNext Loop ' Hafızadan komple silelim. Set rs = Nothing Set db = Nothing

__________________