Parametreli sorguyu VBA içinden çalıştırmak
Tarih
20/11/2011 16:10
Konu Sahibi
WiniFred
Yorumlar
4
Okunma
2549
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



WiniFred
Aktif Üye
Kullanici Avatari
Aktif Üye
121
25/09/2011
11
Zonguldak
-
28/11/2016,21:49
Merhaba,
Bunu daha önce ben forumda sormuştum. Cevap sorguyu Vba içine almak yöntemi olarak gelmişti. Şimdi bir kez daha ihtiyacım oldu ve biraz daha araştırınca çözümü buldum.

Diyelim ki bir sorgu hazırladınız. Bu sorgu bir formdan parametre alıyor. Bu sorguyu Vba içine almakla uğraşmak istemiyorsunuz ama Vba içinden çalıştırmak istiyorsunuz. Bildiğimiz yöntemlerle yapınca, yani

Visual Basic Code
Set rs=CurrentDb.OpenRecordset("Sorgu")


yöntemiyle yapınca Çok az parametre.1 bekleniyor gibi bir hata veriyor.

Parametreli sorguları Vba içinden çalıştırmak için şöyle bir yöntem izlemek gerekiyormuş:

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub YardimTuru_Change()
Dim qdf As QueryDef
Dim rs As Recordset

On Error GoTo hata
 
 Set qdf = CurrentDb.QueryDefs("AyrilisYardimiHesaplamaSorgusu")
 
 qdf![Forms!GenelForm!Sicil] = Forms![GenelForm]![Sicil]
 
 Set rs = qdf.OpenRecordset()
 
 YardimTutari = rs("Net Ödenen")
 
 rs.Close
 Set rs = Nothing

qdf.Close
Set qdf=Nothing
 
 Exit Sub
 
hata:
 MsgBox "HATA OLUŞTU!-" & Err.Number & "-" & Err.Description, vbCritical, "Hata"

End Sub

İhtiyacı olanlar için eklemek istedim.
Saygılarımla...

Edit:
Bir örnek ekledim. umarım anlaşılır olmuştur.



Ek Dosyalar
.rar   QuerydefOrnek.rar (Dosya Boyutu: 17,22 KB / İndirme Sayısı: 65)
Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.060
29/01/2008
Denizli
Polis Memuru
Ofis 2010 32 Bit
Paylaşım için teşekkürler. Konu Access Dersleri bölümüne taşınmıştır.
Cevapla


WiniFred
Aktif Üye
Kullanici Avatari
Aktif Üye
121
25/09/2011
11
Zonguldak
-
28/11/2016,21:49
Yukarıdaki mesajımdaki Vba koduna aşağıdaki kodu ekleyerek güncelledim.

Visual Basic Code
qdf.Close
Set qdf=Nothing

Cevapla


208319
Aktif Üye
Kullanici Avatari
Aktif Üye
S.... C....
212
08/03/2009
0
Gaziantep
Ofis XP
20/09/2016,00:17
paylaşım için çok teşekkürler
Cevapla


WiniFred
Aktif Üye
Kullanici Avatari
Aktif Üye
121
25/09/2011
11
Zonguldak
-
28/11/2016,21:49
İ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  Shy

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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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...



Ek Dosyalar
.rar   VBAParametreliSorguOrnekAccess2010.rar (Dosya Boyutu: 25,46 KB / İndirme Sayısı: 16)
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi



Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya