Ví dụ về biểu thức

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

Bài viết này cung cấp ví dụ về biểu thức trong Access. Biểu thức kết hợp toán học hoặc toán tử lô-gic, hằng số, hàm, trường bảng, điều khiển và thuộc tính thành một giá trị duy nhất. Bạn có thể sử dụng biểu thức trong Access để tính toán giá trị, xác thực dữ liệu và đặt giá trị mặc định.

Trong bài viết này

Biểu mẫu và báo cáo

Tất cả biểu thức biểu mẫu và biểu thức báo cáo

Thao tác văn bản; Giá trị trong các điều khiển khác; Thao tác ngày Đầu trang và chân trang; Đếm, tính tổng và giá trị trung bình; Các điều kiện chỉ có hai giá trị Các phép toán số học; Hàm tổng hợp SQL

Truy vấn và bộ lọc

Tất cả biểu thức truy vấn và biểu thức lọc

Thao tác văn bản; Hàm tổng hợp SQL; Khớp giá trị văn bản; Khớp các mẫu hình bản ghi với Like; Cập nhật truy vấn Các phép toán số học; Tìm dữ liệu thiếu; Khớp tiêu chí ngày; Khớp các hàng với tổng hợp SQL; Câu lệnh SQL Ngày hoạt động; Các trường được tính toán với truy vấn con; Các trường thiếu dữ liệu; Khớp các trường bằng truy vấn con

Bảng

Tất cả biểu thức bảng

Giá trị mặc định của trường Quy tắc xác thực trường

Macro

Tất cả biểu thức macro

Biểu mẫu và bào cáo

Các bảng trong mục này hiển thị các biểu thức tính toán giá trị trong một điều khiển trên biểu mẫu hoặc báo cáo. Để tạo điều khiển được tính toán, hãy nhập một biểu thức vào ControlSource thuộc tính của điều khiển thay vì vào trường bảng hoặc truy vấn.

Lưu ý

Bạn cũng có thể sử dụng biểu thức trong một biểu mẫu hoặc báo cáo khi tô sáng dữ liệu bằng định dạng có điều kiện.

Phép toán về văn bản

Các biểu & thức trong bảng sau sử dụng toán tử (dấu và) + và (dấu cộng) để kết hợp các chuỗi văn bản, sử dụng các hàm tích hợp sẵn để làm việc với văn bản hoặc tạo điều khiển được tính toán.

Biểu thức Kết quả
="N/A" Hiển thị N/A.
=[FirstName] & " " & [LastName] Hiển thị các giá trị trong trường bảng có tên là Tên và Họ. Trong ví dụ này, & toán tử được sử dụng để kết hợp trường Tên, ký tự khoảng trắng (nằm trong dấu ngoặc kép) và trường LastName.
=Left([ProductName], 1) Sử dụng hàm Left để hiển thị ký tự đầu tiên của giá trị trong một trường hoặc điều khiển có tên ProductNamelà .
=Right([AssetCode], 2) Sử dụng hàm Right để hiển thị hai ký tự cuối của giá trị trong một trường hoặc điều khiển có tên AssetCodelà .
=Trim([Address]) Sử dụng hàm Trim để hiển thị giá trị của điều khiển Address sau khi loại bỏ khoảng trắng ở đầu và cuối.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) Sử dụng hàm IIf để hiển thị giá trị của các City điều PostalCode khiển và nếu điều Region khiển là null. Nếu không, nó sẽ hiển thị các giá trị của City, và Regioncác điều PostalCode khiển, được phân tách bởi dấu cách.
=[City] & (" " + [Region]) & " " & [PostalCode] Sử dụng + toán tử và phát tán null CityPostalCodeRegion để hiển thị các giá trị của các điều khiển và nếu giá trị trong trường hoặc điều khiển là null. Nếu không, nó sẽ hiển thị các giá trị Citycủa , , Regionvà các trường PostalCode hoặc điều khiển, được phân tách bởi dấu cách. Phát tán null có nghĩa là nếu bất kỳ phần nào của biểu thức là null, toàn bộ biểu thức sẽ là null. Toán + tử hỗ trợ phát tán null nhưng toán & tử thì không.

Quay lại đầu trang

Đầu trang và chân trang

Sử dụng và Page thuộc Pages tính để hiển thị hoặc in số trang trong biểu mẫu hoặc báo cáo. Những thuộc tính này chỉ sẵn dùng trong quá trình in hoặc Xem trước khi In, vì vậy chúng không xuất hiện trên bảng thuộc tính của biểu mẫu hoặc báo cáo. Thông thường, bạn đặt một hộp văn bản vào phần đầu trang hoặc chân trang của biểu mẫu hoặc báo cáo, rồi sử dụng biểu thức tương tự như biểu thức được hiển thị trong bảng sau.

Để biết thêm thông tin về việc sử dụng đầu trang và chân trang trong biểu mẫu và báo cáo, xem bài viết Chèn số trang vào biểu mẫu hoặc báo cáo.

Biểu thức Kết quả
=[Page] 1
="Page " & [Page] Trang 1
="Page " & [Page] & " of " & [Pages] Trang 1 trên 3
=[Page] & " of " & [Pages] & " Pages" 1 trên 3 Trang
=[Page] & "/" & [Pages] & " Pages" 1/3 Trang
=[Country/region] & " - " & [Page] Vương quốc Anh - 1
=Format([Page], "000") 001
="Printed on: " & Date() Ngày in: 31/12/2017

Quay lại đầu trang

Phép toán số học

Bạn có thể sử dụng biểu thức để cộng, trừ, nhân và chia các giá trị trong hai hoặc nhiều trường hay điều khiển. Bạn cũng có thể sử dụng biểu thức để thực hiện các phương trình số học với ngày. Ví dụ: giả sử bạn có một trường bảng Ngày/Giờ có tên là Ngày_bắt_buộc. Trong trường hoặc trong điều khiển gắn với trường, =[RequiredDate] - 2 biểu thức trả về giá trị ngày/giờ bằng hai ngày trước các giá trị hiện tại trong trường Ngày_bắt_buộc.

Biểu thức Kết quả
=[Subtotal]+[Freight] Tổng các giá trị trong các trường hoặc điều khiển Tổng_phụ và Cước_phí.
=[RequiredDate]-[ShippedDate] Khoảng giữa các giá trị ngày trong trường hoặc điều khiển Ngày_bắt_buộc và Ngày_vận_chuyển.
=[Price]*1.06 Tích của giá trị trong trường hoặc điều khiển Giá và 1,06 (thêm 6 phần trăm vào giá trị Giá).
=[Quantity]*[Price] Tích của các giá trị trong trường hoặc điều khiển Số_lượng và Giá.
=[EmployeeTotal]/[CountryRegionTotal] Thương của các giá trị trong trường hoặc điều khiển Tổng_nhân_viên và Tổng_quốc_gia_vùng_lãnh_thổ.

Lưu ý

Khi bạn sử dụng toán tử số học (+, -, hoặc */) trong một biểu thức và một trong các điều khiển là null, kết quả của toàn bộ biểu thức là null. Điều này được gọi là phát tán null. Nếu điều khiển có thể có giá trị null, bạn có thể tránh phát tán null bằng cách sử dụng hàm Nz để chuyển đổi giá trị null thành không. Ví dụ: sử dụng =Nz([Subtotal])+Nz([Freight]).

Quay lại đầu trang

Giá trị trong các điều khiển khác

Đôi khi, bạn cần một giá trị tồn tại ở nơi khác, chẳng hạn như trong một trường hoặc điều khiển trên một biểu mẫu hoặc báo cáo khác. Bạn có thể sử dụng biểu thức để trả về giá trị từ một trường hoặc điều khiển khác.

Bảng sau đây liệt kê các ví dụ biểu thức mà bạn có thể sử dụng ở các điều khiển được tính toán trên biểu mẫu.

Biểu thức Kết quả
=Forms![Orders]![OrderID] Giá trị của điều khiển ID_Đơn_hàng trên biểu mẫu Đơn_hàng.
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] Giá trị của điều khiển Tổng_phụ_Đơn_hàng trên biểu mẫu con có tên là Biểu mẫu con Đơn hàng trên biểu mẫu Đơn_hàng.
=Forms![Orders]![Orders Subform]![ProductID].Column(2) Giá trị của cột thứ ba trong ID_Sản_phẩm, một hộp danh sách có nhiều cột trên biểu mẫu con có tên là Biểu mẫu con Đơn hàng trên biểu mẫu Đơn hàng. (Lưu ý rằng 0 tham chiếu tới cột đầu tiên, 1 tham chiếu tới cột thứ hai, v.v..)
=Forms![Orders]![Orders Subform]![Price] * 1.06 Tích của giá trị trên điều khiển Giá trên biểu mẫu con có tên là Biểu mẫu con Đơn hàng trên biểu mẫu Đơn hàng và 1,06 (thêm 6 phần trăm vào giá trị của điều khiển Giá).
=Parent![OrderID] Giá trị của điều khiển ID_Đơn_hàng trên biểu mẫu chính hay biểu mẫu cha mẹ của biểu mẫu con hiện tại.

Các biểu thức trong bảng sau đây thể hiện một số cách sử dụng các điều khiển được tính toán trên báo cáo. Các biểu thức tham chiếu Thuộc tính Report.

Biểu thức Kết quả
=Report![Invoice]![OrderID] Giá trị của một điều khiển có tên "ID_Đơn_hàng" trong báo cáo có tên là "Hóa_đơn".
=Report![Summary]![Summary Subreport]![SalesTotal] Giá trị của điều khiển Tổng_Doanh_số trên báo cáo con có tên Báo cáo con Tóm tắt trên Báo cáo Tóm tắt.
=Parent![OrderID] Giá trị của điều khiển ID_đơn_hàng trên báo cáo chính hoặc báo cáo mẹ của báo cáo con hiện tại.

Quay lại đầu trang

Các giá trị đếm, tổng và trung bình

Bạn có thể sử dụng một loại hàm gọi là hàm tổng hợp để tính toán giá trị cho một hay nhiều trường hoặc điều khiển. Ví dụ: bạn có thể tính tổng nhóm cho chân nhóm trong báo cáo hay tổng phụ đơn hàng cho các mục dòng trên biểu mẫu. Bạn cũng có thể đếm số mục trong một hay nhiều trường hoặc tính toán giá trị trung bình.

Các biểu thức trong bảng sau thể hiện một số cách sử dụng hàm, chẳng hạn như Avg, Count và Sum.

Biểu thức Mô tả
=Avg([Freight]) Sử dụng hàm Avg để hiển thị giá trị trung bình của các giá trị trong trường bảng hoặc điều khiển có tên "Cước_phí".
=Count([OrderID]) Sử dụng hàm Count để hiển thị số bản ghi trong điều khiển ID_đơn_hàng.
=Sum([Sales]) Sử dụng hàm Sum để hiển thị tổng các giá trị của điều khiển Doanh_số.
=Sum([Quantity]*[Price]) Sử dụng hàm Sum để hiển thị tổng của tích các giá trị trong điều khiển Số_lượng và Giá.
=[Sales]/Sum([Sales])*100 Hiển thị tỷ lệ phần trăm doanh số bằng cách chia giá trị của điều Sales khiển cho tổng tất cả các giá trị trong điều Sales khiển. Nếu bạn đặt thuộc Format tính của điều khiển thành Percent, đừng đưa vào *100 biểu thức.

Để biết thêm thông tin về cách sử dụng hàm tổng hợp và cộng tổng các giá trị trong trường cũng như cột, xem các bài viết Tính tổng dữ liệu bằng cách sử dụng truy vấn, Đếm dữ liệu bằng cách sử dụng truy vấn, Hiển thị tổng theo cột trong một biểu dữ liệu bằng cách sử dụng hàng TổngHiển thị tổng theo cột trong một biểu dữ liệu.

Quay lại đầu trang

Hàm tổng hợp SQL

Bạn sử dụng loại hàm gọi là hàm tổng hợp SQL hoặc miền khi cần tính tổng hoặc đếm giá trị có chọn lọc. Một "miền" bao gồm một hay nhiều trường trong một hay nhiều bảng hoặc một hay nhiều điều khiển trên một hay nhiều biểu mẫu hoặc báo cáo. Ví dụ: bạn có thể khớp các giá trị trong một trường bảng với các giá trị trong một điều khiển trên biểu mẫu.

Biểu thức Mô tả
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) Sử dụng hàm DLookup để trả về giá trị của trường Tên_liên_hệ trong bảng Nhà_cung_cấp, trong đó, giá trị của trường ID_nhà_cung cấp trong bảng khớp với giá trị của điều khiển ID_nhà_cung_cấp trên biểu mẫu Nhà_cung_cấp.
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) Sử dụng hàm DLookup để trả về giá trị của trường Tên_liên_hệ trong bảng Nhà_cung_cấp, trong đó giá trị của trường ID_nhà_cung_cấp trong bảng khớp với giá trị của điều khiển ID_nhà_cung_cấp trên biểu mẫu Nhà cung cấp mới.
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") Sử dụng hàm DSum để trả về tổng cộng các giá trị trong trường Số_tiền_đơn_hàng ở bảng Đơn_hàng, trong đó, ID_khách_hàng là RATTC.
=DCount("[Retired]","[Assets]","[Retired]=Yes") Sử dụng hàm DCount để trả về số lượng giá trị Có trong trường Đã_ngừng_sử_dụng (trường Có/Không) trong bảng Tài_sản.

Quay lại đầu trang

Phép toán về ngày

Theo dõi ngày và giờ là một hoạt động cơ sở dữ liệu cơ bản. Ví dụ: bạn có thể tính toán số ngày đã trôi qua kể từ ngày lập hóa đơn để tính thời gian cho khoản phải thu của mình. Bạn có thể định dạng ngày và giờ theo nhiều cách, như được thể hiện trong bảng sau đây.

Biểu thức Mô tả
=Date() Sử dụng hàm Date mm-dd-yyđể hiển thị ngày hiện tại ở dạng , mm trong đó tháng (từ 1 đến 12), dd là ngày (từ 1 đến 31) yy và là hai chữ số cuối của năm (từ 1980 đến 2099).
=Format(Now(), "ww") Sử dụng hàm Format để hiển thị số tuần trong năm cho ngày hiện tại, ww trong đó đại diện cho các tuần từ 1 đến 53.
=DatePart("yyyy", [OrderDate]) Sử dụng hàm DatePart để hiển thị năm có bốn chữ số cho giá trị trong điều khiển Ngày_đặt_hàng.
=DateAdd("y", -10, [PromisedDate]) Sử dụng hàm DateAdd để hiển thị ngày trước giá trị của điều khiển Ngày_hẹn 10 ngày.
=DateDiff("d", [OrderDate], [ShippedDate]) Sử dụng hàm DateDiff để hiển thị số ngày cách biệt giữa các giá trị của điều khiển Ngày_đặt_hàng và Ngày_vận_chuyển.
=[InvoiceDate] + 30 Sử dụng các phép toán số học về ngày để tính toán ngày sau ngày trong trường hay điều khiển Ngày_xuất_hóa_đơn 30 ngày.

Quay lại đầu trang

Các điều kiện chỉ có hai giá trị

Các biểu thức ví dụ trong bảng sau đây sử dụng hàm IIf để trả về một trong hai giá trị khả thi. Bạn truyền ba tham đối của hàm IIf: Tham đối thứ nhất là một biểu thức phải trả về một hoặc True một giá False trị. Tham đối thứ hai là giá trị để trả về nếu biểu thức đó là đúng và tham đối thứ ba là giá trị để trả về nếu biểu thức đó là sai.

Biểu thức Mô tả
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") Sử dụng hàm IIf (Immediate If) để hiển thị thông báo "Đã xác nhận Đơn hàng" Yesnếu giá trị của điều khiển Đã xác nhận là ; nếu không, hàm sẽ hiển thị thông báo "Order Not Confirmed."
=IIf(IsNull([Country/region]), " ", [Country]) Sử dụng hàm IIf và IsNull để hiển thị một chuỗi trống nếu giá trị của điều khiển Quốc_gia/vùng_lãnh_thổ là null; nếu không, hàm sẽ hiển thị giá trị của điều khiển Quốc_gia/vùng_lãnh_thổ.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) Sử dụng hàm IIf và IsNull để hiển thị các giá trị của các điều khiển Thành_phố và Mã_bưu_điện nếu giá trị trong điều khiển Khu_vực là null; nếu không, hàm sẽ hiển thị các giá trị của các trường hoặc điều khiển Thành_phố, Khu_vực và Mã_bưu_điện.
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) Sử dụng hàm IIf và IsNull để hiển thị thông báo "Kiểm tra ngày thiếu" nếu kết quả của Ngày_vận_chuyển trừ Ngày_bắt_buộc là null; nếu không, hàm sẽ hiển thị khoảng giữa các giá trị ngày của điều khiển Ngày_bắt_buộc và Ngày_vận_chuyển.

Quay lại đầu trang

Truy vấn và bộ lọc

Mục này bao gồm các ví dụ về biểu thức mà bạn có thể sử dụng để tạo một trường được tính toán trong truy vấn hoặc để cung cấp các tiêu chí cho truy vấn. Trường được tính toán là một cột trong một truy vấn có kết quả từ một biểu thức. Ví dụ: bạn có thể tính toán một giá trị, kết hợp các giá trị văn bản như là họ và tên hoặc định dạng một phần của một ngày nào đó.

Bạn sử dụng tiêu chí trong truy vấn để giới hạn các bản ghi mà mình làm việc cùng. Ví dụ: bạn có Between thể sử dụng toán tử để cung cấp ngày bắt đầu và kết thúc, đồng thời giới hạn kết quả của truy vấn đối với các đơn hàng đã được vận chuyển giữa các ngày đó.

Các phần sau đây cung cấp ví dụ về biểu thức để sử dụng trong truy vấn.

Các thao tác văn bản trong truy vấn

Các biểu &+ thức trong bảng sau sử dụng các toán tử và để kết hợp các chuỗi văn bản, sử dụng các hàm tích hợp sẵn để thao tác trên một chuỗi văn bản hoặc nếu không thì thao tác trên văn bản để tạo trường được tính toán.

Biểu thức Mô tả
FullName: [FirstName] & " " & [LastName] Tạo một trường có tên là Họ_Tên hiển thị các giá trị trong các trường Tên và Họ, được phân tách bởi dấu cách.
Address2: [City] & " " & [Region] & " " & [PostalCode] Tạo trường có tên là Địa_chỉ_2 hiển thị các giá trị trong trường Thành_phố, Khu_vực và Mã_bưu_điện, được phân tách bằng dấu cách.
ProductInitial: Left([ProductName], 1) Tạo một trường có tên là Chữ_viết_tắt_sản_phẩm, rồi sử dụng hàm Left để hiển thị, trong trường Chữ_viết_tắt_sản_phẩm, ký tự đầu tiên của giá trị nằm ở trường Tên_sản_phẩm.
TypeCode: Right([AssetCode], 2) Tạo một trường có tên là Mã_loại, rồi sử dụng hàm Right để hiển thị hai ký tự cuối của các giá trị trong trường Mã_tài_sản.
AreaCode: Mid([Phone],2,3) Tạo một trường có tên là Mã_khu_vực, rồi sử dụng hàm Mid để hiển thị ba ký tự bắt đầu từ ký tự thứ hai của giá trị trong trường Điện_thoại.
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 Đặt tên trường được tính toán là Giá_mở_rộng và sử dụng hàm CCur để tính toán tổng các mục theo dòng có áp dụng giảm giá.

Quay lại đầu trang

Phép toán số học trong truy vấn

Bạn có thể sử dụng biểu thức để cộng, trừ, nhân và chia các giá trị trong hai hoặc nhiều trường hay điều khiển. Bạn cũng có thể thực hiện các phương trình số học với ngày. Ví dụ: giả sử bạn có trường Ngày/Giờ có tên là Ngày_bắt_buộc. Biểu thức =[RequiredDate] - 2 trả về giá trị Ngày/Giờ bằng hai ngày trước giá trị trong trường Ngày_bắt_buộc.

Biểu thức Mô tả
PrimeFreight: [Freight] * 1.1 Tạo một trường có tên là Cước_phí_Chính, rồi hiển thị cước phí cộng thêm 10 phần trăm trong trường đó.
OrderAmount: [Quantity] * [UnitPrice] Tạo một trường có tên là Số_tiền_Đơn_hàng, rồi hiển thị tích của các giá trị trong các trường Số_lượng và Đơn_giá.
LeadTime: [RequiredDate] - [ShippedDate] Tạo một trường có tên là Thời_gian_Thực_hiện, rồi hiển thị chênh lệch giữa các giá trị trong các trường Ngày_Bắt_buộc và Ngày_Vận_chuyển.
TotalStock: [UnitsInStock]+[UnitsOnOrder] Tạo một trường có tên là Tổng_Kho, rồi hiển thị tổng các giá trị trong các trường Hàng_Trong_Kho và Hàng_Trên_Đơn_hàng.
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Tạo một trường có tên là FreightPercentage, rồi hiển thị tỷ lệ phần trăm cước phí trong mỗi tổng phụ. Biểu thức này sử Sum dụng hàm để tính Freight tổng các giá trị trong trường, rồi chia các tổng này cho tổng các giá trị trong Subtotal trường. Để sử dụng biểu thức này, hãy chuyển đổi truy vấn chọn của bạn thành truy vấn Tổng. Bạn cần sử dụng hàng Tổng trong lưới thiết kế và đặt ô Tổng cho trường này thành Expression. Để biết thêm thông tin về cách tạo truy vấn Tổng, hãy xem mục Tính tổng dữ liệu bằng cách sử dụng truy vấn. Nếu bạn đặt thuộc Format tính của trường thành Percent, thì không bao gồm *100.

Để biết thêm thông tin về cách sử dụng hàm tổng hợp và cộng tổng các giá trị trong trường cũng như cột, xem các bài viết Tính tổng dữ liệu bằng cách sử dụng truy vấn, Đếm dữ liệu bằng cách sử dụng truy vấn, Hiển thị tổng theo cột trong một biểu dữ liệu bằng cách sử dụng hàng TổngHiển thị tổng theo cột trong một biểu dữ liệu.

Quay lại đầu trang

Thao tác ngày trong truy vấn

Gần như mọi cơ sở dữ liệu đều lưu trữ và theo dõi ngày giờ. Bạn làm việc với ngày và giờ trong Access bằng cách đặt trường ngày và giờ trong bảng của bạn thành loại dữ liệu Ngày/Giờ. Access có thể thực hiện tính toán số học với ngày; ví dụ: bạn có thể tính toán số ngày đã trôi qua kể từ ngày lập hóa đơn để tính thời gian cho khoản phải thu của mình.

Biểu thức Mô tả
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) Tạo một trường có tên là Thời_gian_trễ, rồi sử dụng hàm DateDiff để hiển thị số ngày từ ngày đặt hàng đến ngày vận chuyển.
YearHired: DatePart("yyyy",[HireDate]) Tạo trường có tên là Năm_thuê, rồi sử dụng hàm DatePart để hiển thị năm mà mỗi nhân viên được thuê.
MinusThirty: Date( )- 30 Tạo trường có tên là Trừ_ba_mươi, rồi sử dụng hàm Date để hiển thị ngày trước ngày hiện tại 30 ngày.

Quay lại đầu trang

Các hàm tổng hợp SQL trong truy vấn

Các biểu thức trong bảng sau sử dụng các hàm SQL tổng hợp hoặc tóm tắt dữ liệu. Bạn thường thấy các hàm như Sum, , Countvà được gọi Avg là hàm tổng hợp.

Ngoài các hàm tổng hợp, Access còn cung cấp các hàm tổng hợp miền cho phép bạn tính tổng hoặc đếm giá trị có chọn lựa. Ví dụ: bạn chỉ có thể đếm các giá trị trong một phạm vi nhất định hoặc tra cứu giá trị từ một bảng khác. Hàm tổng hợp miền bao gồm DSum, DCountDAvg.

Để tính tổng, bạn thường cần tạo một truy vấn Tổng cộng. Ví dụ: để tóm tắt theo nhóm, hãy sử dụng truy vấn Tổng cộng. Để bật truy vấn Tổng cộng từ lưới thiết kế truy vấn, hãy chọn Tổng cộng trên menu Dạng xem.

Biểu thức Mô tả
RowCount: Count(*) Tạo trường có tên là Đếm_hàng, rồi sử dụng hàm Count để đếm số lượng bản ghi trong truy vấn, bao gồm các bản ghi có trường null (trống).
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Tạo một trường có tên FreightPercentagelà , FreightSubtotal rồi tính toán tỷ lệ phần trăm cước phí trong mỗi tổng phụ bằng cách chia tổng các giá trị trong trường cho tổng các giá trị trong trường đó. Ví dụ này sử dụng Sum hàm. Bạn phải sử dụng biểu thức này với một truy vấn Tổng cộng. Nếu bạn đặt thuộc Format tính của trường thành Percent, thì không bao gồm *100. Để biết thêm thông tin về cách tạo truy vấn Tổng, hãy xem mục Tính tổng dữ liệu bằng cách sử dụng truy vấn.
AverageFreight: DAvg("[Freight]", "[Orders]") Tạo một trường có tên là Cước_phí_trung_bình, rồi sử dụng hàm DAvg để tính toán cước phí trung bình trên mọi đơn hàng được kết hợp trong một truy vấn Tổng cộng.

Quay lại đầu trang

Trường thiếu dữ liệu

Biểu thức được hiển thị ở đây hoạt động với các trường có khả năng bị thiếu thông tin, như là những trường chứa các giá trị null (không rõ hoặc không xác định). Bạn thường gặp phải các giá trị null, như là một mức giá không xác định cho một sản phẩm mới hoặc một giá trị mà đồng nghiệp đã quên thêm vào đơn hàng. Khả năng tìm và xử lý các giá trị null có thể là một phần quan trọng trong các thao tác cơ sở dữ liệu và các biểu thức ở bảng sau đây thể hiện một số cách thức phổ biến để xử lý các giá trị null.

Biểu thức Mô tả
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) Tạo một trường có tên là Quốc_gia_vùng_lãnh_thổ_hiện_tại, rồi sử dụng hàm IIf và IsNull để hiển thị một chuỗi trống trong trường đó khi trường Quốc_gia_vùng_lãnh_thổ có giá trị null; nếu không thì hàm hiển thị nội dung của trường Quốc_gia_vùng_lãnh_thổ.
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) Tạo một trường có tên là Thời_gian_thực_hiện, rồi sử dụng hàm IIf và IsNull để hiển thị thông báo "Kiểm tra ngày thiếu" nếu giá trị trong trường Ngày_bắt_buộc hoặc trường Ngày_vận_chuyển là null; nếu không thì hàm sẽ hiển thị chênh lệch ngày.
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) Tạo một trường có tên là Doanh_số_trong_sáu_tháng, rồi hiển thị tổng cộng của các giá trị trong các trường Doanh_số_Q1 và Doanh_số_Q2 bằng cách sử dụng hàm Nz trước để chuyển đổi mọi giá trị null thành số không.

Quay lại đầu trang

Trường được tính toán có truy vấn con

Bạn có thể sử dụng truy vấn lồng, còn được gọi là truy vấn con, để tạo trường được tính toán. Biểu thức trong bảng sau đây là một ví dụ về trường được tính toán có kết quả từ truy vấn con.

Biểu thức Mô tả
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) Tạo một trường có tên là Danh_mục, rồi hiển thị Tên_danh_mục, nếu ID_danh_mục từ bảng Các_danh_mục giống với ID_danh_mục từ bảng Sản_phẩm.

Quay lại đầu trang

Khớp giá trị văn bản

Các biểu thức mẫu trong bảng này thể hiện tiêu chí khớp với toàn bộ hoặc một phần giá trị văn bản.

Trường Biểu thức Mô tả
Thành_phố_vận_chuyển "London" Hiển thị các đơn hàng được vận chuyển tới London.
Thành_phố_Vận_chuyển "London" Or "Hedge End" Sử dụng toán Or tử để hiển thị các đơn hàng được vận chuyển đến London hoặc Hedge End.
Quốc_gia_vùng_lãnh_thổ_nơi_vận_chuyển In("Canada", "UK") Sử dụng toán In tử để hiển thị các đơn hàng được vận chuyển tới Canada hoặc Vương quốc Anh.
Quốc_gia_vùng_lãnh_thổ_nơi_vận_chuyển Not "USA" Sử dụng nhà cung Not cấp để hiển thị các đơn hàng được vận chuyển tới các quốc gia/khu vực khác ngoài Hoa Kỳ.
Tên_sản_phẩm Not Like "C*" Sử dụng toán Not tử và ký tự * đại diện để hiển thị các sản phẩm có tên không bắt đầu bằng C.
Tên_công_ty >="N" Hiển thị các đơn hàng được vận chuyển tới công ty có tên bắt đầu bằng các chữ N cái thông qua Z.
Mã_sản_phẩm Right([ProductCode], 2)="99" Sử dụng hàm Right để hiển thị các đơn hàng có giá trị Mã_sản_phẩm kết thúc bằng 99.
Tên_khách_nhận_hàng_vận_chuyển Like "S*" Hiển thị các đơn hàng được vận chuyển tới khách hàng có tên bắt đầu bằng chữ cái S.

Quay lại đầu trang

Khớp tiêu chí ngày

Các biểu thức trong bảng sau thể hiện cách sử dụng ngày và các hàm liên quan trong biểu thức tiêu chí. Để biết thêm thông tin về cách nhập và sử dụng giá trị ngày, xem bài viết Định dạng trường ngày và giờ.

Trường Biểu thức Mô tả
Ngày_vận_chuyển #2/2/2017# Hiển thị đơn hàng được vận chuyển vào 02/02/2017.
Ngày_vận_chuyển Date() Hiển thị các đơn hàng được vận chuyển hôm nay.
Ngày_bắt_buộc Between Date( ) And DateAdd("m", 3, Date( )) Sử dụng Between...And toán tử và các hàm DateAdd và Date để hiển thị các đơn hàng bắt buộc từ ngày hôm nay đến ba tháng kể từ ngày hôm nay.
Ngày_đặt_hàng < Date( ) - 30 Sử dụng hàm Date để hiển thị các đơn hàng đã đặt hơn 30 ngày.
Ngày_đặt_hàng Year([OrderDate])=2017 Sử dụng hàm Year để hiển thị các đơn hàng có ngày đặt hàng trong năm 2017.
Ngày_đặt_hàng DatePart("q", [OrderDate])=4 Sử dụng hàm DatePart để hiển thị các đơn hàng trong quý bốn theo lịch.
Ngày_đặt_hàng DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 Sử dụng các hàm DateSerial, Year và Month để hiển thị các đơn hàng trong ngày cuối cùng của mỗi tháng.
Ngày_đặt_hàng Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) Sử dụng các hàm Year và Month, cùng toán tử And để hiển thị các đơn hàng trong năm và tháng hiện tại.
Ngày_vận_chuyển Between #1/5/2017# And #1/10/2017# Sử dụng toán Between...Andtử để hiển thị các đơn hàng được vận chuyển không sớm hơn 05/01/2017 và không muộn hơn 10/01/2017.
Ngày_bắt_buộc Between Date( ) And DateAdd("M", 3, Date( )) Sử dụng toán Between...And tử để hiển thị các đơn hàng bắt buộc từ ngày hôm nay đến ba tháng kể từ ngày hôm nay.
Ngày_sinh Month([BirthDate])=Month(Date()) Sử dụng các hàm Month và Date để hiển thị nhân viên có ngày sinh trong tháng này.

Quay lại đầu trang

Tìm dữ liệu thiếu

Các biểu thức trong bảng sau đây hoạt động cùng với các trường có thông tin có thể bị thiếu — chúng có thể có giá trị null hoặc chuỗi độ dài bằng 0. Giá trị null thể hiện thiếu thông tin; giá trị null không thể hiện giá trị bằng không hoặc bất cứ giá trị nào khác. Access hỗ trợ ý tưởng về việc thiếu thông tin này vì khái niệm này rất quan trọng đối với tính toàn vẹn của cơ sở dữ liệu. Trên thực tế, thông tin thường bị thiếu, cho dù chỉ là tạm thời (ví dụ: giá vẫn chưa được xác định cho sản phẩm mới). Do đó, một cơ sở dữ liệu mô phỏng thực thể trong thế giới thực, như doanh nghiệp, phải có khả năng ghi thông tin dưới dạng bị thiếu. Bạn có thể sử dụng hàm IsNull để xác định xem liệu trường hoặc điều khiển có giá trị null hay không và bạn có thể sử dụng hàm Nz để chuyển đổi một giá trị null thành không.

Trường Biểu thức Mô tả
Khu_vực_vận_chuyển Is Null Hiển thị các đơn hàng cho khách hàng có trường Khu_vực_vận_chuyển là null (thiếu).
Khu_vực_vận_chuyển Is Not Null Hiển thị các đơn hàng cho khách hàng có trường Khu_vực_vận_chuyển có chứa giá trị.
Fax "" Hiển thị các đơn hàng cho khách hàng không có máy fax, được thể hiện bằng giá trị chuỗi độ dài bằng 0 trong trường Fax thay vì một giá trị null (thiếu).

Quay lại đầu trang

Khớp các mẫu hình bản ghi bằng Like

Toán Like tử Like cung cấp mức độ linh hoạt cao khi bạn đang tìm cách khớp các hàng theo mẫu vì bạn có thể sử dụng với ký tự đại diện và xác định mẫu để Access khớp. Ví dụ: * ký tự đại diện (dấu sao) khớp với một chuỗi ký tự thuộc bất kỳ kiểu nào và giúp dễ dàng tìm thấy tất cả các tên bắt đầu bằng một chữ cái. Ví dụ: bạn sử dụng biểu thức Like "S*" để tìm tất cả các tên bắt đầu bằng chữ S. Để biết thêm thông tin, hãy xem bài viết Toán tử Like.

Trường Biểu thức Mô tả
Tên_khách_nhận_hàng_vận_chuyển Like "S*" Tìm tất cả các bản ghi trong trường Tên_khách_nhận_hàng_vận_chuyển bắt đầu bằng chữ S.
Tên_khách_nhận_hàng_vận_chuyển Like "*Imports" Tìm tất cả các bản ghi trong trường Tên_khách_nhận_hàng_vận_chuyển kết thúc bằng từ "Nhập".
Tên_khách_nhận_hàng_vận_chuyển Like "[A-D]*" Tìm toàn bộ bản ghi trong trường Tên_khách_nhận_hàng_vận_chuyển bắt đầu bằng chữ A, B, C hoặc D.
Tên_khách_nhận_hàng_vận_chuyển Like "*ar*" Tìm toàn bộ bản ghi trong trường Tên_khách_nhận_hàng_vận_chuyển có trình tự chữ cái "ar".
Tên_khách_nhận_hàng_vận_chuyển Like "Maison Dewe?" Tìm tất cả các bản ghi trong trường Tên_Vận_chuyển bao gồm "Maison" ở phần đầu của giá trị và chuỗi năm chữ cái trong đó bốn chữ cái đầu là "Dewe" và chữ cái cuối cùng không xác định.
Tên_khách_nhận_hàng_vận_chuyển Not Like "A*" Tìm toàn bộ bản ghi trong trường Tên_khách_nhận_hàng_vận_chuyển không bắt đầu bằng chữ A.

Quay lại đầu trang

Khớp hàng bằng hàm tổng hợp SQL

Bạn sử dụng hàm tổng hợp SQL hoặc miền khi cần tính tổng, đếm hoặc tính giá trị có chọn lọc. Ví dụ: bạn có thể chỉ muốn đếm những giá trị nằm trong một phạm vi nhất định hoặc được xác định là Có. Đôi khi, bạn có thể cần tìm kiếm giá trị từ một bảng khác để bạn có thể hiển thị giá trị đó. Biểu thức mẫu trong bảng sau đây sử dụng các hàm tổng hợp miền để thực hiện một phép tính trên một tập hợp các giá trị và sử dụng kết quả làm tiêu chí truy vấn.

Trường Biểu thức Mô tả
Cước_phí > (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) Sử dụng hàm DStDev và DAvg để hiển thị toàn bộ đơn hàng có cước phí cao hơn mức trung bình cộng với độ lệch chuẩn của cước phí.
Số_lượng > DAvg("[Quantity]", "[Order Details]") Sử dụng hàm DAvg để hiển thị các sản phẩm được đặt hàng với số lượng lớn hơn số lượng đơn hàng trung bình.

Quay lại đầu trang

Khớp trường bằng truy vấn con

Bạn sử dụng một truy vấn con, còn gọi là truy vấn lồng, nhằm tính toán giá trị để sử dụng làm tiêu chí. Biểu thức mẫu trong bảng sau đây khớp với các hàng dựa trên kết quả do một truy vấn con trả về.

Trường Biểu thức Hiển thị
Đơn_giá (SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") Các sản phẩm có giá giống với giá của Siro hạt hồi.
Đơn_Giá >(SELECT AVG([UnitPrice]) FROM [Products]) Các sản phẩm có đơn giá trên trung bình.
Tiền_lương > ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) Tiền lương của mỗi đại diện bán hàng có mức lương cao hơn tiền lương của tất cả nhân viên có chức danh "Quản lý" hay "Phó Chủ tịch".
Tổng_Đơn_hàng: [Đơn_Giá] * [Số_lượng] > (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) Các đơn hàng có tổng cộng cao hơn giá trị đơn hàng trung bình.

Quay lại đầu trang

Truy vấn cập nhật

Sử dụng truy vấn cập nhật để sửa đổi dữ liệu trong một hoặc nhiều trường hiện có trong cơ sở dữ liệu. Ví dụ: bạn có thể thay thế giá trị hoặc xóa hoàn toàn giá trị. Bảng này trình bày một số cách sử dụng biểu thức trong truy vấn cập nhật. Sử dụng các biểu thức này trong Update To hàng trong lưới thiết kế truy vấn cho trường mà bạn muốn cập nhật.

Để biết thêm thông tin về việc tạo truy vấn cập nhật, xem bài viết Tạo và chạy truy vấn cập nhật.

Trường Biểu thức Kết quả
Tiêu đề "Salesperson" Thay đổi giá trị văn bản thành Nhân viên bán hàng.
Bắt_đầu_dự_án #8/10/17# Thay đổi giá trị ngày thành 10/08/2017.
Đã_ngừng_sử_dụng Yes Thay đổi một giá trị Không trong trường Có/Không thành Có.
Số_Bộ_phận "PN" & [PartNumber] Thêm SBP vào đầu mỗi số bộ phận được chỉ định.
Tổng_Mục_Dòng [UnitPrice] * [Quantity] Tính tích của Đơn_Giá và Số_lượng.
Cước_phí [Freight] * 1.5 Tăng cước phí thêm 50 phần trăm.
Doanh_số DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) Nếu giá trị ID_sản_phẩm trong bảng hiện tại khớp với giá trị của ID_sản_phẩm trong bảng Chi tiết đơn hàng, cập nhật tổng doanh thu dựa trên tích của Số_lượng và Đơn_giá.
Mã_bưu_điện_nơi_vận_chuyển Right([ShipPostalCode], 5) Cắt bớt các ký tự ngoài cùng bên trái, để lại năm ký tự ngoài cùng bên phải.
Đơn_giá Nz([UnitPrice]) Thay đổi một giá trị null (không rõ hoặc không xác định) thành số không (0) trong trường Đơn_giá.

Quay lại đầu trang

Câu lệnh SQL

Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ truy vấn mà Access sử dụng. Mọi truy vấn bạn tạo trong dạng xem Thiết kế Truy vấn cũng có thể được thể hiện bằng cách sử dụng SQL. Để xem câu lệnh SQL cho bất kỳ truy vấn nào, hãy chọn Dạng xem SQL trên menu Dạng xem. Bảng sau đây hiển thị các câu lệnh SQL mẫu sử dụng biểu thức.

Câu lệnh SQL sử dụng biểu thức Kết quả
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; Hiển thị các giá trị trong các trường Tên và Họ cho những nhân viên có họ là Danseglio.
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; Hiển thị các giá trị trong các trường ID_Sản_phẩm và Tên_Sản_phẩm trong bảng Sản_phẩm cho các bản ghi, trong đó giá trị ID_Danh_mục khớp với giá trị ID_Danh_mục được chỉ định trong biểu mẫu Sản_phẩm_Mới đang mở.
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; Tính giá mở rộng trung bình cho các đơn hàng có giá trị trong trường Giá_Mở_rộng là hơn 1000 và hiển thị giá trị đó trong một trường có tên là Giá Mở rộng Trung bình.
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; Trong một trường có tên ID_số_lượng_sản_phẩm, hiển thị tổng số lượng sản phẩm cho các danh mục có trên 10 sản phẩm.

Quay lại đầu trang

Biểu thức bảng

Hai cách sử dụng biểu thức trong bảng phổ biến nhất là gán một giá trị mặc định và tạo một quy tắc xác thực.

Giá trị mặc định của trường

Khi thiết kế cơ sở dữ liệu, bạn có thể muốn gán một giá trị mặc định cho trường hoặc điều khiển. Access sau đó sẽ cung cấp giá trị đó khi một bản ghi mới có chứa trường được tạo hoặc khi một đối tượng chứa điều khiển được tạo ra. Các biểu thức trong bảng sau đây hiển thị các giá trị mặc định mẫu cho một trường hoặc điều khiển. Nếu điều khiển được liên kết với một trường trong bảng và trường đó có giá trị mặc định thì giá trị mặc định của điều khiển sẽ được ưu tiên.

Trường Biểu thức Giá trị trường mặc định
Số_lượng 1 1
Khu vực "MT" MT
Khu_vực "New York, N.Y." New York, N.Y. (Lưu ý rằng bạn phải đặt giá trị trong dấu ngoặc kép nếu giá trị đó có chứa dấu chấm câu.)
Fax "" Một chuỗi độ dài bằng 0 để biểu thị rằng, theo mặc định, trường này nên được để trống thay vì chứa một giá trị null
Ngày đặt hàng Date( ) Ngày hôm nay
Ngày_Đến_hạn Date() + 60 Ngày sau 60 ngày kể từ ngày hôm nay

Quay lại đầu trang

Quy tắc xác thực trường

Bạn có thể tạo quy tắc xác thực cho trường hoặc điều khiển bằng cách sử dụng biểu thức. Sau đó, Access sẽ thực thi quy tắc khi nhập dữ liệu vào trường hoặc điều khiển. Để tạo quy tắc xác thực, hãy sửa đổi thuộc ValidationRule tính của trường hoặc điều khiển. Bạn cũng nên cân nhắc việc đặt ValidationText thuộc tính chứa văn bản mà Access hiển thị khi quy tắc xác thực bị vi phạm. Nếu bạn không đặt thuộc tính ValidationText , Access sẽ hiển thị thông báo lỗi mặc định.

Các ví dụ trong bảng sau đây hiển thị biểu thức quy tắc xác thực cho thuộc ValidationRule tính và văn bản được liên kết cho thuộc ValidationText tính.

Thuộc tính ValidationRule Thuộc tính ValidationText
<> 0 Vui lòng nhập một giá trị khác không.
0 Or > 100 Giá trị phải bằng 0 hoặc lớn hơn 100.
Like "K???" Giá trị phải có bốn ký tự, bắt đầu bằng chữ K.
< #1/1/2017# Nhập một ngày trước ngày 01/01/2017.
>= #1/1/2017# And < #1/1/2008# Ngày phải trong năm 2017.

Để biết thêm thông tin về việc xác thực dữ liệu, xem bài viết Tạo quy tắc xác thực để xác thực dữ liệu trong một trường.

Quay lại đầu trang

Biểu thức macro

Trong vài trường hợp, có thể bạn muốn thực hiện một hành động hoặc một chuỗi các hành động trong macro chỉ khi nào điều kiện đặc biệt là đúng. Ví dụ: giả sử bạn muốn một hành động chỉ chạy khi giá trị của hộp văn bản Bộ_đếm là 10. Bạn sử dụng biểu thức để xác định điều kiện trong khối If:

[Counter]=10

Cũng như với thuộc ValidationRule tính, biểu thức trong khối If là một biểu thức có điều kiện. Nó phải giải quyết cho một hoặc TrueFalse. Hành động diễn ra chỉ khi điều kiện là đúng.

Sử dụng biểu thức này để thực hiện hành động If
[City]="Paris" Paris là giá trị Thành_phố trong trường nằm trên biểu mẫu đã chạy macro.
DCount("[OrderID]", "Orders") > 35 Có hơn 35 mục nhập trong trường ID_đơn_hàng của bảng Đơn_hàng.
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 Có hơn ba mục nhập trong bảng Chi tiết đơn hàng mà trường ID_đơn_hàng của bảng khớp với trường ID_đơn_hàng trên biểu mẫu Đơn_hàng.
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# Giá trị của trường Ngày_vận_chuyển trên biểu mẫu chạy macro không sớm hơn 02/02/2017 và không muộn hơn 02/03/2017.
Forms![Products]![UnitsInStock] < 5 Giá trị của trường Hàng_trong_kho trên biểu mẫu Sản_phẩm nhỏ hơn 5.
IsNull([FirstName]) Giá trị Tên trên biểu mẫu chạy macro là null (không có giá trị). Biểu thức này là tương đương với [Tên] Is Null.
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 Giá trị trong trường Quốc_gia_vùng_lãnh_thổ trên biểu mẫu chạy macro là Vương quốc Anh và giá trị trường Tổng_đơn_hàng trên biểu mẫu Tổng_doanh_số lớn hơn 100.
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 Giá trị trong trường Quốc_gia_vùng_lãnh_thổ trên biểu mẫu chạy macro là Pháp, Italy hoặc Tây Ban Nha và mã bưu điện có độ dài khác 5 ký tự.
MsgBox("Confirm changes?",1)=1 Bạn bấm vào OK trong hộp thoại hiển thị hàm MsgBox. Nếu bạn bấm vào Hủy bỏ trong hộp thoại này thì Access sẽ bỏ qua hành động.

Quay lại đầu trang

Xem thêm