Funkcja DAvg

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Za pomocą funkcji DAvg można obliczyć średnią dla zestawu wartości w określonym zestawie rekordów (domenie). Funkcji DAvg można używać w module języka Visual Basic for Applications (VBA), makrze, wyrażeniu zapytania lub kontrolce obliczeniowej.

Można na przykład użyć funkcji DAvg w wierszu kryteriów kwerendy wybierającej dotyczącej kosztów frachtu, aby ograniczyć wyniki do tych rekordów, w których koszt frachtu przekracza średnią. Można również użyć wyrażenia zawierającego funkcję DAvg w kontrolce obliczeniowej i wyświetlić średnią wartość poprzednich zamówień obok wartości nowego zamówienia.

Składnia

DAvg(wyrażenie, domena [, kryteria] )

W składni funkcji DAvg występują następujące argumenty:

Argumenty argumentów Opis
wyrażenie Argument wymagany. Wyrażenie identyfikujące pole zawierające dane liczbowe, dla których ma zostać obliczona średnia. 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. W wyrażeniu można zawrzeć nazwę pola w tabeli, kontrolkę w formularzu, 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 DAvg . Na przykład 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 DAvg oceni wyrażenie względem całej domeny. Każde pole zawarte w kryteriach musi być również polem w domenie; w przeciwnym razie funkcja DAvg zwraca wartość Null.

    

Spostrzeżenia

Rekordy zawierające wartości null nie są uwzględniane przy obliczaniu średniej.

Niezależnie od tego, czy funkcja DAvg jest używana w makrze, module, wyrażeniu zapytania, czy w kontrolce obliczeniowej, należy starannie skonstruować argument kryteria , aby zapewnić jego poprawne obliczenie.

Funkcji DAvg można użyć do określenia kryteriów w wierszu Kryteria kwerendy. Załóżmy na przykład, że chcesz wyświetlić listę wszystkich produktów zamówionych w ilościach przekraczających średnią wielkość zamówienia. Można utworzyć zapytanie dla tabel Zamówienia, Szczegóły zamówień i Produkty, dołączając pola Nazwa produktu i Ilość, używając następującego wyrażenia w wierszu Kryteria poniżej pola Ilość:

>DAvg("[Quantity]", "Orders")

Funkcji DAvg można też używać w wyrażeniu pola obliczeniowego w zapytaniu lub w wierszu Aktualizacja do zapytania aktualizującego.

Uwaga

W wyrażeniu pola obliczeniowego w zapytaniu podsumowującym można użyć funkcji DAvg lub Avg . W przypadku korzystania z funkcji DAvg wartości są uśredniane przed zgrupowaniem danych. W przypadku użycia funkcji Avg dane są grupowane, zanim wartości w wyrażeniu pola zostaną uśrednione.

Funkcji DAvg należy używać w kontrolce obliczeniowej, aby określić kryteria ograniczające zakres danych, dla których wykonywana jest funkcja DAvg . Aby na przykład wyświetlić średni koszt frachtu dla przesyłek wysyłanych do Kalifornii, należy ustawić następujące wyrażenie jako właściwość ŹródłoKontrolki pola tekstowego:

=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")

Jeśli chcesz po prostu uśrednić wszystkie rekordy w domenie, użyj funkcji Avg .

Funkcji DAvg można użyć w module, makrze lub kontrolce obliczeniowej formularza, jeśli pole, które ma zostać wyświetlone, nie znajduje się w źródle rekordów, na którym oparty jest dany formularz. Załóżmy na przykład, że masz formularz oparty na tabeli Zamówienia i chcesz użyć pola Ilość z tabeli Szczegóły zamówień, aby wyświetlić średnią liczbę pozycji zamówionych przez określonego klienta. Aby wykonać to obliczenie i wyświetlić dane w formularzu, można użyć funkcji DAvg .

Porady

  • W przypadku używania funkcji DAvg w kontrolce obliczeniowej można umieścić tę kontrolkę w nagłówku lub stopce formularza, tak aby wartość tej kontrolki nie była obliczana ponownie przy każdym przejściu do nowego rekordu.
  • Jeśli typem danych pola, z którego pochodzi wyrażenie , jest liczba, funkcja DAvg zwraca typ danych Podwójna precyzja. W przypadku używania funkcji DAvg w kontrolce obliczeniowej należy dołączyć do wyrażenia funkcję konwersji typu danych, aby zwiększyć wydajność.
  • Mimo że funkcji DAvg można używać do wyznaczania średniej wartości w polu tabeli obcej, bardziej efektywnym rozwiązaniem może być utworzenie zapytania zawierającego wszystkie potrzebne pola i oparcie formularza lub raportu na tym zapytaniu.

Uwaga

Niezapisane zmiany rekordów w domenie nie są uwzględniane w działaniu tej funkcji. Jeśli chcesz, aby funkcja DAvg była oparta na zmienionych wartościach, musisz najpierw zapisać zmiany, klikając Zapisz rekord w obszarze Rekordy na karcie Dane , przenosząc fokus na inny rekord lub używając metody aktualizacji .

Przykład

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.

Poniższa funkcja zwraca średni koszt frachtu dla zamówień wysłanych w określonym dniu lub później. Domeną jest tabela Zamówienia. Argument kryteria ogranicza wynikowy zestaw rekordów na podstawie danego kraju/regionu i daty wysyłki. Zwróć uwagę, że słowo kluczowe AND jest zawarte w ciągu w celu rozdzielenia wielu pól w argumencie kryteria . Wszystkie rekordy uwzględniane w obliczeniach funkcji DAvg spełniają oba te kryteria.

Public Function AvgFreightCost _
    (ByVal strCountryRegion As String, _
     ByVal dteShipDate As Date) As Double
    AvgFreightCost = DAvg("[Freight]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "'AND [ShippedDate] >= #" & dteShipDate & "#")
End Function

Aby wywołać tę funkcję, użyj następującego wiersza kodu w oknie bezpośrednim:

:AvgFreightCost "UK", #1/1/96#