19-03-2008, 13:49
(En son düzenleme: 19-03-2008, 13:49 Zeki Gürsoy.)
Küçük bir Türkçe ADO örneği..
Hem Class modul hem de ADO i anlamak açısından fikir verebilir.
Module1:
Class Module : "KapaliBaglanti.cls"
Hem Class modul hem de ADO i anlamak açısından fikir verebilir.
Module1:
Kod:
Private AD_TR As ADO_TR.KapaliBaglanti
Sub Test()
Dim X As Object
Set AD_TR = New ADO_TR.KapaliBaglanti
With AD_TR
.Ac MSJetOLEDB_4_0, "c:\aaa.mdb"
Set X = .KayitSet("select * from [tablo1]", TR_Dinamik, TR_Serbest)
[a1].CopyFromRecordset X
.Kapat_KayitSet
.Kapat_Baglanti
End With
Set AD_TR = Nothing
End SubClass Module : "KapaliBaglanti.cls"
Kod:
Public Enum Saglayici
ExcelODBC = 0
AccessODBC = 1
MSJetOLEDB_4_0 = 2
End Enum
Public Enum Mantiksal
Acik = 1
Kapali = 0
End Enum
Public Enum Cursor_Tip
TR_Ileri = 0
TR_KilitCur = 1
TR_Dinamik = 2
TR_Sabit = 3
End Enum
Public Enum Kilit_Tip
TR_Saltokunur = 0
TR_Kilit = 2
TR_Serbest = 3
TR_Toplu = 4
End Enum
Private TR_ADO_Cn As Object
Private TR_ADO_Rs As Object
Public Function Baglanti_Durumu() As Mantiksal
Baglanti_Durumu = Kapali
If TR_ADO_Cn.State Then Baglanti_Durumu = Acik
End Function
Public Function Ac(Arac As Saglayici, _
Veritabani As String, _
Optional KullaniciAdi As String = "Admin", _
Optional Sifre As String = Empty, _
Optional Erisim_Ozelligi As String = Empty)
Select Case Arac
Case 0
TR_ADO_Cn.Open _
"DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & Veritabani
Case 1
TR_ADO_Cn.Open _
"Driver={Microsoft Access Driver (*.mdb)};Dbq=" & _
Veritabani & ";Uid=" & KullaniciAdi & ";Pwd=" & Sifre
Case 2
TR_ADO_Cn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Veritabani & _
";User Id=" & KullaniciAdi & ";Password=" & Sifre
End Select
End Function
Public Function KayitSet(SQL As String, _
Optional Cursor_Tipi As Cursor_Tip = 0, _
Optional Kilit_Tipi As Kilit_Tip = 1)
TR_ADO_Rs.Open SQL, TR_ADO_Cn, Cursor_Tipi, Kilit_Tipi
Set KayitSet = TR_ADO_Rs
End Function
Public Sub Kapat_KayitSet()
TR_ADO_Rs.Close
End Sub
Public Function Kapat_Baglanti()
On Error Resume Next
TR_ADO_Rs.Close
On Error GoTo 0
TR_ADO_Cn.Close
Baglanti_Durumu
End Function
Private Sub Class_Initialize()
Class_Terminate
Set TR_ADO_Cn = CreateObject("ADODB.Connection")
Set TR_ADO_Rs = CreateObject("ADODB.Recordset")
End Sub
Private Sub Class_Terminate()
On Error Resume Next
Set TR_ADO_Cn = Nothing
Set TR_ADO_Cn = Nothing
End Sub
