Bạn có thể xem xét hoặc xác thực dữ liệu trong cơ sở dữ liệu trên máy tính của Access khi nhập bằng cách sử dụng quy tắc xác thực. Bạn có thể sử dụng bộ tạo biểu thức để giúp bạn định dạng quy tắc chính xác. Quy tắc xác thực có thể được đặt trong dạng xem thiết kế bảng hoặc biểu dữ liệu bảng. Có ba loại quy tắc xác thực trong Access:
1. Quy tắc Xác thực Trường Bạn có thể sử dụng quy tắc xác thực trường để chỉ định tiêu chí mà tất cả các giá trị trường hợp lệ phải đáp ứng. Bạn không cần phải xác định trường hiện tại như một phần trong quy tắc trừ khi bạn đang sử dụng trường trong một hàm. Các hạn chế về loại ký tự được nhập trong một trường có thể dễ dàng thực hiện hơn với Dấu hiệu Nhập. Ví dụ: trường ngày có thể có quy tắc xác thực không cho phép giá trị trong quá khứ.
Ví dụ nhanh:
Không cho phép giá trị ngày trong quá khứ: >=Date()
Định dạng email thường được chấp nhận: Là Null OR ((Giống "*?@?*.? *") AND (Not Like "*[ ,;] *"))
Số nhỏ hơn hoặc qual đến năm: <=5
Trường tiền tệ không được âm: >=0
Hạn chế độ dài ký tự trong chuỗi: Len([StringFieldName])<100
2. Quy tắc Xác thực Bản ghi Bạn có thể sử dụng quy tắc xác thực bản ghi để chỉ định điều kiện mà tất cả các bản ghi hợp lệ phải đáp ứng. Bạn có thể so sánh các giá trị trên các trường khác nhau bằng quy tắc xác thực bản ghi. Ví dụ: bản ghi có hai trường ngày có thể yêu cầu các giá trị của một trường luôn phải đến trước các giá trị của trường kia (chẳng hạn như Ngày_Bắt_đầu phải trước Ngày_Kết_thúc).
Ví dụ nhanh:
Đảm bảo ngày kết thúc không trước ngày bắt đầu: [Ngày Kết thúc]>=[Ngày Bắt đầu]
Nhập ngày bắt buộc không quá 30 ngày sau ngày đặt hàng: [Ngày_Yêu_cầu]<=[Ngày_Đặt_hàng]+30
3 . Xác thực trên biểu mẫu Bạn có thể sử dụng thuộc tính Quy tắc Xác thực của điều khiển trên biểu mẫu để chỉ định tiêu chí mà tất cả các giá trị nhập vào điều khiển đó phải đáp ứng. Thuộc tính điều khiển Quy tắc Xác thực hoạt động như quy tắc xác thực trường. Thông thường, bạn sử dụng quy tắc xác thực biểu mẫu thay vì quy tắc xác thực trường nếu quy tắc chỉ cụ thể với biểu mẫu đó và không cụ thể với bảng cho dù được sử dụng ở đâu.
Trong bài viết này
Tổng quan
Bài viết này giải thích cách sử dụng quy tắc hợp lệ và văn bản hợp lệ trong các trường bảng và điều khiển biểu mẫu. Quy tắc hợp lệ là một cách để hạn chế việc nhập vào trường bảng hoặc điều khiển (chẳng hạn như hộp văn bản) trên biểu mẫu. Văn bản hợp lệ cho phép bạn đưa ra thông báo để trợ giúp những người dùng nào nhập thông tin không hợp lệ.
Khi dữ liệu được nhập vào, Access sẽ kiểm xem nhập mục đó có vi phạm quy tắc hợp lệ không - nếu có, thì nhập mục đó không được chấp nhận và Access sẽ hiển thị thông báo.
Access cung cấp một vài cách để hạn chế việc nhập dữ liệu:
-
Loại dữ liệu Mỗi trường bảng có một loại dữ liệu hạn chế nội dung mà người dùng có thể nhập. Ví dụ: trường Ngày/Giờ chỉ chấp nhận ngày và giờ, trường Tiền tệ chỉ chấp nhận dữ liệu tiền tệ, v.v..
-
Thuộc tính trường Một số thuộc tính trường sẽ hạn chế nhập dữ liệu. Ví dụ: thuộc tính Cỡ Trường của một trường hạn chế đầu vào bằng cách giới hạn lượng dữ liệu.
Bạn cũng có thể sử dụng thuộc tính Quy tắc Xác thực để yêu cầu các giá trị cụ thể và thuộc tính Văn bản Xác thực để cảnh báo người dùng về bất cứ lỗi nào. Ví dụ: việc nhập quy tắc như >100 And <1000 vào thuộc tính Quy tắc Xác thực sẽ bắt buộc người dùng phải nhập giá trị từ 100 đến 1.000. Một quy tắc như [Ngày_Kết_thúc]>=[Ngày_Bắt_đầu] sẽ bắt buộc người dùng phải nhập ngày kết thúc xảy ra vào hoặc sau ngày bắt đầu. Việc nhập văn bản như "Nhập giá trị từ 100 đến 1.000" hoặc "Nhập ngày kết thúc vào hoặc sau ngày bắt đầu" trong thuộc tính Văn bản Xác thực sẽ báo cho người dùng biết khi họ mắc lỗi và cách khắc phục lỗi đó.
-
Dấu hiệu nhập Bạn có thể sử dụng dấu hiệu nhập để xác thực dữ liệu bằng cách bắt buộc người dùng phải nhập giá trị theo một cách cụ thể. Ví dụ: một dấu hiệu nhập có thể bắt buộc người dùng nhập ngày theo định dạng châu Âu, chẳng hạn như 2007.04.14.
Bạn có thể dùng những phương pháp kiểm nghiệm dữ liệu này riêng rẽ hoặc kết hợp chúng với nhau. Kiểu dữ liệu không phải là tùy chọn và nó cung cấp kiểu kiểm soát dữ liệu cơ bản nhất.
Để biết thêm thông tin về loại dữ liệu, kích cỡ trường và dấu hiệu nhập, hãy xem bài viết Giới thiệu về loại dữ liệu và thuộc tính trường.
Các kiểu quy tắc hợp lệ dữ liệu
Bạn có thể tạo hai kiểu quy tắc hợp lệ dữ liệu cơ bản:
-
Quy tắc xác thực trường Sử dụng quy tắc xác thực trường để kiểm tra giá trị bạn nhập vào trường khi bạn rời khỏi trường đó. Ví dụ: giả sử bạn có trường Ngày và bạn nhập >=#01/01/2010# vào thuộc tính Quy tắc Xác thực của trường đó. Lúc này, quy tắc của bạn yêu cầu người dùng nhập ngày vào hoặc sau 01/01/2010. Nếu bạn nhập một ngày trước 2010 rồi tìm cách đặt tiêu điểm vào một trường khác, Access sẽ ngăn bạn rời khỏi trường hiện tại cho đến khi bạn đã khắc phục sự cố này.
-
Quy tắc xác thực bản ghi Sử dụng quy tắc xác thực bản ghi để kiểm soát thời điểm bạn có thể lưu bản ghi (một hàng trong bảng). Không giống như quy tắc xác thực trường, quy tắc xác thực bản ghi tham chiếu đến các trường khác trong cùng bảng. Bạn tạo quy tắc xác thực bản ghi khi cần kiểm tra giá trị ở một trường so với giá trị của trường khác. Ví dụ: giả sử công việc của bạn đòi hỏi phải gửi sản phẩm trong vòng 30 ngày, nếu bạn không gửi hàng trong thời hạn này thì bạn phải bồi hoàn một phần giá mua hàng cho khách hàng. Bạn có thể xác định một quy tắc xác thực bản ghi, chẳng hạn như [Ngày_Yêu_cầu]<=[Ngày_Đặt_hàng]+30 để bảo đảm người khác không nhập ngày gửi hàng (giá trị trong trường Ngày_Yêu_cầu) quá xa trong tương lai.
Nếu bạn thấy cú pháp của quy tắc hợp lệ có vẻ khó hiểu, hãy xem phần Bạn có thể đưa những gì vào quy tắc hợp lệ để được giải thích về cú pháp và một số ví dụ về quy tắc hợp lệ.
Bạn có thể sử dụng quy tắc hợp lệ ở đâu
Bạn có thể xác định quy tắc hợp lệ cho các trường bảng và các điều khiển trên biểu mẫu. Khi bạn xác định quy tắc cho bảng, những quy tắc này sẽ áp dụng khi bạn nhập dữ liệu. Để thêm quy tắc hợp lệ vào bảng, bạn mở bảng và sử dụng các lệnh trên tab Trường Bảng của dải băng. Để thêm quy tắc hợp lệ vào biểu mẫu, bạn hãy mở biểu mẫu ở dạng xem Bố trí và thêm quy tắc vào thuộc tính của từng điều khiển đơn lẻ.
Các bước trong phần Thêm quy tắc xác thực vào bảng sẽ giải thích cách thêm quy tắc xác thực vào các trường bảng. Các bước trong phần Thêm quy tắc xác thực vào điều khiển trên một biểu mẫu ở phần sau bài viết này sẽ giải thích cách thêm quy tắc vào các tính năng trong các điều khiển riêng rẽ.
Bạn có thể đưa những gì vào quy tắc xác thực
Quy tắc xác thực của bạn có thể có chứa các biểu thức — các hàm trả về một giá trị đơn. Bạn có thể dùng biểu thức để thực hiện tính toán, điều chỉnh ký tự hoặc kiểm tra dữ liệu. Biểu thức quy tắc xác thực sẽ kiểm tra dữ liệu. Ví dụ: một biểu thức có thể kiểm tra để tìm một trong các chuỗi giá trị như "Tokyo" Or "Moscow" Or "Paris" Or "Helsinki". Biểu thức cũng có thể thực hiện các thao tác toán học. Ví dụ: biểu thức <100 bắt buộc người dùng phải nhập giá trị nhỏ hơn 100. Biểu thức ([Ngày_Đặt_hàng] - [Ngày_Giao_hàng]) tính toán số ngày tính từ thời điểm đặt hàng cho đến thời điểm gửi hàng.
Để biết thêm thông tin về các biểu thức, xem bài viết Tạo biểu thức.
Thêm quy tắc hợp lệ vào bảng
Bạn có thể thêm quy tắc hợp lệ trường và/hoặc quy tắc hợp lệ bản ghi. Quy tắc hợp lệ trường sẽ kiểm tra nhập mục vào một trường và được áp dụng khi tiêu điểm rời khỏi trường đó. Quy tắc hợp lệ bản ghi sẽ kiểm tra nhập mục vào một hoặc nhiều trường và được áp dụng khi tiêu điểm rời khỏi bản ghi. Thông thường, quy tắc hợp lệ bản ghi so sánh các giá trị của hai hoặc nhiều trường.
Lưu ý: Các kiểu trường sau đây không hỗ trợ quy tắc xác thực:
-
AutoNumber
-
Đối tượng OLE
-
Phần đính kèm
-
ReplicationID
Tạo quy tắc hợp lệ trường
-
Chọn trường mà bạn muốn hợp lệ.
-
Trên tab Trường Bảng , trong nhóm Xác thực Trường , bấm vào Xác thực, rồi bấm vào Quy tắc Hợp lệ Trường.
-
Dùng Bộ dựng Biểu thức để tạo quy tắc. Để biết thêm thông tin về sử dụng Bộ dựng Biểu thức, hãy xem bài viết Sử dụng Bộ dựng Biểu thức.
Tạo thông báo để hiển thị khi nhập mục trường không hợp lệ
-
Chọn trường cần hiện thông báo khi nhập mục không hợp lệ. Trường đó phải có sẵn một quy tắc hợp lệ.
-
Trên tab Trường Bảng , trong nhóm Xác thực Trường , bấm vào Xác thực, rồi bấm vào Thông báo Xác thực Trường.
-
Nhập thông báo thích hợp. Ví dụ: nếu quy tắc hợp lệ là >10 thì thông báo có thể là “Nhập giá trị nhỏ hơn 10”.
Để biết một số ví dụ về quy tắc xác thực trường và thông báo, hãy xem mục Tham khảo về quy tắc xác thực.
Tạo quy tắc hợp lệ trường
-
Mở bảng mà bạn muốn hợp lệ các bản ghi trong đó.
-
Trên tab Trường Bảng , trong nhóm Xác thực Trường , bấm vào Xác thực, rồi bấm vào Quy tắc Xác thực.
-
Dùng Bộ dựng Biểu thức để tạo quy tắc. Để biết thêm thông tin về sử dụng Bộ dựng Biểu thức, hãy xem bài viết Sử dụng Bộ dựng Biểu thức.
Tạo thông báo để hiển thị khi nhập mục bản ghi không hợp lệ
-
Mở bảng cần hiện thông báo khi nhập mục không hợp lệ. Bảng phải có sẵn một quy tắc hợp lệ bản ghi.
-
Trên tab Trường Bảng , trong nhóm Xác thực Trường , bấm vào Xác thực, rồi bấm vào Thông báo Xác thực.
-
Nhập thông báo thích hợp. Ví dụ: nếu quy tắc xác thực là [Ngày_Bắt_đầu ]<[Ngày_Kết_thúc], thông báo có thể là "Ngày_Bắt_đầu phải trước Ngày_Kết_thúc".
Kiểm tra dữ liệu hiện có so với quy tắc hợp lệ mới
Nếu bạn thêm quy tắc hợp lệ vào một bảng hiện có, bạn có thể muốn kiểm tra quy tắc đó để xem có dữ liệu hiện có nào không hợp lệ hay không.
-
Mở bảng mà bạn muốn kiểm tra trong Dạng xem Thiết kế.
Trên tab Thiết kế Bảng , trong nhóm Công cụ , bấm Kiểm tra Quy tắc Xác thực.
-
Bấm Có để đóng thông báo cảnh báo và bắt đầu việc kiểm tra.
-
Nếu được nhắc lưu bảng, bạn hãy bấm Có.
-
Bạn có thể thấy nhiều thông báo cảnh báo khác khi bạn tiếp tục. Hãy đọc hướng dẫn trong mỗi thông báo, rồi bấm Có hoặc Không khi thích hợp để hoàn tất hoặc để ngừng việc kiểm tra.
Thêm quy tắc xác thực vào điều khiển trên biểu mẫu
Bạn có thể sử dụng thuộc tính Quy tắc Xác thực và thuộc tính Văn bản Xác thực của điều khiển trên biểu mẫu để xác thực dữ liệu được nhập vào điều khiển đó và để trợ giúp những người dùng nhập dữ liệu không hợp lệ.
Mẹo: Nếu bạn tạo tự động một biểu mẫu từ một bảng bằng cách dùng một trong các lệnh Biểu mẫu trên ruy-băng, thì mọi xác thực đối với các trường trong bảng bên dưới đều được thừa hưởng bởi các điều khiển tương ứng trên biểu mẫu.
Một điều khiển có thể có quy tắc hợp lệ khác với trường bảng mà điều khiển đó gắn kết với. Điều này hữu ích nếu bạn muốn biểu mẫu hạn chế hơn bảng. Quy tắc biểu mẫu được áp dụng trước, rồi mới áp dụng đến quy tắc bảng. Nếu bảng hạn chế hơn biểu mẫu, thì quy tắc xác định cho trường bảng sẽ được ưu tiên áp dụng. Nếu hai quy tắc loại trừ lẫn nhau, thì chúng sẽ không cho bạn nhập bất kỳ dữ liệu nào.
Ví dụ, giả sử bạn áp dụng quy tắc sau đây cho trường ngày trong một bảng:
<#01/01/2010#
Nhưng sau đó bạn áp dụng quy tắc này cho điều khiển biểu mẫu được gắn kết với trường ngày đó:
>=#01/01/2010#
Lúc này trường ngày yêu cầu giá trị trước năm 2010, nhưng điều khiển biểu mẫu lại yêu cầu ngày trong năm này hoặc sau đó, vì vậy chúng ngăn không cho bạn nhập bất kỳ dữ liệu nào.
Tạo quy tắc hợp lệ cho điều khiển
-
Bấm chuột phải vào biểu mẫu mà bạn muốn thay đổi, rồi bấm Dạng xem Bố trí.
-
Bấm chuột phải vào điều khiển mà bạn muốn thay đổi, rồi bấm Thuộc tính để mở trang thuộc tính cho điều khiển đó.
-
Bấm vào tab Tất cả, rồi nhập quy tắc xác thực của bạn vào hộp thuộc tính Quy tắc Xác thực.
Mẹo: Bấm nút Dựng để khởi động Bộ dựng Biểu thức.
Để biết thêm thông tin về cách sử dụng Bộ tạo Biểu thức, hãy xem bài viết Sử dụng Bộ tạo Biểu thức.
-
Nhập thông báo vào hộp thuộc tính Văn bản Xác thực.
Tham chiếu quy tắc xác thực
Quy tắc xác thực sử dụng cú pháp biểu thức Access. Để biết thêm thông tin về các biểu thức, hãy xem bài viết Giới thiệu về biểu thức.
Ví dụ về quy tắc hợp lệ và văn bản hợp lệ
Quy tắc hợp lệ |
Văn bản hợp lệ |
---|---|
<>0 |
Nhập giá trị khác không. |
>=0 |
Giá trị phải lớn hơn hoặc bằng không. -hoặc- Bạn phải nhập một số dương. |
0 or >100 |
Giá trị phải bằng 0 hoặc lớn hơn 100. |
BETWEEN 0 AND 1 |
Nhập giá trị với ký hiệu phần trăm. (Để dùng trong trường chứa giá trị số có dạng phần trăm). |
<#01/01/2007# |
Nhập một ngày trước năm 2007. |
>=#01/01/2007# AND <#01/01/2008# |
Ngày phải trong năm 2007. |
<Date() |
Ngày sinh không thể là ngày trong tương lai. |
StrComp(UCase([Họ]), [Họ],0) = 0 |
Dữ liệu trong trường có tên là LastName phải viết hoa. |
>=Int(Now()) |
Nhập ngày hôm nay. |
M Or F |
Nhập M cho nam và F cho nữ. |
LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org" |
Nhập địa chỉ email .com, .net hoặc .org hợp lệ. |
[RequiredDate]<=[OrderDate]+30 |
Nhập ngày yêu cầu không quá 30 ngày sau ngày đặt hàng. |
[EndDate]>=[StartDate] |
Nhập ngày kết thúc vào hoặc sau ngày bắt đầu. |
Ví dụ về cú pháp cho các toán tử quy tắc hợp lệ thông dụng
Toán tử |
Hàm |
Ví dụ |
---|---|---|
NOT |
Kiểm tra giá trị đảo nghịch. Dùng trước mọi toán tử so sánh, ngoại trừ IS NOT NULL. |
NOT > 10 (giống như <=10). |
IN |
Kiểm tra giá trị bằng với các phần tử hiện có trong một danh sách. Giá trị so sánh phải là một danh sách được phân cách bằng dấu phẩy, đặt trong ngoặc. |
IN ("Tokyo","Paris","Moscow") |
BETWEEN |
Kiểm tra chuỗi giá trị. Bạn phải sử dụng hai giá trị so sánh — thấp và cao — và bạn phải phân tách các giá trị này bằng dấu tách AND. |
BETWEEN 100 AND 1000 (giống như >=100 AND <=1000) |
LIKE |
Khớp các chuỗi kiểu trong các trường Văn bản và Bản ghi nhớ. |
LIKE "Geo*" |
IS NOT NULL |
Bắt buộc người dùng phải nhập giá trị vào trường. Điều này cũng giống như thiết lập thuộc tính Bắt buộc của trường là Có. Tuy nhiên, khi bạn bật thuộc tính Bắt buộc và người dùng không nhập giá trị, thì Access sẽ hiển thị một thông báo lỗi không thân thiện lắm. Thông thường, cơ sở dữ liệu của bạn sẽ dễ sử dụng hơn nếu bạn dùng IS NOT NULL và nhập một thông báo thân thiện vào thuộc tính Văn bản hợp lệ. |
IS NOT NULL |
AND |
Chỉ ra rằng tất cả các phần của quy tắc hợp lệ phải đúng. |
>= #01/01/2007# AND <=#03/06/2008# Lưu ý: Bạn cũng có thể dùng AND để kết hợp các quy tắc xác thực. Ví dụ: NOT "UK" AND LIKE "U*". |
OR |
Chỉ ra rằng một số nhưng không phải tất cả các phần của quy tắc hợp lệ phải đúng. |
Tháng 1 OR Tháng 2 |
< |
Nhỏ hơn. |
|
<= |
Nhỏ hơn hoặc bằng. |
|
> |
Lớn hơn. |
|
>= |
Lớn hơn hoặc bằng. |
|
= |
Bằng. |
|
<> |
Khác. |
Dùng ký tự đại diện trong quy tắc hợp lệ
Bạn có thể dùng ký tự đại diện trong các quy tắc hợp lệ của mình. Hãy nhớ rằng Access hỗ trợ hai bộ ký tự đại diện: ANSI-89 và ANSI-92. Mỗi chuẩn này sử dụng một bộ ký tự đại diện khác nhau.
Theo mặc định, tất cả các tệp .accdb và .mdb đều sử dụng tiêu chuẩn ANSI-89.
Bạn có thể đổi chuẩn ANSI của cơ sở dữ liệu thành ANSI-92 theo quy trình sau đây:
-
Trên tab Tệp, bấm Tùy chọn.
-
Trong hộp thoại Tùy chọn Access, bấm Trình thiết kế Đối tượng.
-
Trong phần Thiết kế truy vấn, dưới Cú pháp Tương thích SQL Server (ANSI-92), chọn Cơ sở dữ liệu này.
Để biết thêm thông tin về sử dụng ký tự đại diện và chuẩn ANSI cho SQL, hãy xem bài viết Tham khảo ký tự đại diện trong Access.