İlk mesajımda access'te hazırladığımız bir parametreli SELECT sorgusunu
Vba içinde recordsete nasıl alabileceğimiz konusunda örnek vermiştim.
Şimdi ise access'te hazırladığımız parametreli INSERT, UPDATE veya DELETE sorgularını
Vba içinden nasıl çalıştırabileceğimizi buldum ve paylaşmak istedim (forumda daha önce paylaşıldıysa bu mesajım silinebilir).
Bu şekilde yapılırsa, sorguların ileride daha kolay incelenip düzenlenebilme ihtimali var. İhtimal diyorum çünkü biliyorsunuz access'te hazırlanan sorguların okunabilirliği sıkıntılı oluyor. Uzun ve karmaşık bir sorguysa içinden çıkmak çok zor olabiliyor.
sonuçta yeni bir yöntem öğrenmenin zararı yok, kim hangi yöntemi isterse onu kullanır
Ben örneği INSERT sorgusuyla hazırladım ama tabii ki UPDATE ve DELETE sorguları da aynı şekilde çalıştırılabiliyor. Kodumuz şöyle:
Kod:
Private Sub btnKayitEkle_Click()
Dim EtkilenenKayitSayisi As Integer
On Error GoTo hata
With CurrentDb.QueryDefs("InsertBilgiBankasiKayitEklemeSorgusu")
.Parameters("ParamSicil") = Me.txtSicil
.Parameters("ParamAdi") = Me.txtAdi
.Parameters("ParamSoyadi") = Me.txtSoyadi
.Parameters("ParamDogumTarihi") = Format(Me.txtDogumTarihi, "mm/dd/yyyy")
.Parameters("ParamDogumYeri") = Me.txtDogumYeri
.Execute
EtkilenenKayitSayisi = .RecordsAffected
End With
MsgBox EtkilenenKayitSayisi & " adet kayıt Bilgi Bankası tablosuna eklendi.", vbInformation, "İşlem Tamam"
Exit Sub
hata:
MsgBox "HATA OLUŞTU-" & Err.Number & "-" & Err.Description, vbCritical, "Hata"
End Sub
Burada
RecordsAffected deyimi etkilenen kayıt sayısını döndürüyor. Yani bir UPDATE sorgusunda kaç kayıt güncellendi, DELETE sorgusunda kaç kayıt silindi, INSERT sorgusunda kaç kayıt eklendi ise, ayrıca hesap yapmadan otomatik olarak buradan alabiliyoruz sayıyı.
Saygılarımla...
VBAParametreliSorguOrnekAccess2010.rar
(Dosya Boyutu: 25,46 KB | İndirme Sayısı: 43)