Hàm DSum

Áp dụng cho
Access cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Bạn có thể dùng hàm DSum để tính toán tổng của một tập hợp các giá trị trong một bộ bản ghi đã xác định (một tên miền). Dùng hàm DSum trong mô-đun Visual Basic for Applications (VBA), macro, biểu thức truy vấn hoặc điều khiển được tính toán.

Ví dụ: bạn có thể sử dụng hàm DSum trong một biểu thức trường được tính toán trong một truy vấn để tính tổng doanh số do một nhân viên cụ thể thực hiện trong một khoảng thời gian. Hoặc, bạn có thể sử dụng hàm DSum trong điều khiển tính toán để hiển thị tổng doanh số hiện có của một sản phẩm cụ thể.

Cú pháp

DSum(expr, domain [, criteria] )

Cú pháp hàm DSum có các đối số sau:

Đối số Mô tả
expr Bắt buộc. Một biểu thức xác định trường số có giá trị bạn muốn tính tổng cộng. Đây có thể là một biểu thức chuỗi xác định một trường trong một bảng hoặc truy vấn, hoặc có thể là một biểu thức thực hiện tính toán trên dữ liệu trong trường đó. Trong expr, bạn có thể đưa tên của trường vào bảng, điều khiển trên biểu mẫu, hằng số hoặc hàm. Nếu expr bao gồm một hàm, thì nó có thể là hàm dựng sẵn hoặc do người dùng xác định, nhưng không phải là hàm tổng hợp miền hoặc hàm tổng hợp SQL khác.
miền Bắt buộc. Một biểu thức chuỗi định danh tập hợp các bản ghi cấu thành miền. Đây có thể là tên bảng hoặc tên truy vấn cho truy vấn không yêu cầu tham số.
criteria Không bắt buộc. Một biểu thức chuỗi dùng để hạn chế phạm vi dữ liệu mà hàm DSum được thực hiện. Ví dụ: tiêu chí thường tương đương với mệnh đề WHERE trong biểu thức SQL, mà không có từ WHERE. Nếu bỏ qua criteria , hàm DSum sẽ đánh giá expr cho toàn bộ tên miền. Bất kỳ trường nào được đưa vào tiêu chí cũng phải là một trường trong miền; nếu không, hàm DSum sẽ trả về giá trị Null.

    

Chú thích

Nếu không có bản ghi nào thỏa mãn đối số criteria hoặc nếu miền không chứa bản ghi, hàm DSum sẽ trả về giá trị Null.

Dù bạn sử dụng hàm DSum trong macro, mô-đun, biểu thức truy vấn hay điều khiển được tính toán, bạn đều phải xây dựng tham đối criteria một cách cẩn thận để đảm bảo rằng tham đối sẽ được đánh giá chính xác.

Bạn có thể sử dụng hàm DSum để chỉ định tiêu chí trong hàng Tiêu chí của truy vấn, trong trường được tính toán trong biểu thức truy vấn hoặc trong hàng Cập nhật thành của truy vấn cập nhật.

Lưu ý

Bạn có thể sử dụng hàm DSum hoặc Sum trong biểu thức trường tính toán trong truy vấn tổng. Nếu bạn sử dụng hàm DSum , các giá trị sẽ được tính toán trước khi dữ liệu được nhóm lại. Nếu bạn sử dụng hàm Sum , dữ liệu sẽ được nhóm trước khi các giá trị trong biểu thức trường được đánh giá.

Bạn có thể muốn sử dụng hàm DSum khi cần hiển thị tổng một tập giá trị từ một trường không nằm trong nguồn bản ghi cho biểu mẫu hoặc báo cáo của bạn. Ví dụ: giả sử bạn có một biểu mẫu hiển thị thông tin về một sản phẩm cụ thể. Bạn có thể dùng hàm DSum để duy trì tổng hiện có của doanh số bán hàng của sản phẩm đó trong một điều khiển được tính toán.

Mẹo

Nếu bạn cần duy trì tổng hiện có trong một điều khiển trên báo cáo, bạn có thể sử dụng thuộc tính RunningSum của điều khiển đó nếu trường mà tính năng này dựa trên đó được tích hợp trong nguồn bản ghi của báo cáo. Sử dụng hàm DSum để duy trì tổng hiện có trên biểu mẫu.

Lưu ý

Những thay đổi chưa lưu cho bản ghi trong miền sẽ không được bao gồm khi bạn sử dụng hàm này. Nếu bạn muốn hàm DSum dựa trên các giá trị đã thay đổi, trước tiên bạn phải lưu các thay đổi bằng cách bấm vào Lưu Bản ghi trong nhóm Bản ghi trên tab Trang đầu , di chuyển tiêu điểm đến một bản ghi khác hoặc bằng cách sử dụng phương pháp Cập nhật .

Ví dụ

Sử dụng hàm DSum trong biểu thức Bạn có thể sử dụng một hàm miền (chẳng hạn như DSum) trong hàng Cập nhật thành của truy vấn cập nhật. Ví dụ: giả sử bạn muốn theo dõi doanh số hiện tại theo sản phẩm trong bảng Sản phẩm. Bạn có thể thêm một trường mới có tên là SalesSoFar vào bảng Sản phẩm và chạy truy vấn cập nhật để tính toán các giá trị chính xác và cập nhật bản ghi. Để thực hiện điều này, hãy tạo truy vấn mới dựa trên bảng Sản phẩm và trên tab Thiết kế , trong nhóm Loại Truy vấn , bấm Cập nhật. Thêm trường SalesSoFar vào lưới truy vấn, rồi nhập như sau vào hàng Cập nhật thành :

DSum("[Quantity]*[UnitPrice]", "Order Details", _
    "[ProductID] = "& [ProductID])

Khi bạn chạy truy vấn, Access sẽ tính toán tổng doanh thu cho từng sản phẩm, dựa trên thông tin từ bảng Chi tiết Đơn hàng. Tổng doanh số cho từng sản phẩm được thêm vào bảng Sản phẩm.

Sử dụng DSum trong mã VBA 

Lưu ý

Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.

Ví dụ sau đây tính tổng các giá trị từ trường Cước phí cho các đơn hàng được vận chuyển đến Vương quốc Anh. Miền là một bảng Đơn hàng. Đối số criteria hạn chế bộ bản ghi kết quả với những bản ghi mà ShipCountryRegion bằng Vương quốc Anh.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

Ví dụ tiếp theo tính tổng bằng hai tiêu chí riêng biệt. Lưu ý rằng trong biểu thức chuỗi có dấu nháy đơn (') và ký hiệu số (#) để khi các chuỗi được ghép nối, chữ chuỗi được đặt trong dấu nháy đơn và ngày được đặt trong dấu thăng.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK' AND _
    [ShippedDate] > #1-1-95#")