Chủ Nhật, 21 tháng 2, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Mặt nạ nhập liệu so với qui tắc kiểm tra hợp lệ

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Mặt nạ nhập liệu so với qui tắc kiểm tra hợp lệ


Mặt nạ nhập liệu (input mask) và qui tắc kiểm tra hợp lệ (validation rule) là hai cách kiểm soát các giá trị người dùng nhập vào. Mặt nạ nhập liệu đặc biệt hữu ích khi giá trị có một định dạng cụ thể như số điện thoại, ngày tháng năm, và tên bang viết tắt. Chẳng hạn, mặt nạ nhập liệu cho số điện thoại sẽ cung cấp dấu ngoặc đơn và dấu gạch ngang. Người dùng chỉ cần nhập số, nhờ đó tăng tốc việc nhập liệu và giảm sai sót khi nhập.

Thêm vào đó, mặt nạ nhập liệu có thể được thiết đặt để chỉ cho phép các kiểu ký tự nhất định (chẳng hạn chỉ được nhập số, chỉ được nhập văn bản) và qui định các ký tự đó là bắt buộc hay tùy chọn.

Thiết đặt thuộc tính mặt nạ nhập liệu Input Mask gồm ba phần; mỗi phần cách nhau bằng dấu chấm phẩy. Phần đầu tiên chứa khuôn dạng (template), có thể chứa các vị trí bắt buộc và/hay tùy chọn. Khuôn dạng còn có thể chứa một hay nhiều literals, tức các ký tự đứng sau dấu chéo /, nhằm báo cho Access nhận diện ký tự kế tiếp là chính ký tự đó. Phần thứ hai của thiết đặt, nằm giữa dấu chấm phẩy thứ nhất và thứ hai, bảo Access có lưu hay không các literals cùng với các ký tự được nhập vào trường. Phần thứ ba của thiết đặt là ký tự được dùng làm vật thế chỗ mà sẽ xuất hiện trong các thành phần điều khiển trường trên các forms nhập liệu.

Thuộc tính qui tắc kiểm tra hợp lệ Validation Rule cũng hạn chế các giá trị người dùng có thể nhập vào trường bảng. Giống như mặt nạ nhập liệu, qui tắc kiểm tra hợp lệ có thể được dùng để qui định kiểu ký tự hợp lệ và số lượng ký tự bắt buộc. Tuy nhiên, qui tắc kiểm tra hợp lệ có thể qui định miền giá trị hợp lệ. Chẳng hạn, qui tắc kiểm tra hợp lệ có thể qui định hạn mức tín dụng credit limit phải từ $0 đến $50,000.

Một mình mặt nạ nhập liệu sẽ đủ kiểm soát khi các giá trị của trường phải có một định dạng và chiều dài cụ thể, nhưng không có ràng buộc nào trên giá trị ký tự, chẳng hạn khóa chính CustomerID trong tblMyCustomer phải có 5 chữ số. Mặc dù qui tắc kiểm tra hợp lệ cũng có thể cung cấp kiểm soát tương tự, mặt nạ nhập liệu được ưa thích hơn trong trường hợp này vì các ký tự không hợp lệ hoàn toàn không thể được nhập vào, trong khi qui tắc kiểm tra hợp lệ cho phép nhập và chỉ từ chối khi người dùng chuyển sang trường khác hay bản ghi khác.

Tuy nhiên, qui tắc kiểm tra hợp lệ cho CustomerID sẽ ưu việt hơn mặt nạ nhập liệu nếu CustomerID phải thuộc một miền giá trị cụ thể (chẳng hạn trong đoạn từ 10001 đến 99999) vì qui tắc kiểm tra hợp lệ có thể yêu cầu phải có 5 chữ số giá trị nhập phải thuộc miền giá trị qui định.

Cuối cùng, việc dùng đồng thời mặt nạ nhập liệu và qui tắc kiểm tra hợp lệ sẽ thích hợp khi phải tuân theo một định dạng cụ thể, chẳng hạn phải dùng 2 chữ hoa cho tên bang viết tắt, và không cho phép người dùng dùng địa chỉ giao hàng ở Alaska (AK) hay Hawaii (HI). Trong trường hợp này, mặt nạ nhập liệu sẽ đảm bảo chỉ dùng 2 ký tự (mặt nạ nhập liệu sẽ chuyển chữ thường thành chữ hoa như bạn sẽ thấy trong bài tập kế) còn qui tắc kiểm tra hợp lệ sẽ qui định rằng AK và HI là không hợp lệ.

THỬ NGHIỆM

Bài tập sau sẽ dùng những kiểu ký tự khác nhau trong thuộc tính mặt nạ nhập liệu Input Mask của các trường trong tblMyCustomer. Để xem danh sách đầy đủ ký tự có thể dùng để định nghĩa thuộc tính Input Mask, hãy dùng đặc trưng hỗ trợ trực tuyến của Microsoft Access. Sau khi đã đóng tất cả các bảng, hãy kích biểu tượng hỗ trợ (hình dấu hỏi) rồi gõ input mask. Phần hỗ trợ này sẽ bao gồm danh sách đầy đủ ký tự có thể dùng và ví dụ hướng dẫn cách dùng.

BÀI TẬP 8.6: THIẾT ĐẶT CÁC THUỘC TÍNH INPUT MASK VÀ VALIDATION RULE CHO TBLMYCUSTOMER

1. Hãy mở tblMyCustomer ở góc nhìn Design View rồi kích CustomerID.

2. Nhấn F6 để chuyển sang khung Field Properties, rồi nhấn Tab 2 lần hay kích ô thuộc tính Input Mask.

3. Gõ biểu thức 00000;0;_ vào ô Input Mask để ngăn không cho người dùng nhập bất kỳ thứ gì không phải 5 chữ số vào trường CustomerID.

4. Kích biểu tượng Datasheet View (góc nhìn bảng dữ liệu). Kích Yes để lưu những thay đổi trên bảng trước khi chuyển sang góc nhìn Datasheet. Hãy thử gõ vào chữ hay ký hiệu; mặt nạ nhập liệu sẽ không cho nhập. Bây giờ gõ 1234 rồi thử Tab sang trường kế, Acccess sẽ phát sinh thông báo lỗi cho bạn biết rằng giá trị nhập không thích hợp theo mặt nạ nhập liệu đã qui định cho trường này. Nhấn OK rồi Esc hai lần để xóa bản ghi mới.

5. Trở về góc nhìn Design bằng cách kích biểu tượng Design View trên dải lệnh.

6. Kích CustomerCreditLimit. Rồi kích ô thuộc tính Validation Rule. Gõ <=50000 để đặt hạn mức tín dụng tối đa cho khách hàng là $50,000. Qui tắc kiểm tra hợp lệ này sẽ áp đặt qui tắc tác nghiệp của Pipefitters là cho khách hàng nợ không quá $50,000.

7. Nhấn Tab một lần hay kích ô thuộc tính Validation Text. Gõ Invalid entry. The maximum customer credit limit is $50,000 (Dữ liệu nhập không hợp lệ. Hạn mức tín dụng tối đa cho khách hàng là $50,000). Văn bản nhập vào thuộc tính Validation Text sẽ xuất hiện trong hộp thoại thông báo lỗi khi người dùng nhập một giá trị CustomerCreditLimit vi phạm qui tắc kiểm tra hợp lệ. Hãy trở về góc nhìn Datasheet (kích Yes để lưu bảng). Gõ 65000 vào trường CustomerCreditLimit rồi Tab để sang trường kế. Chuyện gì đã xảy ra? Bạn kiểm soát được giống như mặt nạ nhập liệu không?

8. Nhấn Esc hai lần để xóa bản ghi mới và trở về góc nhìn Design. Giờ bạn sẽ tạo mặt nạ nhập liệu để đảm bảo các bang viết tắt theo đúng dạng đồng thời dùng một qui tắc kiểm tra hợp lệ để áp đặt qui tắc tác nghiệp của Pipefitters là chỉ vận chuyển sản phẩm đến các bang trong lục địa Hoa Kỳ (không chấp nhận AK tức Alaska và HI tức Hawaii).

9. Kích CustomerState. Rồi kích ô thuộc tính Input Mask. Gõ >LL vào ô thuộc tính Input Mask. Ký hiệu > sẽ chuyển chữ thường thành chữ hoa. Ví dụ, nếu người dùng nhập vào oh, mặt nạ nhập liệu sẽ chuyển thành OH. Các ký tự đặt chỗ LL trong biểu thức qui định rằng dữ liệu nhập phải chứa đúng hai chữ.

 10. Di chuyển con trỏ hoặc bằng phím tab hoặc bằng chuột đến ô thuộc tính Validation Rule. Gõ not ("AK" or "HI") vào ô thuộc tính Validation Rule. Qui tắc này ngăn việc nhập AK hay HI cho CustomerState. Các dấu ngoặc là cần thiết để áp dụng “not” vào mọi thứ trong ngoặc.

11. Kích ô thuộc tính Validation Text. Gõ Invalid entry. Customer addresses must be within the continental United States (Dữ liệu nhập không hợp lệ. Địa chỉ khách hàng phải trong lục địa Hoa Kỳ) vào ô thuộc tính Validation Text. Kiểm soát đối với CustomerState đến đây hoàn tất.

THỬ NGHIỆM

Input Mask Wizard chứa sẵn một số mặt nạ nhập liệu cho nhiều trường thường dùng (xem Hình 8.8). Hãy dùng Input Mask Wizard để tạo một mặt nạ nhập liệu cho CustomerZipCode. Để mở Input Mask Wizard, kích thuộc tính trường Input Mask rồi kích nút Builder (nút có hình dấu ba chấm). Phần mở rộng của mặt nạ nhập liệu cho zip code (4 chữ số cuối) là tùy chọn (9 là ký hiệu chữ số tùy chọn) vì nhiều người không biết hay không dùng phần mở rộng của zip code. Bây giờ hãy dùng Input Mask Wizard để tạo mặt nạ nhập liệu cho CustomerTelephone. Bạn có nghĩ rằng mã vùng (area code) nên là tùy chọn như đã được ký hiệu 999 trong mặt nạ nhập liệu? Điều gì sẽ xảy ra nếu mã vùng của công ty thay đổi?

Hình 8.8. Input Mask Wizard.

Không có nhận xét nào:

Đăng nhận xét