Visualbasic 6.0 Access ve SQL Dersleri

bykzlu-x

Üye
9 Ocak 2008
190
5
Visualbasic ile Access Arasında Baglantı Oluşturma

Visualbasic ile Access arasında 3 türlü baglantı oluşturabilinir. Bunlar;

  1. [*]ADO ADODC yöntemi ile
    [*]ODBC yöntemi ile
    [*]ADODB yöntemi ile

  1. [*]Adodc ile access arasında baglantı kurmak ;
Visualbasicte Araç Penceresine ADODC nesnesini yerleştirmek için Toolsa sag Tuşlayıp Componentsi seçebilir
Veya Tools Üzerinde CTRL+T tuşlayarak Component penceresi açılır.
Ve Çıkan listeden Microsoft ADO Data Control 6.0 Nesnesi seçilir.

Nesneyi Formumuza yerleştirdikten sonra Adodca sag tuşlanır ve ADODC Propertiesten Baglantı Use Connection

Radyo butonu secili haldeyken Build butonuna basarak Baglantımızı nasıl yapacagımız seçeriz.
Biz bu örnekte Microsoft Jet 4.0 OLE DB Provideri seçiyoruz.Ve Next Tuşlayarak Access Dosyamız nerede ise
Select or enter a Database name : adlı sahada dügmeye basarak Acces dosyamızı gösteriyoruz. Test Connection dügmesine bastıgımızda baglantı saglandı demelidir. OK dügmesine basarak ACCESS dosyamızı secmiş olduk.Şimdi basitce RecordSource Sekmesinden Command Source bölümünde
Table adlı alanı seciyoruz ve bir alt satırda Table or Stored Procedure Name hangi tablo ile calışacaksa o tabloyu
seciyoruz.
Örnek : Seçtigimiz Access Dosyası Adı Veritabanı.mdb seçtigimiz Tablo adı ise Kayitlar adlı tablodur.

Şimdi Bu kayıtlarımızı biz MSHFLEXGridde gösterelim.
Yine Component Toolsa Gelerek CTRL+T yapalım ve Listeden Microsoft Hierarchical FlexGrid 6.0 adlı componenti
Ekliyoruz.Ve Sonra Ekrana bu flexi yerleştiriyoruz.

Flexin F4 Properties Özelliklerinde Datasource bölümünde ADODC nesnesini gösteriyoruz.
Çalıştır dedigimiz an Ooo süper ekrana geldi tüm kayıtlar…

Yo Hayır kontrol benim elimin altında olsun ben select yöntemi kullanarak yapmak istiyorum derseniz.
Adodc1 Propertiesinde Tablo olarak sectigimiz Recordsource bolumunu AdCmdUNKOWN olarak
bıraktıktan sonra

Adodc1.RecordSource = "select * from kayitlar"
Set MSHFlexGrid1.DataSource = Adodc1
Adodc1.Refresh


Örnegin belirli bir tarih aralıgı verip Flexte gösterelim

Adodc1.RecordSource = "select * from kayitlar where Tarih >='" & Trim(Text1.Text) & "'" and Tarih<='" & Trim(Text2.Text) & "'""
Set MSHFlexGrid1.DataSource = Adodc1
Adodc1.Refresh


Kayıt Ekleme

Yukarıda anlattıklarımla Kayıtlarımıza ulaşmak icin 2 türlü yöntem secebiliyoruz,
Eger baglantımızı kendimiz yöneterek Adodc1.RecordSource = "select * from kayitlar" ile yaparsak
Kayıt ekleme kodları aşagıdaki gibi olur

Adodc1.Recordset.Addnew
Adodc1.Recordset!Adi=Text1.text
Adodc1.Recordset!Soyadi=Text2.text
Adodc1.Recordset!Yasi=Text3.text
Adodc1.Recordset:Update

Buraya kadar kayıtlarımızı iceriye kaydettigimizi belirtiyoruz,
Hem kaydetsin hemde flex üzerinde hızlıca gösterelim derseniz


Adodc1.Recordset.Addnew
Adodc1.Recordset!Adi=Text1.text
Adodc1.Recordset!Soyadi=Text2.text
Adodc1.Recordset!Yasi=Text3.text
Adodc1.Recordset:Update
‘Bu Satırlarıda update cumlesinden sonar koydugumuzda otomatikmen kayıtlarımızı görecegiz.
Adodc1.RecordSource = "select * from kayitlar “
Set MSHFlexGrid1.DataSource = Adodc1
Adodc1.Refresh


Kayıtları Seçerek Textlere Aktarmak

Dim SQL As String
If Trim(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)) <> "" Then
Adodc1.RecordSource " SELECT * from Kayitlar Where ID = " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) ""
Text1.Text = adodc1.recordset!adi
Text2.Text = adodc1.recordset!soyadi
Text3.text=adodc1.recordset!yasi
Else
MsgBox "Başka Kayıt Bulunamadı", vbCritical, "Technology"
End If




Öncelikle şunu belirteyim arkadaşlar.Veritabanımızdaki Tablolarda herne olursa olsun mutlaka ama mutlaka her kaydın bir ID si olmalıdır,öylede yapın derim.Cok işinize yarayacaktır ID koymak.
Örnegin yukarıdaki tabloda Flex üzerinde isime gore degilde ID gore arama gerceklestirdim.E cunku aynı isimden birden fazla olabilir dimi ? E ama ID ise 1 tanedir. Yukarıdaki Kodu anlatmaya gelirsekte
Where Cümlesinde ID yi arıyorum,evet nerde arıyorum Flexin 4.Kolonunda arıyorum. Ben clickledigim an o ID yi tespit ediyor ve ekrana sadece o ID ye ait bilgileri textlere yazmaktadır.

Update Etme İşlemi


Kayıtlarımızı Ekrana taşıma işlemini bir önceki makaleden hatırlayalım

Kayıtları Seçerek Textlere Aktarmak

Dim SQL As String
If Trim(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)) <> "" Then
Adodc1.RecordSource " SELECT * from Kayitlar Where ID = " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) ""
Text1.Text = adodc1.recordset!adi
Text2.Text = adodc1.recordset!soyadi
Text3.text=adodc1.recordset!yasi
Else
MsgBox "Başka Kayıt Bulunamadı", vbCritical, "Technology"
End If



Şimdi ise bu kayıtları Update etme işlemini yapalım.

Adodc1.RecordSource " SELECT * from Kayitlar"
adodc1.recordset!adi = Text1.Text
adodc1.recordset!soyadi = Text2.Text
adodc1.recordset!yasi= Text3.Text
adodc1.update
MsgBox " Düzeltildi", vbInformation
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus

Silme İşlemi

On Error Resume Next
If Trim(Mshflexgrid1.TextMatrix(Mshflexgrid1.Row, 1)) <> "" Then
If MsgBox("Bu Kaydı Silmek İstiyormusunuz ? Tekrar Geri Dönüşüm Olmayacaktır !", 292, "Technology") = vbYes Then
Adodc1.RecordSource " delete * from Kayitlar Where ID = " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4) ""
MsgBox "Kayıt Silinmiştir", vbCritical
End If
End If




Burada yapılan işlem Flexgrid üzerinde bilgiyi sectik..Bilgiyi sectik ama Neye göre sectik ID sine gore sectik.. ve Sectigimiz ID deki kaydı iptal etmesini istedik.

Eger burada belirli bir yaş aralıgındakileri silmek isteseydik oda şu şekilde olacaktı.


On Error Resume Next
If MsgBox("Bu Kaydı Silmek İstiyormusunuz ? Tekrar Geri Dönüşüm Olmayacaktır !", 292, "Technology") = vbYes Then
Adodc1.RecordSource " delete * from Kayitlar Where yas= '" & Text4.Text & "'"
MsgBox "Kayıt Silinmiştir", vbCritical
End If


Burada yaptıgımız Text4 alanına hangi yaşı yazdıysak kayıtlarda o yaşa uygun kac kişi varsa onlari siler.

Eger belirli bir aralıktaki yaşları sileceksek ?


On Error Resume Next
If MsgBox("Bu Kaydı Silmek İstiyormusunuz ? Tekrar Geri Dönüşüm Olmayacaktır !", 292, "Technology") = vbYes Then
Adodc1.RecordSource " delete * from Kayitlar Where yas=> '" & Text4.Text & " and yas<= '" & Text5.Text & "'"
MsgBox "Kayıt Silinmiştir", vbCritical
End If


4 ve 5. textlere hangi yaşları yazdı isek o yaşları silecektir işlemimiz.

Alıntıdır.
Selametle
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.