Za pomocą funkcji DSum można obliczyć sumę wszystkich wartości w określonym zestawie rekordów (domenie). Funkcji DSum można używać w module języka Visual Basic for Applications (VBA), makrze, wyrażeniu zapytania lub kontrolce obliczeniowej.
Funkcji DSum możesz na przykład użyć w wyrażeniu pola obliczeniowego w zapytaniu, aby obliczyć całkowitą sprzedaż określonego pracownika w danym okresie. Można też użyć funkcji DSum w kontrolce obliczeniowej w celu wyświetlenia sumy bieżącej sprzedaży określonego produktu.
Składnia
DSum(wyrażenie, domena [, kryteria] )
W składni funkcji DSum występują następujące argumenty:
| Argumenty argumentów | Opis |
|---|---|
| wyrażenie | Argument wymagany. Wyrażenie identyfikujące pole liczbowe, którego wartości mają zostać zsumowane. Może to być wyrażenie tekstowe identyfikujące 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 tekstowe używane w celu ograniczenia 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 kryteria zostaną pominięte, funkcja DSum będzie obliczać 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 jeśli domena nie zawiera żadnych rekordów, funkcja DSum zwraca wartość Null.
Niezależnie od tego, czy funkcja DSum jest używana w makrze, module, wyrażeniu zapytania czy kontrolce obliczeniowej, należy starannie skonstruować argument kryteria , aby zagwarantować, że zostanie on poprawnie obliczony.
Funkcji DSum można używać do określania kryteriów w wierszu Kryteria kwerendy, w polu obliczeniowym wyrażenia kwerendy lub w wierszu Aktualizacja do kwerendy aktualizującej.
Uwaga
W wyrażeniu pola obliczeniowego w zapytaniu podsumowującym można użyć funkcji DSum lub Sum . W przypadku korzystania z funkcji DSum wartości są obliczane przed zgrupowaniem danych. W przypadku użycia funkcji Suma dane są grupowane przed oszacowaniem wartości w wyrażeniu pola.
Funkcji DSum można użyć, aby wyświetlić sumę zbioru wartości z pola, które nie znajduje się w źródle rekordów danego formularza lub raportu. Załóżmy na przykład, że mamy formularz wyświetlający informacje o konkretnym produkcie. Funkcji DSum można używać do utrzymywania łącznej bieżącej sprzedaży tego produktu w kontrolce obliczeniowej.
porada
Jeśli musisz zachować sumę bieżącą w kontrolce w raporcie, możesz użyć właściwości Suma bieżąca tej kontrolki, jeśli pole, na którym jest oparty, znajduje się w źródle rekordów raportu. Używanie funkcji DSum w celu zachowania sumy bieżącej w formularzu.
Uwaga
Niezapisane zmiany wprowadzone w rekordach domeny nie są uwzględniane w działaniu tej funkcji. Jeśli chcesz, aby funkcja DSum była oparta na zmienionych wartościach, musisz najpierw zapisać zmiany, klikając przycisk Zapisz rekord w grupie Rekordy na karcie Narzędzia główne , przenosząc fokus na inny rekord lub używając metody aktualizacji .
Przykłady
Używanie funkcji DSum w wyrażeniu W wierszu Aktualizacja do zapytania aktualizującego można użyć funkcji domeny (takiej jak DSum). Załóżmy na przykład, że chcesz śledzić bieżącą sprzedaż według produktów w tabeli Produkty. Można dodać do tabeli Produkty nowe pole o nazwie SalesSoFar i uruchomić kwerendę aktualizującą, aby obliczyć poprawne wartości i zaktualizować rekordy. W tym celu należy utworzyć nową kwerendę na podstawie tabeli Produkty i na karcie Projektowanie w grupie Typ kwerendy kliknąć przycisk Aktualizuj. Dodaj pole SalesSoFar do siatki zapytania, a następnie wpisz następujące polecenie w wierszu Aktualizacja do :
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Po uruchomieniu zapytania program Access obliczy całkowitą kwotę sprzedaży dla każdego produktu na podstawie informacji zawartych w tabeli Szczegóły zamówień. Suma sprzedaży każdego produktu zostanie dodana 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 wartości w polu Fracht są sumowane dla zamówień wysłanych do Zjednoczonego Królestwa. Domeną jest tabela Zamówienia. Argument kryteria ogranicza zestaw rekordów do rekordów, dla których wartość argumentu KrajOdbiorcy równa się Zjednoczonemu Królestwu.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
W następnym przykładzie suma jest obliczana przy użyciu dwóch oddzielnych kryteriów. Zwróć uwagę, że w wyrażeniu ciągu znajdują się znaki pojedynczego cudzysłowu (') i znaki numeru (#), tak więc w przypadku łączenia ciągów literał ciągu jest ujęty w pojedyncze cudzysłowy, a data jest ujęta w znaki numeru.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")