Funkciją DCount galite naudoti norėdami nustatyti, kiek įrašų yra nurodytame įrašų rinkinyje (domene). Funkciją DCount naudokite "Visual Basic for Applications" (VBA) modulyje, makrokomandoje, užklausos reiškinyje arba skaičiavimų valdiklyje.
Pavyzdžiui, galite naudoti funkciją DCount modulyje, kad grąžintumėte užsakymų lentelės įrašų, atitinkančių tam tikrą dieną pateiktus užsakymus, skaičių.
Sintaksė
DCount(išraiška, domenas* [, kriterijai] )
Funkcijos DCount sintaksę sudaro šie argumentai:
| Argumentas | Aprašymas |
|---|---|
| expr | Būtinas. Išraiška, identifikuojanti lauką, kurio įrašus norite skaičiuoti. Tai gali būti eilutės reiškinys, identifikuojantis lauką lentelėje ar užklausoje, arba reiškinys, atliekantis duomenų skaičiavimus tame lauke. Išraiškoje galite įtraukti lentelės lauko pavadinimą, formos valdiklį, konstantą arba funkciją. Reiškinyje esanti funkcija gali būti įtaisytoji arba apibrėžta vartotojo, tačiau negali būti kito domeno agregavimo ar SQL agregavimo funkcija. |
| domenas | Būtinas. Eilutės reiškinys, identifikuojantis domeną sudarančių įrašų rinkinį. Tai gali būti lentelės pavadinimas arba užklausos, kuriai nebūtinas parametras, pavadinimas. |
| kriterijai | Pasirinktinis. Eilutės reiškinys, naudojamas apriboti duomenų diapazoną, kuriame atliekama funkcija DCount . Pavyzdžiui, kriterijai dažnai yra sąlygos WHERE atitikmuo SQL užklausoje, be žodžio WHERE. Jei kriterijai nenurodyti, funkcija DCount įvertina reiškinį pagal visą domeną. Bet koks kriterijus įtrauktas laukas taip pat turi būti domeno laukas; priešingu atveju funkcija DCount grąžina nulį. |
Pastabos
Naudokite funkciją DCount norėdami suskaičiuoti domeno įrašus, kai jums nereikia žinoti konkrečių jų reikšmių. Nors išraiškos argumentas gali atlikti skaičiavimus lauke, funkcija DCount paprasčiausiai suskaičiuoja įrašų skaičių. Išraiškos būdu atliekamų skaičiavimų reikšmė negalima.
Funkciją DCount naudokite skaičiavimų valdiklyje, kai norite nurodyti kriterijus, ribojančius duomenų diapazoną, su kuriuo atliekama funkcija. Pavyzdžiui, norėdami rodyti užsakymų, kurie bus išsiųsti į Kaliforniją, skaičių, nustatykite teksto lauko ypatybę ControlSource į šį reiškinį:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Jei tiesiog norite suskaičiuoti visus domeno įrašus nenurodydami jokių apribojimų, naudokite funkciją Count .
Patarimas Funkcija "Count" optimizuota paspartinti užklausų įrašų skaičiavimą. Vietoj funkcijos DCount užklausoje naudokite funkciją Count ir nustatykite pasirinktinius kriterijus, kad būtų taikomi rezultatų apribojimai. Funkciją DCount naudokite, kai turite skaičiuoti įrašus domene iš kodo, modulio, makrokomandos arba skaičiavimų valdiklio.
Funkciją DCount galite naudoti norėdami suskaičiuoti įrašus, kuriuose yra tam tikras laukas, kurio nėra įrašo šaltinyje, kuriuo pagrįsta jūsų forma arba ataskaita. Pavyzdžiui, galite rodyti užsakymų skaičių lentelėje Užsakymai skaičiavimų valdiklyje, kuris pagrįstas lentele Produktai pagrįstoje formoje.
Funkcija DCount neskaičiuoja įrašų, kurių lauke yra neapibrėžtos reikšmės išraiškos nurodomame lauke, nebent reiškinys yra žvaigždutės (*) pakaitos simbolis. Jei naudojate žvaigždutę, funkcija DCount apskaičiuoja bendrą įrašų, įskaitant ir tuos, kuriuose yra laukų Null , skaičių. Toliau pateiktame pavyzdyje apskaičiuojamas įrašų skaičius lentelėje Užsakymai.
intX = DCount("*", "Orders")
Jei domenas yra lentelė su pirminiu raktu, taip pat galite suskaičiuoti bendrą įrašų skaičių nustatydami išraišką pirminio rakto lauke, nes pirminio rakto lauke niekada nebus nulinės reikšmės .
Jei išraiška identifikuoja kelis laukus, atskirkite laukų pavadinimus sujungimo operatoriumi: ampersendu (&) arba sudėties operatoriumi (+). Jei naudojate ampersandą laukams atskirti, funkcija DCount grąžins įrašų, kuriuose yra duomenų bet kuriame iš išvardytų laukų, skaičių. Jei naudojate sudėties operatorių, funkcija DCount grąžina tik tiek įrašų, kuriuose yra duomenų visuose išvardytuose laukuose, skaičių. Šiame pavyzdyje parodytas kiekvieno operatoriaus poveikis, kai jis naudojamas lauke, kuriame yra duomenų visuose įrašuose ("ShipName"), ir lauke, kuriame nėra duomenų ("ShipRegion").
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Pastaba
Ampersandas yra pageidaujamas operatorius eilutėms sujungti. Turėtumėte vengti naudoti sudėties operatorių bet kam kitam, išskyrus skaičių sudėtį, nebent specialiai norite išplatinti Nulls per reiškinį.
Naudojant šią funkciją, neįrašyti domeno įrašų pakeitimai neįtraukiami. Jei norite, kad funkcijos DCount rezultatai būtų pagrįsti pakeistomis reikšmėmis, pirmiausia pakeitimus turite įrašyti skirtuko Duomenys dalyje Įrašai spustelėdami Įrašyti įrašą, pereidami į kitą įrašą, ar naudodami metodą Naujinimas.
Užklausų pavyzdžiai
| Išraiška | Rezultatai |
|---|---|
| SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); | Grąžina reikšmių skaičių lentelės "ProductSales", kur "Discount" reikšmė yra "0", lauke "ProductID". |
| SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); | Grąžina reikšmių skaičių lentelės "ProductSales" lauke, "ProductID", kur "DateofSale" yra diena prieš dabartinę datą. |
VBA pavyzdys
Pastaba
Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos) ir ieškos lauke įvedę vieną ar daugiau sąlygų.
Ši funkcija pateikia užsakymų, išsiųstų į nurodytą šalį / regioną po nurodytos išsiuntimo datos, skaičių. Domenas yra lentelė Užsakymai.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
Norėdami iškviesti funkciją, tiesioginiame lange naudokite šią kodo eilutę:
:OrdersCount "UK", #1/1/96#