Anda bisa menggunakan fungsi DCount untuk menentukan jumlah rekaman yang ada dalam kumpulan rekaman tertentu ( domain). Gunakan fungsi DCount dalam modul Visual Basic for Applications (VBA), makro, ekspresi kueri, atau kontrol terhitung.
Misalnya, Anda dapat menggunakan fungsi DCount dalam modul untuk mengembalikan jumlah rekaman dalam tabel Pesanan yang sesuai dengan pesanan yang diletakkan pada tanggal tertentu.
Sintaks
DCount ( expr , domain [, criteria] )
Sintaks fungsi DCount memiliki argumen ini:
Argumen |
Deskripsi |
expr |
Diperlukan. Ekspresi yang mengidentifikasi bidang yang ingin Anda hitung rekamannya. Ini bisa berupa ekspresi string yang mengidentifikasi bidang pada tabel atau kueri, atau bisa berupa ekspresi yang menjalankan penghitungan pada data di bidang itu. Di expr, Anda juga bisa menyertakan nama bidang dalam tabel, kontrol pada formulir, konstanta, atau fungsi. Jika expr menyertakan suatu fungsi, itu bisa berupa bawaan atau ditetapkan pengguna, tapi tidak domain lain SQL agregat atau fungsi agregat SQL. |
domain |
Diperlukan. Ekspresi string yang mengidentifikasi sekumpulan rekaman yang membentuk domain. Ini bisa berupa nama tabel atau nama kueri untuk kueri yang tidak memerlukan parameter. |
criteria |
Opsional. Ekspresi string yang digunakan untuk membatasi rentang data tempat fungsi DCount dijalankan. Misalnya, kriteria sering kali sama dengan klausul WHERE dalam ekspresi SQL, tanpa kata WHERE. Jika kriteria dihilangkan, fungsi DCount mengevaluasi ekspr terhadap seluruh domain. Bidang apa pun yang disertakan dalam kriteria juga harus bidang dalam domain; jika tidak, fungsi DCount mengembalikan Null. |
Keterangan
Gunakan fungsi DCount untuk menghitung jumlah rekaman dalam domain saat Anda tidak perlu mengetahui nilai tertentu. Meskipun argumen expr dapat melakukan penghitungan pada bidang, fungsi DCount hanya menjumlahkan jumlah rekaman. Nilai penghitungan apa pun yang dilakukan oleh ekspr tidak tersedia.
Gunakan fungsi DCount dalam kontrol terhitung saat Anda perlu menentukan kriteria untuk membatasi rentang data tempat fungsi dijalankan. Misalnya, untuk menampilkan jumlah pesanan yang akan dikirim ke California, atur properti ControlSource kotak teks ke ekspresi berikut:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Jika Anda hanya ingin menghitung semua catatan dalam domain tanpa menentukan batasan apa pun, gunakan fungsi Count .
Tips Fungsi Count telah dioptimalkan untuk mempercepat penghitungan rekaman dalam kueri. Gunakan fungsi Count dalam ekspresi kueri dan bukan fungsi DCount, dan atur kriteria opsional untuk memberlakukan batasan apa pun pada hasil. Gunakan fungsi DCount saat Anda harus menghitung rekaman dalam domain dari dalam modul kode atau makro, atau dalam kontrol terhitung.
Anda bisa menggunakan fungsi DCount untuk menghitung jumlah rekaman yang berisi bidang tertentu yang tidak berada di sumber rekaman di mana formulir atau laporan Anda didasarkan. Misalnya, Anda dapat menampilkan jumlah pesanan dalam tabel Pesanan dalam kontrol terhitung pada formulir berdasarkan tabel Produk.
Fungsi DCount tidak menghitung rekaman yang berisi nilai Null dalam bidang yang direferensikan oleh ekspr kecuali ekspr adalah karakter wildcard tanda bintang (*). Jika Anda menggunakan tanda bintang, fungsi DCount menghitung jumlah total rekaman, termasuk yang berisi bidang Null . Contoh berikut menghitung jumlah rekaman dalam tabel Pesanan.
intX = DCount("*", "Orders")
Jika domain adalah tabel dengan kunci utama, Anda juga bisa menghitung jumlah total rekaman dengan mengatur expr ke bidang kunci utama, karena tidak akan pernah ada Null di bidang kunci utama.
Jika expr mengidentifikasi beberapa bidang, pisahkan nama bidang dengan operator penggandaan, baik simbol dan (&) atau operator penambahan (+). Jika Anda menggunakan ampersand untuk memisahkan bidang, fungsi DCount mengembalikan jumlah rekaman yang berisi data di salah satu bidang yang tercantum. Jika Anda menggunakan operator penambahan, fungsi DCount hanya mengembalikan jumlah rekaman yang berisi data di semua bidang yang tercantum. Contoh berikut ini menunjukkan efek setiap operator ketika digunakan dengan bidang yang berisi data dalam semua rekaman (ShipName) dan bidang yang tidak berisi data (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Catatan: Ampersand adalah operator pilihan untuk melakukan penggundulan string. Anda harus menghindari penggunaan operator penambahan untuk apa pun selain penambahan numerik, kecuali Anda secara khusus ingin menyebarkan Nulls melalui ekspresi.
Perubahan yang tidak disimpan ke rekaman dalam domain tidak disertakan saat Anda menggunakan fungsi ini. Jika Anda ingin fungsi DCount didasarkan pada nilai yang diubah, Anda harus terlebih dahulu menyimpan perubahan dengan mengklik Simpan Rekaman di bawah Rekaman pada tab Data, memindahkan fokus ke catatan lain, atau dengan menggunakan metode e Updat.
Contoh kueri
Ekspresi |
Hasil |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Mengembalikan hitungan nilai dalam bidang "IDProduk" tabel "ProductSales" di mana nilai "Diskon" adalah "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Mengembalikan hitungan nilai dalam bidang "PRODUCTID" tabel "ProductSales" di mana "DateofSale" adalah hari sebelum tanggal saat ini. |
Contoh VBA
Catatan: Contoh yang mengikuti demonstrasi penggunaan fungsi ini dalam modul Visual Basic for Applications (VBA). Untuk informasi selengkapnya tentang bekerja dengan VBA, pilih Referensi Pengembang di daftar turun bawah di samping Cari dan masukkan satu istilah atau lebih di kotak pencarian.
Fungsi berikut mengembalikan jumlah pesanan yang dikirim ke negara/kawasan tertentu setelah tanggal pengiriman yang ditentukan. Domainnya adalah tabel Pesanan.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Untuk memanggil fungsi, gunakan baris kode berikut ini di jendela Segera:
:OrdersCount "UK", #1/1/96#