AccessTr.neT
Sorgu mu ? kullanmıyorum ! - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Örnekleri ve Uygulamaları (https://accesstr.net/forum-access-ornekleri-ve-uygulamalari.html)
+--- Konu Başlığı: Sorgu mu ? kullanmıyorum ! (/konu-sorgu-mu-kullanmiyorum.html)

Sayfalar: 1 2 3


Sorgu mu ? kullanmıyorum ! - okileturc - 14/02/2011

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






















Cvp: Sorgu mu ? kullanmıyorum ! - ozanakkaya - 14/02/2011

Teşekkürler Oktay hocam, çok akıllıca.


Cvp: Sorgu mu ? kullanmıyorum ! - benremix - 14/02/2011

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

alkisalkisalkis
Saygılar...



Cvp: Sorgu mu ? kullanmıyorum ! - Yandemir - 14/02/2011

güzel çalışma teşekkürler. keşke örnekte linked table kullanmasaydın.


Cvp: Sorgu mu ? kullanmıyorum ! - okileturc - 14/02/2011

Hocam, atlamışım Img-cray
ektedir, 1. mesaj da güncellenmiştir


Cvp: Sorgu mu ? kullanmıyorum ! - Puletin - 14/02/2011

Paylaşım ve fikir için teşkürler