Belirtilen kayıt kümesindeki kayıt sayısını belirlemek için DCount işlevini kullanabilirsiniz (bir etki alanı ). Visual Basic for Applications (VBA) modülünde, makro, sorgu ifadesinde veya hesaplanmış denetim 'nde DCount işlevini kullanın.
Örneğin, belirli bir tarihte verilen siparişlere karşılık gelen siparişler tablosundaki kayıt sayısını döndürmek için modüldeki DCount işlevini kullanabilirsiniz.
Söz dizimi
DCount ( expr , etki alanı [, ölçüt] )
Say işlevinin söz diziminde şu bağımsız değişkenler bulunur:
Bağımsız değişken |
Açıklama |
ifade |
Gerekli. Kayıtları saymak istediğiniz alanı tanımlayan ifade. Tablo veya sorguda bir alanı tanımlayan bir dize ifadesi veya söz konusu alandaki veriler üzerinde hesaplama yapan bir ifade olabilir. ifade bağımsız değişkenine tablodaki bir alanın, formdaki bir denetimin, bir sabitin veya işlevin adını ekleyebilirsiniz. ifade bir işlev içeriyorsa, bu yerleşik veya kullanıcı tanımlı olabilir ancak başka bir etki alanı toplama işlevi veya SQL toplama işlevi olamaz. |
etki alanı |
Gerekli. Etki alanının oluşturulduğu kayıt kümesini tanımlayan dize ifadesi. Bir tablo adı veya parametre gerektirmeyen bir sorgunun sorgu adı olabilir. |
ölçütler |
İsteğe bağlı. DCount işlevinin gerçekleştirildiği veri aralığını kısıtlamak için kullanılan dize ifadesi. Örneğin ölçütler genellikle WHERE sözcüğü olmadan SQL ifadesindeki WHERE yan tümcesine eşdeğerdir. Ölçüt belirtilmezse, DCount işlevi ifadeyi etki alanının tamamına göre değerlendirir. Ölçütlere dahil edilen herhangi bir alan da etki alanındaki bir alan olmalıdır; aksi takdirde DCount işlevi Null döndürür. |
Açıklamalar
Belirli değerlerini bilmeniz gerekmeyen bir etki alanındaki kayıt sayısını saymak için DCount işlevini kullanın. İfade bağımsız değişkeni bir alanda hesaplama gerçekleştirebilse de, DCount işlevi yalnızca kayıt sayısını hesaplar. İfade tarafından gerçekleştirilen herhangi bir hesaplamanın değeri kullanılamaz.
İşlevin gerçekleştirildiği veri aralığını kısıtlamak için ölçüt belirtmeniz gerektiğinde, hesaplanan denetimde DCount işlevini kullanın. Örneğin, California'ya gönderilecek siparişlerin sayısını görüntülemek için bir metin kutusunun ControlSource özelliğini aşağıdaki ifadeye ayarlayın:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Herhangi bir kısıtlama belirtmeden etki alanındaki tüm kayıtları saymak istiyorsanız Count işlevini kullanın.
İpucu Count işlevi, sorgulardaki kayıtların sayımını hızlandırmak için iyileştirilmiştir. Count işlevini DCount işlevi yerine sorgu ifadesinde kullanın ve sonuçlar üzerinde herhangi bir kısıtlamayı zorunlu kılmak için isteğe bağlı ölçütler ayarlayın. Bir etki alanındaki kayıtları bir kod modülünden veya makrodan ya da hesaplanmış denetimden saymanız gerektiğinde DCount işlevini kullanın.
DCount işlevini kullanarak formunuzun veya raporunuzun dayandığı kayıt kaynağında olmayan belirli bir alanı içeren kayıt sayısını sayabilirsiniz. Örneğin, Siparişler tablosundaki sipariş sayısını Ürünler tablosunu temel alan bir formdaki hesaplanmış denetimde görüntüleyebilirsiniz.
İfade yıldız (*) joker karakteri olmadığı sürece, DCount işlevi expr tarafından başvuruda bulunılan alanda Null değerler içeren kayıtları saymaz. Yıldız işareti kullanırsanız, DCount işlevi Null alanları içeren kayıtlar da dahil olmak üzere toplam kayıt sayısını hesaplar. Aşağıdaki örnek, Siparişler tablosundaki kayıt sayısını hesaplar.
intX = DCount("*", "Orders")
Etki alanı birincil anahtar içeren bir tabloysa, birincil anahtar alanında hiçbir zaman Null olmadığından, ifadeyi birincil anahtar alanına ayarlayarak toplam kayıt sayısını da sayabilirsiniz.
İfade birden çok alan tanımlarsa, alan adlarını ve işareti (&) veya toplama işleci (+) gibi bir birleştirme işleciyle ayırın. Alanları ayırmak için ve işareti kullanırsanız, DCount işlevi listelenen alanlardan herhangi birinde veri içeren kayıt sayısını döndürür. Toplama işlecini kullanırsanız, DCount işlevi yalnızca listelenen tüm alanlarda veri içeren kayıt sayısını döndürür. Aşağıdaki örnek, tüm kayıtlarda (ShipName) veri içeren bir alan ve veri içermeyen bir alan (ShipRegion) ile kullanıldığında her işlecin etkilerini gösterir.
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Not: ve işareti, dize birleştirme gerçekleştirmek için tercih edilen işleçtir. Özellikle bir ifade aracılığıyla Null'ları yaymak istemediğiniz sürece, sayısal toplama dışında herhangi bir şey için toplama işlecini kullanmaktan kaçınmalısınız.
Bu işlevi kullandığınızda, etki alanı içindeki kayıtlarda bulunan kaydedilmemiş değişiklikler dahil edilmez. DCount işlevinin değiştirilen değerlere dayalı olmasını istiyorsanız, önce Veri sekmesindeki Kayıtlar'ın altındaki Kaydı Kaydet'e tıklayarak, odağı başka bir kayda taşıyarak veya Update yöntemini kullanarak değişiklikleri kaydetmeniz gerekir.
Sorgu örnekleri
Expression |
Sonuçlar |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
"Discount" değeri "0" olan "ProductSales" Tablosunun "ProductID" alanındaki değerlerin sayısını döndürür. |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
"ProductSales" Tablosunun "ProductID" alanındaki değerlerin sayısını döndürür; burada "DateofSale" geçerli tarihten bir gün öncedir. |
VBA örneği
Not: Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülünde kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, rama'nın yanındaki açılan listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim yazın.
Aşağıdaki işlev, belirtilen sevk tarihinden sonra belirtilen ülkeye/bölgeye gönderilen siparişlerin sayısını döndürür. Etki alanı bir Siparişler tablosudur.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
İşlevi çağırmak için, Anında penceresinde aşağıdaki kod satırını kullanın:
:OrdersCount "UK", #1/1/96#