Za pomocą funkcji DSum można obliczyć sumę zestawu wartości w określonym zestawie rekordów ( domena ). Funkcji DSum należy używać w module Visual Basic for Applications (VBA), makro, wyrażeniu zapytania lub kontrolka obliczeniowa.
Funkcji DSum można na przykład użyć w wyrażeniu pola obliczeniowego w zapytaniu, aby obliczyć całkowitą sprzedaż dokonaną przez określonego pracownika w danym okresie. Możesz też użyć funkcji DSum w kontrolce obliczeniowej, aby wyświetlić sumę bieżącą sprzedaży dla określonego produktu.
Składnia
DSum ( wyr ., domena [, kryteria] )
W składni funkcji DSum występują następujące argumenty:
|
Argument |
Opis |
|
wyrażenie |
Argument wymagany. Wyrażenie identyfikujące pole liczbowe, którego wartości chcesz zsumować. Może to być wyrażenie tekstowe identyfikujące konkretne pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. Wyrażenie może zawierać nazwę pola w tabeli, kontrolkę formularza, stałą lub funkcję. Jeśli wyrażenie zawiera funkcję, może to być funkcja wbudowana lub zdefiniowana przez użytkownika, ale z wyłączeniem funkcji agregującej domeny i funkcji agregującej języka SQL. |
|
domena |
Argument wymagany. Wyrażenie tekstowe identyfikujące zestaw rekordów stanowiący domenę. Może to być nazwa tabeli lub nazwa zapytania, o ile to zapytanie nie wymaga parametru. |
|
kryteria |
Argument opcjonalny. Wyrażenie ciągu służące do ograniczania zakresu danych, dla którego wykonywana jest funkcja DSum . Kryteria są często takie same, jak klauzula WHERE w wyrażeniu SQL, z pominięciem wyrazu WHERE. Jeśli argument kryteria zostanie pominięty, funkcja DSumoceni wyrażenie względem całej domeny. Każde pole zawarte w kryteriach musi być również polem w domenie. W przeciwnym razie funkcja DSum zwraca wartość Null. |
Spostrzeżenia
Jeśli żaden rekord nie spełnia argumentu kryteria lub domena nie zawiera żadnych rekordów, funkcja DSum zwraca wartość Null.
Niezależnie od tego, czy używasz funkcji DSum w makrze, module, wyrażeniu zapytania czy kontrolce obliczeniowej, musisz starannie skonstruować argument kryteria , aby upewnić się, że zostanie on poprawnie oceniony.
Za pomocą funkcji DSum można określić kryteria w wierszu Kryteria zapytania, w polu obliczeniowym w wyrażeniu zapytania lub w wierszu Aktualizacja dozapytanie aktualizujące.
Uwaga: Funkcji DSum lub Suma można użyć w wyrażeniu pola obliczeniowego w zapytanie podsumowujące. Jeśli używasz funkcji DSum , wartości są obliczane przed zgrupowanymi danymi. Jeśli używasz funkcji Suma , dane są grupowane przed obliczeniem wartości w wyrażeniu pola.
Funkcja DSum może być potrzebna, gdy trzeba wyświetlić sumę zestawu wartości z pola, które nie znajduje się w źródle rekordów formularza lub raportu. Załóżmy na przykład, że masz formularz wyświetlający informacje o określonym produkcie. Za pomocą funkcji DSum można zachować bieżącą sumę sprzedaży danego produktu w kontrolce obliczeniowej.
Porada
Jeśli chcesz zachować sumę bieżącą w kontrolce raportu, możesz użyć właściwości RunningSum tej kontrolki, jeśli pole, na którym jest oparta, jest uwzględnione w źródle rekordów raportu. Użyj funkcji DSum, aby zachować sumę bieżącą w formularzu.
Uwaga: Niezapisane zmiany rekordów w domenie nie są uwzględniane podczas korzystania z tej funkcji. Aby funkcja DSum była oparta na zmienionych wartościach, należy najpierw zapisać zmiany, klikając pozycję Zapisz rekord w grupie Rekordy na karcie Narzędzia główne, przenosząc fokus do innego rekordu lub używając metody aktualizacji .
Przykłady
Używanie funkcji DSum w wyrażeniu Funkcji domeny (takiej jak DSum) można użyć w wierszu Update To (Aktualizacja do ) kwerendy aktualizującej. Załóżmy na przykład, że chcesz śledzić bieżącą sprzedaż według produktów w tabeli Produkty. Możesz dodać nowe pole o nazwie SalesSoFar do tabeli Produkty i uruchomić zapytanie aktualizujące, aby obliczyć poprawne wartości i zaktualizować rekordy. W tym celu utwórz nowe zapytanie na podstawie tabeli Produkty, a następnie na karcie Projektowanie w grupie Typ zapytania kliknij pozycję Aktualizuj. Dodaj pole SalesSoFar do siatki zapytania i wpisz następujące wyrażenie w wierszu Aktualizacja do :
DSum("[Quantity]*[UnitPrice]", "Order Details", _ "[ProductID] = "& [ProductID])
Po uruchomieniu zapytania program Access oblicza całkowitą kwotę sprzedaży dla każdego produktu na podstawie informacji z tabeli Szczegóły zamówień. Suma sprzedaży każdego produktu jest dodawana do tabeli Produkty.
Używanie funkcji DSum w kodzie VBA
Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W poniższym przykładzie podsumowano wartości z pola Fracht dla zamówień wysłanych do Wielkiej Brytanii. Domena to tabela Zamówienia. Argument kryteria ogranicza wynikowy zestaw rekordów do rekordów, dla których WartośćOdbiorcy Jest równa Uk.
Dim curX As CurrencycurX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
W następnym przykładzie oblicza sumę przy użyciu dwóch oddzielnych kryteriów. Zwróć uwagę, że w wyrażeniu ciągu są dołączane pojedyncze cudzysłowy (') i znaki liczb (#), dzięki czemu po połączeniu ciągów literał jest ujęty w cudzysłów pojedynczy, a data jest ujęta w znaki numeru.
Dim curX As CurrencycurX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK' AND _ [ShippedDate] > #1-1-95#")