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 Currency
curX = 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 Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK' AND _ [ShippedDate] > #1-1-95#")