Select3_Count Fonksiyonu

Tanım


Herhangi bir uygulamada bellekte olan rowsetlerden, istenilen kriterlere uygun kayıtların sayısını bulmak için kullanılan bir fonksiyondur. O an bellekte olmayan bir rowset sorgulanamaz. Eğer sorgulanan rowset, uygulama tarafından dinamik olarak yaratılan rowset ise, sadece belgeye ait olan rowset okunur.

Kullanım Şekli


Değişken = Document.Select3_Count(SorgulananRowSetAdı, KriterCümlesi, KayıtSayısı)

Ana Nesne


Document (Doc) nesnesinin elemanıdır. Bir doküman nesnesi ile kullanılmak zorundadır.

Parametreler


Parametre

Açıklama

SorgulananRowSetAdı

Sorgulanmak istenen ve uygulamada o an bellekte olan rowsetin adı. Veritabanındaki tablolar, bu fonksiyonda kullanılamaz.

KriterCümlesi

Veritabanında saklanan verilerden, hangilerinin okunucağının tespit edildiği kriterlerin yer aldığı cümle. Kriter olarak TabloAdı ile verilen tablodaki alan adları kullanılır. Sayısal alanlar kriter olarak kullanılamaz. Bir kriterde, kıyaslama için karşılaştırma işaretleri kullanılabilir. Bunlar:

“=” : Eşit,

“!=” veya “<>” : Eşit değil veya farklı,

“<” : Küçük

“<=” : Küçük eşit,

“>” : Büyük,

“>=” : Büyük eşit,

Birden fazla kriter kullanılmak istenirse; kriterler arasında “&” (and) işareti kullanılmalıdır.  

Bir alanın karşılaştırılacağı veri ise “’” (tek tırnak) işareti içinde girilmelidir. Aksi halde kriter işlevini görmez.

KayıtSayısı

Sorgulama sonucu, elde edilen verilerden kaç kayıt sayısının geri dönüleceğinin söylendiği parametredir. Tam sayı değeri olarak girilmelidir. Kriterlere uyan tüm kayıtların geri dönülmesi isteniyorsa “-1“  değeri girilmelidir. 0 (sıfır) ve pozitif tamsayılarda istenilen kadar kayıt sayısı geri dönülür. Diğer tüm değerlerde fonksiyon hata verir.

Geri Dönen Değerler


Verilen kriterlere uygun kayıt sayısı, tam sayı değeri cinsinden geri dönülür. Bir değişkene atanarak kullanılmalıdır.

Hatırlatmalar


Sadece sorgulama anında, bellekte dinamik olarak var olan rowsetler sorgulanabilir.

Eğer bir tablodaki tüm kayıtların sayısının geri dönülmesi isteniyorsa KriterCümlesi boş olarak fonksiyona verilmelidir.

Sorgu sonucu oluşan rowsetler büyüklüğüne göre bellekte yer kaplar. Bellek tutarını aşan aşırı büyük sorgular, bellek bitine kadar çalışır, sonra da hata verirler.

Select2 fonksiyonundan farkı; uygulama tarafından yaratılan rowsetlerden sadece belgeye ait olanı okumasıdır.

Eğer fonksiyondan KayıtSayısı parametresi ile kriterlere uygun daha az kayıt sayısı istenirse, bu durumda minimum sayı olan ve KayıtSayısı parametresinde verilen sayı geri dönülür.

Örnek




Sub Makro1()

       ToplamMUHDSTKayitSayisi = Doc.Select1_Count("MUHDST","",-1)

       FisMUHDSTKayitSayisi = Doc.Select3_Count ("MUHDST","",-1)

       SatirMUHDSTKayitSayisi = Doc.Select2_Count ("MUHDST","",-1)

       Mesaj = "MUHDST tablosunun veritabanındaki toplam kayıt sayısı : " & ToplamMUHDSTKayitSayisi

       Mesaj = Mesaj & chr(13) & "MUHDST rowsetinin bu fişteki toplam kayıt sayısı : " & FisMUHDSTKayitSayisi

       Mesaj = Mesaj & chr(13) & "MUHDST Dinamik rowsetinin ilgili satırdaki kayıt sayısı : " & SatirMUHDSTKayitSayisi

       Doc.MsgBox Mesaj

End Sub



Yukarıdaki örnek, var olan üç Select_Count fonksiyonun farklarının ve özellikle; veritabanı tablosu ve uygulama rowsetleri (belge ve alt rowset) deyimlerinin daha iyi anlaşılması için verilmiştir. Örnek cari fişlerde çalışacak şekilde kurgulanmıştır. Örneğin çalıştığı cari fişte; iki satır olup, her satırında iki muhasebe hesap dağılım satırı vardır. Örnekte de görüldüğü gibi, tüm Select_Count fonksiyonlarının parametreleri tamamen aynıdır. Fakat örnek sonucunun gösterildiği aşağıdaki mesaj kutusunda da görüleceği gibi, sonuçları tamamen farklıdır. Dinamik rowset olarak satırın alt rowseti olan MUHDST rowset kayıtları okunmuştur.


               


Paylaşım Makrosu