AccessTr.neT

Tam Versiyon: Sorgu mu ? kullanmıyorum !
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
Kayıtlı sorgu yığınından veya kod sayfalarına yazdığınız uzun
SQL cümlelerinden kurtulmak ister misiniz ?
Ayni rapor veya form tasarımına 1’den fazla sorgu çağırmak gerektiğinde
“RecordSource” ile oynamıyor musunuz ?

O halde “SQL arşivinizi oluşturun” !

Bu konuda geçen sene bir üyemizin sorusuna cevaben küçük
bir çalışma yapmıştık. Ancak bunu bir metod olarak kullanmanın da
enteresan bir çözüm olduğunu düşünüyorum ( ben kullanıyorum )

Uygulamalarıma ilave bir tablo ekliyorum “tbl_sql – Sql cümleleri”
tablosu. SQLC_id, SQLC_keyword, ve SQLC alanlarından oluşuyor.
(bkz. ekteki mdb örneği )

En karmaşık sorgularınızı oluşturduktan sonra, Sql görünümüne
geçerek oluşturulan kodu kopyala/ yapıştır ile tabloma kayıt ediyorum,
ve bir anahtar kelime ekliyorum ( SQLC_keyword )

[Resim: 2ai3qs2.jpg]
[Resim: 2w32mp4.jpg]
[Resim: 14vqjjc.jpg]

Daha sonra gerektiğinde “anahtar kelime “ ile çağırıyorum

Örnek 1 ( Form üzerindeki yeni kart ekleme butonu için )

Dim StrSQL As String
StrSQL = Dlookup ("[SQLC]", "tbl_sql", "[SQLC_keyword]='kartekle'")
DoCmd.RunSQL StrSQL
Örnek 2 ( Raporun açılışına )

Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Dlookup ("[SQLC]", "tbl_sql", "[SQLC_keyword]='hareketgorenler'")
End Sub

Burada önemli olan bir başka konu gerçekten sorguya ihtiyaç
duyulduğunda ne yapılabileceğidir

İstediğimiz Sql cümlesinden yeni bir sorgu yaratabilriz :
Bu sorguya “maymuncuk” adı verelim, gerektiğinde kullanalım


Dim db As DAO.Database
Dim MyQry As DAO.QueryDef
Set db = CurrentDb
On Error Resume Next
' maymuncuk sorgusu her yeni işlemde önce silinecektir
db.QueryDefs.Delete "maymuncuk"
'sorguya Sql cümlemizi atıyoruz
Set MyQry = db.CreateQueryDef("maymuncuk", Dlookup ("[SQLC]", "tbl_sql", "[SQLC_keyword]= 'hareketgorenler'"))
db.Close

Artık bu somut sorgu üzerinden kayıt tarama işlemleri yapabilir
RecordSet olarak kullanabilriz.

Örnek ( maymuncuk sorgusundan kayıt sayısı alalım )

Me.ALANADI = DCount (“[kart_ID]”, “maymuncuk”)


Kolay gelsin



















Teşekkürler Oktay hocam, çok akıllıca.
(14/02/2011, 17:30)sledgeab yazdı: [ -> ]Teşekkürler Oktay hocam, çok akıllıca.

alkisalkisalkis
Saygılar...
güzel çalışma teşekkürler. keşke örnekte linked table kullanmasaydın.
Hocam, atlamışım Img-cray
ektedir, 1. mesaj da güncellenmiştir
Paylaşım ve fikir için teşkürler
Sayfalar: 1 2 3