Select1_Count Fonksiyonu

Tanım


Veritabanında saklanan tablolardan, istenilen kriterlere uygun kayıtların sayısını bulmak için kullanılan bir fonksiyondur. Sadece kayıt sayısını geri döner.

Kullanım Şekli


Değişken = Document.Select1_Count(TabloAdı, 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

TabloAdı

Sorgulanmak istenen ve veritabanından saklanan tablonun adı. Bellekteki rowsetler, 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, veritabanında olan tablolar 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.

Select3_Count ve Select2_Count fonksiyonundan farkı sadece veritabanındaki tabloları 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