DCount işlevini kullanarak, belirtilen kayıt kümesindeki (etki alanı) kayıtların sayısını belirleyebilirsiniz. DCount işlevini Visual Basic for ApplicationsVisual Basic for Applications (VBA) modülünde, makroda, sorgu ifadesinde veya hesaplanan denetimde kullanın.
Örneğin, bir modülde DCount işlevini kullanarak Siparişler tablosunda belirli bir tarihte verilen siparişlere karşılık gelen kayıtların sayısını döndürebilirsiniz.
Söz dizimi
DCount(ifade, etki alanı* [, ölçüt] )
DCount işlevinin söz diziminde aşağıdaki bağımsız değişkenler bulunur:
| Bağımsız değişken | Açıklama |
|---|---|
| ifade | Gerekli. Kayıtlarını saymak istediğiniz alanı tanımlayan ifade. Tablo veya sorgudaki bir alanı tanımlayan bir dize ifadesi olabileceği gibi, söz konusu alandaki veriler üzerinde hesaplama yapan bir ifade de olabilir. İfade fonksiyonuna tablodaki bir alanın, formdaki bir denetimin, bir sabitin veya işlevin adını ekleyebilirsiniz. İfade 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ştirileceği veri aralığını kısıtlamak için kullanılan bir dize ifadesi. Örneğin, ölçüt çoğunlukla SQL ifadesindeki WHERE yan tümcesiyle eşdeğerdir (WHERE sözcüğü olmadan). Ölçütler atlanırsa, DCount işlevi ifadeyi tüm etki alanı için değerlendirir. Ölçütlere dahil edilen her alan aynı zamanda etki alanında da bir alan olmalıdır; aksi takdirde DCount işlevi Null döndürür. |
Notlar
Belirli değerlerini bilmeniz gerekmediğinde bir etki alanındaki kayıtların sayısını hesaplamak 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ıtların sayısını hesaplar. İfade ile yapılan hesaplamaların değeri kullanılamaz.
İşlevin gerçekleştirileceği veri aralığını sınırlamak 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'")
Hiçbir kısıtlama belirtmeden yalnızca 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ıracak şekilde iyileştirilmiştir. Sorgu ifadesinde DCount işlevi yerine Count işlevini kullanın ve sonuçlar üzerinde kısıtlamaları zorlamak için isteğe bağlı ölçütler ayarlayın. Bir etki alanındaki kayıtları bir kod modülü veya makronun içinden ya da bir hesaplanan denetimden saymanız gerektiğinde DCount işlevini kullanın.
Formunuzun veya raporunuzun dayandığı kayıt kaynağında yer almayan belirli bir alanı içeren kayıtları saymak için DCount işlevini kullanabilirsiniz. Örneğin, Siparişler tablosundaki sipariş sayısını, Ürünler tablosunu temel alan bir formdaki hesaplanan denetimde görüntüleyebilirsiniz.
DCount işlevi, ifade yıldız (*) joker karakteri olmadığı sürece ifade tarafından başvurulan alanda Null değerler içeren kayıtları saymaz. Yıldız kullanırsanız, DCount işlevi Null alan içerenler de dahil olmak üzere toplam kayıt sayısını hesaplar. Aşağıdaki örnekte, bir Siparişler tablosundaki kayıtların sayısı hesaplanır.
intX = DCount("*", "Orders")
Etki alanı birincil anahtarı olan bir tabloysa, birincil anahtar alanında hiçbir zaman Null olmayacağından, birincil anahtar alanında ifadeyi ayarlayarak toplam kayıt sayısını da hesaplayabilirsiniz.
İfade birden çok alan tanımlıyorsa, alan adlarını bir birleştirme işleciyle, yani ve işaretiyle (&) veya toplama 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ıtların sayısını döndürür. Toplama işlecini kullanırsanız, DCount işlevi yalnızca listelenen alanların tümünde veri içeren kayıtların sayısını döndürür. Aşağıdaki örnekte, tüm kayıtlarda veri içeren bir alanla (SevkiyatAdı) ve hiç veri içermeyen bir alanla (SevkiyatBölgesi) kullanıldığında her işlecin etkileri gösterilir.
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Not
Dize birleştirme işlemini gerçekleştirmek için tercih edilen işleç ve işaretidir. Özellikle Null değerleri bir ifadeye yaymak istemediğiniz sürece, toplama işlecini sayısal toplama dışında herhangi bir amaçla kullanmaktan kaçınmanız gerekir.
Bu işlevi kullandığınızda, etki alanındaki kayıtlarda bulunan kaydedilmemiş değişiklikler dahil edilmez. DCount işlevinde değiştirilmiş değerlerin temel alınmasını istiyorsanız, önce Veri sekmesindeki Kayıtlar'ın altında Kaydı Kaydet'e tıklayarak, odağı başka bir kayda taşıyarak veya Güncelleştirme yöntemini kullanarak değişiklikleri kaydetmeniz gerekir.
Sorgu örnekleri
| İfade | Sonuçlar |
|---|---|
| SELECT DCount("ÜrünKimliği","ÜrünSatışı","İndirim=0") AS İfade1 FROM ÜrünSatışları GROUP BY DCount("ÜrünKimliği","ÜrünSatışı","İndirim=0"); | "ÜrünSatışları" tablosunun "ÜrünKimliği" alanındaki değerlerin sayısını döndürür (burada "İndirim" değeri "0" olur. |
| SELECT DCount("ÜrünKimliği","ÜrünSatışı","SatışTarihi=Date()-1") AS YesterdaySale FROM ÜrünSatışları GROUP BY DCount("ÜrünKimliği","ÜrünSatışı","SatışTarihi=Date()-1"); | "ÜrünSatış" tablosunun "ÜrünKimliği" alanındaki değerlerin sayısını döndürür (burada "SatışTarihi" geçerli tarihten bir gün öncesidir). |
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 bir sevk tarihinden sonra belirtilen ülkeye/bölgeye sevk edilen 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 Anlık penceresinde aşağıdaki kod satırını kullanın:
:OrdersCount "UK", #1/1/96#