Parametreli sorguyu VBA içinden çalıştırmak
Tarih
20/11/2011 16:10
Konu Sahibi
WiniFred
Yorumlar
4
Okunma
2782
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
-
01/02/2017,21:51
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ı: 69)
Cevapla

ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.596
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Bugün,00:09
Sponsor Reklam
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
-
01/02/2017,21:51
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
Sponsor Reklam
paylaşım için çok teşekkürler
Cevapla

WiniFred
Aktif Üye
Kullanici Avatari
Aktif Üye
121
25/09/2011
11
Zonguldak
-
01/02/2017,21:51
İ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ı: 18)
Cevapla


Konuyu Okuyanlar: 1 Ziyaretçi



Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2017 MyBB Group.
DMCA.com Protection Status