09/05/2015, 00:44
Vbnet access bağlantısı, ekleme, güncelleme, silme vs.
07/02/2016, 15:28
salotuna2
(27/02/2011, 22:34)ercansahin yazdı: Vb.net ile programlama kapsamında Access vt.bağlantı, veri giriş, güncelleme, silme, ComboBox, DataGridView ile veri gösterme vb. işlemler ile ilgili çalışmaları barındıran bir örnek olup, başlangıç için mutlaka incelenmesi gerektiğini düşünüyorum. Projeyi hazırlarken elimden geldiğince hangi kodun ne işe yaradığına dair notları elimden geldiğince yazmaya çalıştım.
Başlangıç için projenizin içerisinde yer alan bin/debug klasörü içerisine kayıt.mdb dosyamızı yerleştirerek işleme başlıyoruz. Bu mdb dosyamızda oluşturacağımız tabloya Kayitler ismini verelim. Tablo içerisine ise;
TckimlikNo
AdiSoyadi
BabaAdi
Ogrencino
DogumYeri
Dogumtarihi
Aciklama
Alanlarını oluşturuyoruz. Şimdilik Tüm alanların Metin özellikli olmasına dikkat edelim.
Bunun akabinde projemizde oluşturacağımız Form1 üzerine resimde yer alan nesneleri yerleştiriyoruz.
Projemizde yer alacak kodların çalışması için kod editörümüzün en üstünesatırını yazıyoruz.Imports System.Data.OleDb
Sonraki adımda, DataGridView nesnemize tablomuzdaki verileri listelemek maksadıyla,kodunu yazıyoruz.'DataGridView nesnesine verileri aktar
Private Sub Listele(ByVal Sql As String)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'") 'Veritabanımızın yerini belirtiyoruz.
Dim veriler As New DataTable("Kayitlar")
Dim adapter As New OleDbDataAdapter(SQL, baglanti)
adapter.Fill(veriler) 'buradaki veriler oluşturduğumuz sanal tablo.
DataGridView1.DataSource = veriler 'veri tabanından gelen kayıtları DataGridView'e aktarıyoruz .
End Sub
Aynı şekilde ComboBox’a verilemizin aktarılması için;yazıyoruz.Private Sub doldur()
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
baglanti.Open()
Dim komut As New OleDb.OleDbCommand("SELECT AdiSoyadi FROM Kayitlar ORDER BY AdiSoyadi", baglanti)
Dim oku As OleDb.OleDbDataReader
oku = komut.ExecuteReader()
While oku.Read()
ComboBox1.Items.Add(oku("AdiSoyadi"))
End While
baglanti.Close()
End Sub
İşlemlerin devamı için Form1’in Load olayına;yazıyoruz.Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Listele("SELECT * FROM Kayitlar'")
doldur()
End Sub
Çalışmamız esnasında form üzerindeki TextBox’ların temizlenmesi için tekrar takrar yazmamak için;kodunu yazıyoruz.'formumuzun üzerindeki nesneleri temizle
Private Sub Temizle()
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
End Sub
Şimdi sıra geldi, form üzerinde yer alan TextBox’lara yazdığımız verilerin tablomuza kaydedilmesine, bunun için;yazıyoruz.'KAYDET
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.TextBox1.Text = "" Then
MsgBox("Lütfen TCKimlikNo Alanını Doldurunuz. Bu Alan Boş Bırakılamaz.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")
Else
Dim Sql As New String("INSERT INTO Kayitlar (TckimlikNo,AdiSoyadi,BabaAdi,Ogrencino,DogumYeri,Dogumtarihi,Aciklama) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}')")
Sql = String.Format(sql, TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Yandaki Girdiğiniz Veriler Veri Tabanına Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Tebrikler")
End If
Listele("SELECT * FROM Kayitlar'")
baglanti.Close()
Temizle()
End If
Me.ComboBox1.Text = ""
End Sub
Tablomuzda yer alan verilerin düzenlenmesi maksadıyla;kodumuzu yazıyoruz.'DEĞİŞİKLİKLERİ KAYDET.
'Burada DataGrid içerisinden seçtiğimiz kaydı düzenleyerek kaydetmemize yarayan kodlar vardır.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Me.TextBox1.Text = "" Then
MsgBox("Lütfen Kayıt Seçiniz.", MsgBoxStyle.Exclamation, "DİKKAT")
Else
Dim Sql As New String("UPDATE Kayitlar SET TckimlikNo='{0}',AdiSoyadi='{1}',BabaAdi='{2}',Ogrencino='{3}',DogumYeri='{4}',Dogumtarihi='{5}',Aciklama='{6}' WHERE TckimlikNo='{7}' ")
Sql = String.Format(sql, TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text, DataGridView1.CurrentRow.Cells(0).Value)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Değiştirmiş Olduğunuz Veriler Doğrultusunda Kayıtlar Güncellenmiştir.", MsgBoxStyle.Exclamation, "Değişiklik Uyarısı")
End If
Listele("SELECT * FROM Kayitlar'")
baglanti.Close()
Temizle()
End If
Me.ComboBox1.Text = ""
End Sub
Silme işlemlerinin yapılabilmesi maksadıyla;kodunu yazıyoruz.'Sil Butonu
'DataGrid üzerinden seçilen kaydı silmemize yarar.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If Me.TextBox1.Text = "" Then
MsgBox("Lütfen Öncelikle Kayıt Seçiniz.", MsgBoxStyle.Exclamation, "DİKKAT")
Else
Dim Sql As New String("DELETE FROM Kayitlar WHERE TckimlikNo='{0}' ")
Sql = String.Format(sql, DataGridView1.CurrentRow.Cells(0).Value)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Listeden Seçmiş Olduğunuz Veriler Silinmiştir.", MsgBoxStyle.Exclamation, "Silme İşlemi")
End If
Listele("SELECT * FROM Kayitlar'")
baglanti.Close()
Temizle()
End If
End Sub
DataGridView içerisinde yer alan verilerden hangisi üzerinde işlem yapacağımızı belirlemek maksadıyla;kodunu yazmamız gerekmektedir.'DataGrid tıklandığında ilgili kaydın Metin Kutularına aktarılması.
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
TextBox1.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(0).Value), "", DataGridView1.CurrentRow.Cells(0).Value) 'İlgili alan boş ise TextBox'a boş olarak ataması.
TextBox2.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(1).Value), "", DataGridView1.CurrentRow.Cells(1).Value)
TextBox3.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(2).Value), "", DataGridView1.CurrentRow.Cells(2).Value)
TextBox4.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(3).Value), "", DataGridView1.CurrentRow.Cells(3).Value)
TextBox5.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(4).Value), "", DataGridView1.CurrentRow.Cells(4).Value)
TextBox6.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(5).Value), "", DataGridView1.CurrentRow.Cells(5).Value)
TextBox7.Text = IIf(IsDBNull(DataGridView1.CurrentRow.Cells(6).Value), "", DataGridView1.CurrentRow.Cells(6).Value)
End Sub
Daha önce yazdığımız Temizle() kodunu işlerlik kazandırmak maksadıyla;yazmamız yeterli olacaktır.Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Temizle()
End Sub
Sıra geldi ComboBox’tan kayıt seçildiğinde DataGridView içerisinden seçim yapmaya;yazmalıyız.Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
If Me.ComboBox1.Text > "" Then
Dim Sql As New String("SELECT * FROM Kayitlar WHERE Kayitlar.AdiSoyadi='{0}'")
Sql = String.Format(sql, ComboBox1.SelectedItem)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Hatayı Kontrol Ediniz.", MsgBoxStyle.Exclamation, "Silme İşlemi")
End If
Listele(sql)
baglanti.Close()
Else
Dim Sql As New String("SELECT * FROM Kayitlar '")
Sql = String.Format(sql, ComboBox1.SelectedItem)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
Dim sonuc As Integer
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery()
If sonuc = 1 Then
MsgBox("Hatayı Kontrol Ediniz.", MsgBoxStyle.Exclamation, "Silme İşlemi")
End If
Listele(sql)
baglanti.Close()
End If
End Sub
ComboBox ile seçtiğimiz verinin işlem sonrasında temizlenmesi ve DataGridView içerisinde tüm kayıtların gösterilmesini sağlamak için ise;kodunu yazıyoruz.Private Sub Button6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Me.ComboBox1.Text = ""
End Sub
Son olarak Formumuzu kapatmak için;kodumuzu yazarak işlemleri tamamlıyoruz.Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Close()
End Sub
Bu işlemlerden sonra projemizi çalıştırarak işlerliğini test edebiliriz.
Örnek ile birlikte incelendiğinde umarım faydalı olur.
Off yoruldum..hocam dosyayı indirmek için tıklıyorum fakat giriş yap kısmı çıkıyor
07/02/2016, 15:59
alpeki99
Dosyayı indirebildim sorun yok. Anlık bir sorun çıkmış olabilir lütfen tekrar deneyin.
07/02/2016, 16:01
salotuna2
07/02/2016, 16:08
alpeki99
Birinci mesajın sonuna link olarak ekledim.
07/02/2016, 16:10