Hướng dẫn về cú pháp biểu thức

Hướng dẫn về cú pháp biểu thức

Khi sử dụng Microsoft Access, thường thì bạn cần làm việc với các giá trị không trực tiếp nằm trong dữ liệu của bạn. Ví dụ: bạn muốn tính thuế doanh thu trên một đơn hàng hoặc tính tổng giá trị của chính đơn hàng đó. Bạn có thể tính các giá trị này bằng cách sử dụng biểu thức. Để sử dụng biểu thức, trước tiên bạn phải viết biểu thức bằng cách sử dụng cú pháp phù hợp. Cú pháp là tập hợp những quy tắc quy định cách kết hợp chính xác các từ và ký hiệu trong một biểu thức. Ban đầu, biểu thức trong Access sẽ hơi khó đọc một chút. Nhưng khi hiểu rõ về cú pháp biểu thức cùng đôi chút thực hành, ngôn ngữ đó sẽ trở nên dễ hơn nhiều.

Trong bài viết này

Tổng quan về biểu thức

Cấu phần của biểu thức

Đối tượng, tuyển tập và thuộc tính

Mã định danh

Hàm, toán tử, hằng số và giá trị

Trong cơ sở dữ liệu web, giới hạn lồng nhau của biểu thức là 65

Tổng quan về biểu thức

Biểu thức là sự kết hợp giữa một vài hoặc tất cả những yếu tố sau: hàm dựng sẵn hoặc do người dùng định nghĩa, mã định danh, toán tử, giá trị và hằng số đánh giá một giá trị đơn lẻ.

Cấu phần của một biểu thức

Ví dụ: biểu thức sau chứa các cấu phần phổ biến:

=Sum([Purchase Price])*0.08 
  • Sum() là một hàm dựng sẵn

  • [Purchase Price] là một mã định danh

  • * là một toán tử toán học

  • 0.08 là một hằng số

Biểu thức này có thể được sử dụng trong hộp văn bản chân trang biểu mẫu hoặc chân trang báo cáo để tính thuế doanh thu cho một nhóm gồm nhiều mục.

Biểu thức có thể phức tạp hoặc đơn giản hơn nhiều so với ví dụ này. Ví dụ như biểu thức Boolean này chỉ bao gồm một toán tử và một hằng số:

>0

Biểu thức này trả về:

  • True khi được so sánh với một số lớn hơn 0.

  • False khi được so sánh với một số nhỏ hơn 0.

Bạn có thể sử dụng biểu thức này trong thuộc tính Validation Rule của một điều khiển hoặc trường bảng để đảm bảo chỉ nhập giá trị dương. Biểu thức được sử dụng ở nhiều vị trí để thực hiện tính toán, điều khiển các ký tự hoặc kiểm tra dữ liệu. Tất cả bảng, truy vấn, biểu mẫu, báo cáo và macro đều có các thuộc tính chấp nhận biểu thức. Ví dụ: bạn có thể sử dụng biểu thức trong thuộc tính Control SourceDefault Value cho điều khiển. Bạn cũng có thể sử dụng biểu thức trong thuộc tính Validation Rule cho trường bảng.

Đầu Trang

Cấu phần của biểu thức

Để dựng một biểu thức, bạn kết hợp các mã định danh bằng cách sử dụng các hàm, toán tử, hằng số và giá trị. Mọi biểu thức hợp lệ phải chứa ít nhất một hàm hoặc một mã định danh và cũng có thể chứa các hằng số hoặc toán tử. Bạn cũng có thể sử dụng biểu thức như một phần của một biểu thức khác — thường dưới dạng tham đối của hàm. Đây được gọi là lồng biểu thức.

  • Mã định danh    Dạng chung là:

    [Collection name]![Object name].[Property name]

    Bạn chỉ cần chỉ định đủ các phần trong mã định danh để làm cho mã định danh trở thành duy nhất trong ngữ cảnh của biểu thức của mình. Trường hợp mã định danh có dạng [Object name] cũng khá phổ biến.

  • Hàm    Dạng chung là:

    Function(argument, argument)

    Một trong các tham đối thường là một mã định danh hoặc một biểu thức. Một số hàm không yêu cầu tham đối. Trước khi bạn sử dụng một hàm cụ thể, hãy xem lại cú pháp của hàm đó. Để biết thêm thông tin, hãy xem mục Hàm (sắp xếp theo thể loại).

  • Toán tử    Dạng chung là:

    Identifier operator identifier

    Có những ngoại lệ đối với dạng này, như được trình bày chi tiết trong mục Toán tử.

  • Hằng số    Dạng chung là:

    Identifier comparison_operator  constant
  • Giá trị    Giá trị có thể xuất hiện ở nhiều vị trí trong một biểu thức.

Đầu Trang

Đối tượng, tuyển tập và thuộc tính

Tất cả các bảng, truy vấn, biểu mẫu, báo cáo và trường trong một cơ sở dữ liệu Access được gọi riêng lẻ là đối tượng. Mỗi đối tượng đều có tên. Một số đối tượng đã được đặt tên sẵn, chẳng hạn như bảng Danh bạ trong cơ sở dữ liệu được tạo từ mẫu Danh bạ của Microsoft Office Access. Khi bạn tạo một đối tượng mới, bạn sẽ đặt tên cho đối tượng đó.

Tập hợp tất cả các thành phần của một kiểu đối tượng cụ thể được gọi là một tuyển tập. Ví dụ: tập hợp tất cả các bảng trong một cơ sở dữ liệu là một tuyển tập. Một số đối tượng là thành phần của một tuyển tập trong cơ sở dữ liệu của bạn cũng có thể là các tuyển tập chứa những đối tượng khác. Ví dụ: một đối tượng bảng là một tuyển tập có chứa nhiều đối tượng trường.

Đối tượng có thuộc tính, đóng vai trò mô tả và cung cấp cách thức để thay đổi những đặc điểm của đối tượng. Ví dụ: một đối tượng truy vấn có thuộc tính Dạng xem Mặc định vừa mô tả vừa cho phép bạn xác định cách truy vấn sẽ xuất hiện khi bạn chạy đối tượng.

Sơ đồ sau đây minh họa quan hệ giữa các tuyển tập, đối tượng và thuộc tính:

Quan hệ của tuyển tập với đối tượng và thuộc tính

3 Thuộc tính

2 Đối tượng

1 Tuyển tập

Đầu Trang

Mã định danh

Khi bạn sử dụng một đối tượng, tuyển tập hoặc thuộc tính trong một biểu thức, bạn tham chiếu đến phần tử đó bằng cách sử dụng mã định danh. Mã định danh bao gồm tên của phần tử mà bạn đang định danh và cả tên của phần tử chứa phần tử đó. Ví dụ: mã định danh cho một trường bao gồm tên của trường và tên của bảng chứa trường đó. Ví dụ về mã định danh như trên:

[Customers]![BirthDate]

Trong một số trường hợp, tên của một phần tử sẽ tự hoạt động như một mã định danh. Điều này đúng khi tên của phần tử là duy nhất trong ngữ cảnh của biểu thức bạn đang tạo. Phần còn lại của mã định danh được hiểu ngầm theo ngữ cảnh. Ví dụ: nếu bạn đang thiết kế truy vấn chỉ sử dụng một bảng thì từng tên trường độc lập sẽ hoạt động như mã định danh, vì tên trường trong một bảng phải là duy nhất trong bảng đó. Vì bạn chỉ đang sử dụng một bảng nên tên bảng được hiểu ngầm trong bất kỳ mã định danh nào mà bạn sử dụng trong truy vấn để tham chiếu đến một trường.

Trong những trường hợp khác, bạn phải nêu rõ các phần trong mã định danh dùng để tham chiếu có thể hoạt động. Điều này đúng khi một mã định danh không phải là duy nhất trong ngữ cảnh của biểu thức. Khi có tình trạng không rõ ràng, bạn phải biểu thị rõ ràng đủ các phần của mã định danh để làm cho mã định danh trở thành duy nhất trong ngữ cảnh. Ví dụ: giả sử bạn đang thiết kế truy vấn sử dụng một bảng có tên Sản_phẩm và một bảng có tên Đơn_hàng, cả hai bảng đều có trường tên là ID_Sản_phẩm. Trong trường hợp này, mã định danh bạn sử dụng trong truy vấn để tham chiếu đến một trong hai trường ID_Sản_phẩm phải bao gồm tên bảng, bên cạnh tên trường. Ví dụ:

[Products]![ProductID]

Toán tử mã định danh    Có ba toán tử mà bạn có thể sử dụng trong một mã định danh:

  • Toán tử dấu chấm than (!)

  • Toán tử dấu chấm (.)

  • Toán tử dấu ngoặc vuông ([ ])

Bạn sử dụng các toán tử này bằng cách đặt các dấu ngoặc vuông bao quanh từng phần của mã định danh, rồi kết hợp các toán tử bằng cách sử dụng toán tử dấu chấm than hoặc dấu chấm. Ví dụ: mã định danh cho trường Họ trong bảng có tên Nhân_viên có thể được biểu thị là [Employees]![Last Name]. Toán tử dấu chấm than cho Access biết những gì theo sau là một đối tượng thuộc tuyển tập đứng trước toán tử dấu chấm than. Trong trường hợp này, [Họ] là một đối tượng trường thuộc tuyển tập [Nhân_viên] và bản thân tuyển tập là một đối tượng bảng.

Nói một cách chính xác thì bạn không phải luôn nhập các dấu ngoặc vuông quanh một mã định danh hoặc một phần mã định danh. Nếu không có khoảng trắng hoặc ký tự đặc biệt nào khác trong mã định danh, Access sẽ tự động thêm dấu ngoặc khi đọc biểu thức. Tuy nhiên, tự mình nhập các dấu ngoặc là một thói quen tốt — thao tác này sẽ giúp bạn tránh các lỗi cũng như các hàm như là một gợi ý trực quan mà một phần cụ thể của biểu thức là một mã định danh.

Đầu Trang

Hàm, toán tử, hằng số và giá trị

Để tạo một biểu thức, bạn cần nhiều thành phần hơn ngoài các mã định danh — bạn cần thực hiện một số loại hành động. Bạn sử dụng các hàm, toán tử và hằng số để thực hiện những hành động trong một biểu thức.

Hàm

Hàm là một thủ tục mà bạn có thể sử dụng trong biểu thức. Một số hàm, chẳng hạn như Date, không yêu cầu dữ liệu đầu vào để hoạt động. Tuy nhiên, hầu hết các hàm đều yêu cầu dữ liệu đầu vào, gọi là tham đối.

Trong ví dụ ở phần đầu của bài viết này, hàm DatePart sử dụng hai tham đối: một tham đối khoảng thời gian, có giá trị là "yyyy" và một tham đối ngày, có giá trị là [Customers]![BirthDate]. Hàm DatePart yêu cầu tối thiểu hai tham đối này (khoảng thời gian và ngày) nhưng có thể chấp nhận tối đa bốn tham đối.

Danh sách sau đây hiển thị một số hàm thường được sử dụng trong nhiều biểu thức. Bấm vào liên kết dành cho từng hàm để biết thêm thông tin về cú pháp mà bạn sử dụng với hàm đó.

  • Hàm Date được sử dụng để chèn ngày hệ thống hiện tại vào một biểu thức. Thường được sử dụng với hàm Format và cũng được sử dụng với các mã định danh trường đối với các trường có chứa dữ liệu ngày/giờ.

    =Date()
  • Hàm DatePart được sử dụng để xác định hoặc trích xuất một phần của dữ liệu ngày — thường là ngày được lấy từ mã định danh trường nhưng đôi khi lại là giá trị ngày được một hàm khác, chẳng hạn như hàm Date, trả về.

    DatePart ( "yyyy", Date())
  • Hàm DateDiff được sử dụng để xác định sự cách biệt giữa hai ngày — thường giữa ngày được lấy từ mã định danh trường và ngày nhận được bằng cách sử dụng hàm Date.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10 
  • Hàm Format được sử dụng để áp dụng định dạng cho một mã định danh và cho kết quả của một hàm khác.

    Format([Date],"ww")=Format(Now(),"ww")-1 
  • Hàm IIf được sử dụng để đánh giá một biểu thức là đúng hoặc sai, rồi trả về một giá trị nếu biểu thức đánh giá là đúng và một giá trị khác nếu biểu thức đánh giá là sai.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • Hàm InStr được sử dụng để tìm kiếm vị trí của một ký tự hoặc chuỗi trong một chuỗi khác. Chuỗi được tìm kiếm thường được lấy từ mã định danh trường.

    InStr(1,[IPAddress],".")
  • Các hàm Left, MidRight được sử dụng để trích xuất ký tự từ một chuỗi, bắt đầu từ ký tự ngoài cùng bên trái (Left), một vị trí cụ thể ở giữa (Mid) hoặc từ ký tự ngoài cùng bên phải (Right). Các hàm này thường được sử dụng với hàm InStr. Chuỗi để các hàm này trích xuất ký tự thường được lấy từ mã định danh trường.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    

Để biết danh sách các hàm, hãy xem mục Hàm (sắp xếp theo thể loại).

Toán tử

Toán tử là một từ hoặc biểu tượng biểu thị quan hệ số học hoặc lô-gic cụ thể giữa các phần tử khác của một biểu thức. Toán tử có thể là:

  • Số học, chẳng hạn như dấu cộng (+).

  • So sánh, chẳng hạn như dấu bằng (=).

  • Lô-gic, chẳng hạn như Not.

  • Ghép, chẳng hạn như &.

  • Đặc biệt, chẳng hạn như Like.

Các toán tử thường được sử dụng để biểu thị quan hệ giữa hai mã định danh. Các bảng sau mô tả những toán tử mà bạn có thể sử dụng trong biểu thức Access.

Số học    

Bạn sử dụng các toán tử số học để tính toán giá trị từ hai số trở lên hoặc để thay đổi dấu của một số từ dương thành âm.

Toán tử

Mục đích

Ví dụ

+

Tính tổng hai số.

[Tổng_phụ]+[Thuế_Bán_hàng]

-

Tìm ra sự chênh lệch giữa hai số hoặc biểu thị giá trị âm của một số.

[Giá]-[Chiết_khấu]

*

Nhân hai số.

[Số_lượng]*[Giá]

/

Chia số thứ nhất cho số thứ hai.

[Tổng]/[Số_Mục]

\

Làm tròn cả hai số thành số nguyên, chia số thứ nhất cho số thứ hai, rồi làm tròn kết quả thành số nguyên.

[Đã_đăng_ký]\[Số_phòng]

Mod

Chia số thứ nhất cho số thứ hai và chỉ trả về số dư.

[Đã_đăng_ký] Mod [Số_phòng]

^

Tăng một số theo số mũ lũy thừa.

Số ^ Số mũ

So sánh    

Bạn sử dụng các toán tử so sánh để so sánh nhiều giá trị và trả về kết quả là true, false hoặc Null (một giá trị không xác định).

Toán tử

Mục đích

<

Xác định giá trị thứ nhất có nhỏ hơn giá trị thứ hai hay không.

<=

Xác định giá trị thứ nhất có nhỏ hơn hoặc bằng giá trị thứ hai hay không.

>

Xác định giá trị thứ nhất có lớn hơn giá trị thứ hai hay không.

>=

Xác định giá trị thứ nhất có lớn hơn hoặc bằng giá trị thứ hai hay không.

=

Xác định giá trị thứ nhất có bằng giá trị thứ hai hay không.

<>

Xác định giá trị thứ nhất có không bằng giá trị thứ hai hay không.

Trong tất cả các trường hợp, nếu giá trị thứ nhất hoặc giá trị thứ hai là Null thì kết quả sau đó cũng là giá trị Null. Vì Null đại diện cho một giá trị không xác định nên kết quả của mọi phép so sánh với Null cũng là không xác định.

Lô-gic    

Bạn sử dụng các toán tử lô-gic để kết hợp hai giá trị và trả về kết quả true, false hoặc Null. Bạn cũng có thể thấy các toán tử lô-gic còn được gọi là toán tử Boolean.

Toán tử

Cách sử dụng

Mô tả

And

Expr1 And Expr2

True khi Expr1 và Expr2 đều đúng.

Or

Expr1 Or Expr2

True khi Expr1 hoặc Expr2 là đúng.

Eqv

Expr1 Eqv Expr2

True khi cả Expr1 và Expr2 đều đúng hoặc cả Expr1 và Expr2 đều sai.

Not

Not Expr

True khi Expr không đúng.

Xor

Expr1 Xor Expr2

True khi Expr1 là đúng hoặc Expr2 là đúng nhưng không phải cả hai.

Ghép    

Bạn sử dụng các toán tử ghép để kết hợp hai giá trị văn bản thành một chuỗi.

Toán tử

Cách sử dụng

Mô tả

&

string1 & string2

Kết hợp hai chuỗi để tạo thành một chuỗi.

+

string1 + string2

Kết hợp hai chuỗi đó để tạo thành một chuỗi và phát tán các giá trị null.

Đặc biệt    

Bạn sử dụng các toán tử đặc biệt như được mô tả trong bảng sau đây.

Toán tử

Mô tả

Để Xem thêm Thông tin

Is Null or Is Not Null

Xác định một giá trị là Null hoặc Not Null.

Like "pattern"

Khớp các giá trị chuỗi bằng cách sử dụng toán tử đại diện ? *.

Toán tử Like

Between val1 And val2

Xác định một giá trị số hoặc ngày có nằm trong một phạm vi hay không.

Toán tử Between...And

In(string1,string2...)

Xác định một giá trị chuỗi có được chứa trong một tập hợp các giá trị chuỗi hay không.

Toán tử In

Hằng số

Hằng số là một giá trị đã biết không thay đổi và bạn có thể sử dụng trong một biểu thức. Có bốn hằng số thường dùng trong Access:

  • True chỉ ra giá trị nào đó là đúng về lô-gic.

  • False chỉ ra giá trị nào đó là sai về lô-gic.

  • Null chỉ ra việc thiếu một giá trị đã biết.

  • "" (empty string) chỉ ra một giá trị đã được xác định là rỗng.

Các hằng số có thể được dùng làm tham đối cho một hàm và có thể được sử dụng trong biểu thức như một phần của một tiêu chí. Ví dụ: bạn có thể sử dụng hằng số chuỗi rỗng ("") như một phần của tiêu chí cho một cột trong truy vấn để đánh giá các giá trị trường cho cột đó, bằng cách nhập các ký tự sau làm tiêu chí: <>"". Trong ví dụ này, <> là một toán tử và "" là một hằng số. Khi được sử dụng cùng nhau, chúng cho biết mã định danh được áp dụng tiêu chí sẽ được so sánh với chuỗi trống. Biểu thức cho kết quả là đúng khi giá trị của mã định danh là một đối tượng bất kỳ không phải chuỗi trống.

Hãy cẩn thận khi sử dụng hằng số Null. Trong hầu hết các trường hợp, việc sử dụng Null kết hợp với toán tử so sánh sẽ gây ra lỗi. Nếu bạn muốn so sánh một giá trị với Null trong một biểu thức, hãy sử dụng toán tử Is Null hoặc Is Not Null.

Giá trị

Bạn có thể sử dụng các giá trị ký tự trong biểu thức như số 1.254 hay chuỗi "Nhập một số nằm trong khoảng 1 và 10". Đồng thời bạn cũng có thể dùng giá trị số, có thể là một dãy số, bao gồm cả dấu và dấu chấm thập phân nếu cần. Khi không có dấu, Access sẽ mặc nhận là giá trị dương. Để tạo một giá trị âm, phải bao gồm dấu trừ (-). Bạn cũng có thể sử dụng ký hiệu khoa học. Để làm như vậy, phải có chữ "E" hoặc "e" và dấu của số mũ (ví dụ, 1.0E-6).

Khi bạn sử dụng các chuỗi văn bản, hãy đặt chuỗi văn bản trong dấu nháy kép để bảo đảm rằng Access sẽ diễn giải chính xác. Trong một số trường hợp, Access sẽ tạo dấu nháy kép cho bạn. Ví dụ: khi bạn nhập văn bản trong biểu thức cho một quy tắc xác thực hay tiêu chí truy vấn, Access sẽ tự động đặt chuỗi văn bản của bạn trong dấu nháy kép.

Ví dụ: nếu bạn nhập văn bản Paris, Access sẽ hiển thị "Paris" trong biểu thức. Nếu muốn biểu thức tạo ra một chuỗi thực sự được đặt trong dấu nháy kép, bạn phải đặt chuỗi lồng nhau trong dấu nháy đơn (') hoặc trong ba bộ dấu nháy kép ("). Ví dụ: biểu thức sau tương đương với:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Để sử dụng giá trị ngày/giờ, hãy đặt giá trị trong các dấu thăng (#). Ví dụ,: #3-7-17#, #7-Mar-17# và #Mar-7-2017# đều là giá trị ngày/giờ hợp lệ. Khi gặp một giá trị ngày/giờ hợp lệ được đặt trong các ký tự #, Access sẽ tự động xử lý giá trị là kiểu dữ liệu Ngày/Giờ.

Đầu Trang

Trong cơ sở dữ liệu web, giới hạn lồng nhau của biểu thức là 65

Biểu thức lồng nhau vượt quá 65 mức sẽ không hoạt động được trong trình duyệt, vì vậy, bạn không nên sử dụng bất cứ biểu thức nào như vậy trong cơ sở dữ liệu web Access. Bạn sẽ không nhận được bất cứ thông báo lỗi nào - đơn giản chỉ là biểu thức không hoạt động.

Việc sử dụng toán tử &, ANDOR có thể tạo mức lồng nhau bổ sung tại máy chủ không được phản ánh trong máy khách Access. Ví dụ: biểu thức "a" & "b" & "c" không được lồng trong Bộ tạo Biểu thức nhưng trong SharePoint, biểu thức trở thành concatenate.Db("a", concatenate.Db("b", "c") ). Bản dịch này tạo ra một mức lồng nhau. Việc sử dụng nhiều toán tử &, AND hoặc OR liên tiếp trong một biểu thức đơn có thể khiến bạn vượt quá giới hạn mức lồng nhau cho phép là 65 của máy chủ, ở mức này, biểu thức sẽ không hoạt động trong trình duyệt.

Đầu Trang

Xem Thêm

Sử dụng Bộ tạo Biểu thức

Giới thiệu về biểu thức

Dựng biểu thức

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

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×