Bạn có thể dùng hàm DMin và DMax để xác định giá trị tối thiểu và tối đa trong một tập hợp bản ghi (một tên miền) đã xác định. Sử dụng hàm DMin và DMax 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 DMin và DMax trong điều khiển tính toán trên báo cáo để hiển thị số đơn hàng nhỏ nhất và lớn nhất cho một khách hàng cụ thể. Hoặc bạn có thể sử dụng hàm DMin trong biểu thức truy vấn để hiển thị tất cả các đơn hàng có mức chiết khấu lớn hơn mức chiết khấu tối thiểu có thể.
Cú pháp
DMin(expr, domain [, criteria] )
DMax(expr, domain [, criteria] )
Hàm DMin và DMax 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 mà bạn muốn tìm giá trị tối thiểu hoặc tối đa. Đâ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ố. |
| tiêu chí | 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 DMin hoặc DMax đượ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 tiêu chí , hàm DMin và DMax sẽ đánh giá expr đối với toàn bộ 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 DMin và DMax sẽ trả về giá trị Null. |
Chú thích
Hàm DMin và DMax trả về các giá trị tối thiểu và tối đa đáp ứng các tiêu chí. Nếu hàm expr xác định dữ liệu số, hàm DMin và DMax trả về giá trị số. Nếu expr xác định dữ liệu chuỗi, chúng sẽ trả về chuỗi đầu tiên hoặc cuối cùng theo thứ tự bảng chữ cái.
Hàm DMin và DMax bỏ qua giá trị Null trong trường được tham chiếu bởi expr. Tuy nhiên, nếu không có bản ghi nào thỏa mãn tiêu chí hoặc nếu miền không chứa bản ghi, hàm DMin và DMax sẽ trả về giá trị Null.
Dù bạn sử dụng hàm DMin hoặc DMax trong macro, mô-đun, biểu thức truy vấn hay điều khiển được tính toán, bạn 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 DMin và DMax để chỉ định tiêu chí trong hàng Tiêu chí của một truy vấn, trong biểu thức trường được tính toán trong 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 DMin và DMax hoặc hàm Min và Max trong biểu thức trường được tính toán của truy vấn tổng. Nếu bạn sử dụng hàm DMin hoặc DMax , các giá trị được đánh giá trước khi nhóm dữ liệu. Nếu bạn sử dụng hàm Min hoặc Max , dữ liệu sẽ được nhóm trước khi các giá trị trong biểu thức trường được đánh giá.
Sử dụng hàm DMin hoặc DMax trong điều khiển tính toán khi bạn cần chỉ định các tiêu chí để giới hạn phạm vi dữ liệu mà hàm đó được thực hiện. Ví dụ: để hiển thị cước phí tối đa được tính cho một đơn hàng được vận chuyển đến California, hãy đặt thuộc tính Nguồn Điều khiển của hộp văn bản theo biểu thức sau:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Nếu bạn chỉ muốn tìm giá trị tối thiểu hoặc tối đa của tất cả các bản ghi trong miền, hãy sử dụng hàm Min hoặc Max .
Bạn có thể sử dụng hàm DMin hoặc DMax trong mô-đun hoặc macro hay trong điều khiển tính toán trên biểu mẫu nếu trường bạn cần hiển thị không nằm trong nguồn bản ghi mà biểu mẫu của bạn dựa trên đó.
Mẹo
Mặc dù bạn có thể sử dụng hàm DMin hoặc DMax để tìm giá trị tối thiểu hoặc tối đa từ một trường trong bảng ngoại nhưng có thể sẽ hiệu quả hơn nếu bạn tạo một truy vấn có chứa các trường bạn cần từ cả hai bảng và tạo biểu mẫu hoặc báo cáo của bạn dựa trên truy vấn đó.
Lưu ý
Những thay đổi chưa lưu đối với bản ghi trong miền sẽ không được đưa vào khi bạn sử dụng các hàm này. Nếu bạn muốn hàm DMax hoặc DMin 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 bên dưới Bản ghi trên tab Dữ liệ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ụ
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 trả về các giá trị thấp nhất và cao nhất 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
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Trong ví dụ tiếp theo, tham đối tiêu chí bao gồm giá trị hiện tại của hộp văn bản có tên là Ngày_đặt_hàng. Hộp văn bản được liên kết với trường Ngày_Đặt_hàng trong bảng Đơn_hàng. Lưu ý rằng tham chiếu đến điều khiển không được bao gồm trong dấu ngoặc kép (") biểu thị cho các chuỗi. Điều này đảm bảo rằng mỗi lần hàm DMax được gọi, Access sẽ lấy được giá trị hiện tại từ điều khiển.
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
Trong ví dụ tiếp theo, biểu thức tiêu chí bao gồm một biến, dteOrderDate. Lưu ý rằng các ký hiệu số (#) được bao gồm trong biểu thức chuỗi, để khi các chuỗi được ghép nối, chúng sẽ bao quanh ngày tháng.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")