Aşağıdaki yordamlarla, kapalı bir çalışma kitabından bir kayıt kümesi almak ve verileri okumak/yazmak için ADO'yu kullanabilirsiniz.
Prosedürü şöyle çağırın:
GetWorksheetData "C:FoldernameFilename.xls", "SELECT * FROM [SheetName$];", ThisWorkbook.Worksheets(1).Range("A3")
SheetName'i veri almak istediğiniz çalışma sayfası adıyla değiştirin.
Sub GetWorksheetData(strSourceFile As String, strSQL As String, TargetCell As Range)
Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer, r As Long
TargetCell Hiçbir Şey Değilse, Sub'dan Çıkın
Set cn = Yeni ADODB.Connection
Hatada Devam Et Sonraki
cn.Open "SÜRÜCÜ={Microsoft Excel Sürücüsü (*.xls)};DriverId=790;ReadOnly=True;" & _
"DBQ=" & strSourceFile & ";"
' Sürücü Kimliği=790: Excel 97/2000
' Sürücü Kimliği=22: Excel 5/95
' Sürücü Kimliği=278: Excel 4
' Sürücü Kimliği=534: Excel 3
Hatada GoTo 0
Eğer cn Hiçbir Şey Değilse
MsgBox "Dosya bulunamadı!", vbExclamation, ThisWorkbook.Name
Alt Çıkış
Bitir
' bir kayıt seti aç
Set rs = Yeni ADODB.Recordset
Hatada Devam Et Sonraki
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
' rs.Open "SELECT * FROM [SheetName$]", _
cn, adOpenForwardOnly, adLockReadOnly, adCmdText
' rs."SEÇ * [SayfaAdı$]'DEN" açın, _
cn, adOpenStatic, adLockOptimistic, adCmdText
' rs.Open "SEÇ * [SayfaAdı$] NEREDEN [Alan Adı] 'A%' GİBİ", _
cn, adOpenStatic, adLockOptimistic, adCmdText
' rs.Open "SEÇ * [SayfaAdı$] YERİNDEN [Alan Adı] 'A%' GİBİ [Alan Adı] TARAFINDAN SİPARİŞ", _
cn, adOpenStatic, adLockOptimistic, adCmdText
' bir kayıt kümesi almanın isteğe bağlı yolları
' Set rs = cn.Execute("[A1:Z1000]") ' ilk çalışma sayfası
' Set rs = cn.Execute("[DefinedRangeName]") ' herhangi bir çalışma sayfası
Hatada GoTo 0
Eğer rs Hiçbir Şey Değilse
MsgBox "Dosya açılamıyor!", vbExclamation, ThisWorkbook.Name
cn.Kapat
cn = Hiçbir şey olarak ayarla
Alt Çıkış
Bitir
RS2WS rs, TargetCell
Excel 2000 veya sonrası için ' TargetCell.CopyFromRecordset rs ' isteğe bağlı yaklaşım
rs.State = adStateOpen ise
rs.Kapat
Bitir
rs = Hiçbir şey ayarla
cn.Kapat
cn = Hiçbir şey olarak ayarla
Alt Bitiş
Makro örneği, VBA projenizin ADO nesne kitaplığına bir başvuru eklediğini varsayar.
Bunu, Araçlar, Referanslar menüsünü seçip Microsoft'u seçerek VBE içinden yapabilirsiniz.
ActiveX Veri Nesneleri x.x Nesne Kitaplığı.