Käyttämällä TLaske-funktiota voit määrittää määritetyn tietuejoukon (ryhmä) tietueiden määrän. Käytä TLaske-funktiota Visual Basic for Applications (VBA) -moduulissa, makro, kyselyn lausekkeessa tai laskettu ohjausobjektissa.
Voit käyttää TLaske-funktiota esimerkiksi moduulissa ja palauttaa Tilaukset-taulukon tietueiden määrän, joka vastaa tiettynä päivänä tehtyjen tilausten määrää.
Syntaksi
TLaske ( lauseke , ryhmä [, ehdot] )
TLaske-funktion syntaksilla on seuraavat argumentit:
Argumentti |
Kuvaus |
lauseke |
Pakollinen. Lauseke, joka määrittää kentän, jonka tietueet haluat laskea . Lauseke voi olla taulukon tai kyselyn kentän määrittävä merkkijonolauseke, tai se voi olla kentän tietojen laskennan suorittava lauseke. Lauseke voi sisältää taulukon kentän, lomakkeen ohjausobjektin, vakion tai funktion nimen. Jos lauseke sisältää funktion, se voi olla joko valmis tai käyttäjän määrittämä funktio, mutta ei toinen ryhmäkoostefunktio eikä SQL-koostefunktio. |
ryhmä |
Pakollinen. Merkkijonolauseke, joka määrittää ryhmän muodostavan tietuejoukon. Kyseessä voi olla taulukon nimi tai sellaisen kyselyn nimi, joka ei vaadi parametria. |
ehto |
Valinnainen. Merkkijonolauseke, jonka avulla rajoitetaan niiden tietojen aluetta, joihin TLaske-funktiota käytetään. Esimerkiksi ehdot vastaa usein SQL-lausekkeen WHERE-lausetta ilman sanaa WHERE. Jos ehdot jätetään pois, TLaske-funktio vertaa lauseketta koko ryhmään. Kentän, joka sisältyy ehtoihin, on oltava myös ryhmän kenttä; muussa tapauksessa TLaske-funktio palauttaa tyhjäarvon. |
Huomautuksia
TLaske-funktion avulla voit laskea ryhmän tietueiden määrän, jos sinun ei tarvitse tietää niiden yksittäisiä arvoja. Vaikka lauseke-argumentti voi suorittaa kentän laskutoimituksen, TLaske-funktio laskee vain tietueiden määrän. Lausekkeen suorittaman laskutoimituksen arvo ei ole käytettävissä.
Käytä TLaske-funktiota lasketussa ohjausobjektissa, kun haluat määrittää ehdot, joiden perusteella rajataan funktion suorittamisessa käytettävä tietoalue. Voit esimerkiksi näyttää Kaliforniaan toimitettavien tilausten määrän asettamalla tekstiruudun OhjausobjektinLähde-ominaisuudeksi seuraavan lausekkeen:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Jos haluat vain laskea kaikki ryhmän tietueet määrittämättä mitään rajoituksia, käytä Laske-funktiota.
Vihje Laske-funktio on optimoitu nopeuttamaan tietueiden laskentaa kyselyissä. Käytä Laske-funktiota kyselylausekkeessa TLaske-funktion sijaan, ja määritä valinnaiset ehdot tuloksia koskevien rajoitusten pakottamiseen. Käytä TLaske-funktiota, kun haluat laskea ryhmän tietueet koodimoduulista, makrosta tai lasketusta ohjausobjektista.
Voit laskea TLaske-funktiolla sellaisten tietueiden määrän, jotka sisältävät tietyn kentän, joka ei ole lomakkeen tai raportin perustana olevassa tietuelähteessä. Voit esimerkiksi näyttää Tilaukset-taulukon tilausten määrän lasketussa ohjausobjektissa Tuotteet-taulukkoon perustuvalla lomakkeella.
TLaske-funktio ei laske tietueita, jotka sisältävät tyhjäarvon kentässä, johon lausekkeella viitataan, ellei lauseke ole tähtimerkki (*). Jos käytät tähtimerkkiä, TLaske-funktio laskee tietueiden kokonaismäärän, mukaan lukien myös tyhjäarvoisen kentän sisältävät tietueet. Seuraavassa esimerkissä lasketaan Tilaukset-taulukon tietueiden määrä.
intX = DCount("*", "Orders")
Jos ryhmä on taulukko, jossa on perusavain, voit laskea tietueiden kokonaismäärän myös määrittämällä lausekkeen perusavainkenttään, koska perusavainkentässä ei voi koskaan olla tyhjäarvoa.
Jos lauseke määrittää useita kenttiä, erota kenttien nimet ketjutusoperaattorilla, joko et-merkin (&) tai lisäysoperaattorin (+) avulla. Jos käytät et-merkkiä kenttien erottamiseen, TLaske-funktio palauttaa niiden tietueiden määrän, jotka sisältävät tietoja missä tahansa luettelossa olevassa kentässä. Jos käytät lisäysoperaattoria, TLaske-funktio palauttaa vain niiden tietueiden määrän, jotka sisältävät tietoja kaikissa luetelluissa kentissä. Seuraavassa esimerkissä esitetään kunkin operaattorin vaikutukset, kun sitä käytetään kentässä, joka sisältää tietoja kaikissa tietueissa (ShipName) ja kentässä, joka ei sisällä tietoja (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Huomautus: Et-merkki on merkkijonojen yhdistämisen ensisijainen operaattori. Vältä lisäysoperaattorin käyttämistä mihinkään muuhun kuin numeroiden lisäykseen, ellet nimenomaan halua levittää tyhjäarvoja koko lausekkeeseen.
Ryhmän tietueiden tallentamattomia muutoksia ei oteta mukaan käytettäessä tätä funktiota. Jos haluat, että TLaske-funktio perustuu muuttuneisiin arvoihin, tallenna ensin muutokset valitsemalla Tiedot-välilehden Tietueet-kohdasta Tallenna tietue, jolloin kohdistus siirtyy toiseen tietueeseen, tai käytä Update-menetelmää.
Esimerkkejä kyselystä
Lauseke |
Tulokset |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Palauttaa tuotetunnus-kentän arvojen määrän taulukosta "Tuotemyynti", jossa Alennus-arvo on "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Palauttaa tuotetunnus-taulukon Tuotetunnus-kentän arvojen määrän, kun DateofSale on päivää ennen nykyistä päivämäärää. |
VBA-esimerkki
Huomautus: Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käytöstä, valitse Sovelluskehittäjän opasHaku-kentän viereisestä luettelosta ja anna yksi tai useampi hakuehto hakukenttään.
Seuraava funktio palauttaa tiettyyn maahan tai tietylle alueelle määritetyn lähetyspäivän jälkeen toimitettujen tilausten määrän. Ryhmä on Tilaukset-taulukko.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Voit kutsua funktion käyttämällä seuraavaa koodia välittömässä suoritusruudussa:
:OrdersCount "UK", #1/1/96#