James Perry, Richard Newmark
Chương 5
Tạo và dùng forms
Chèn thêm thành phần điều khiển để giới hạn lựa chọn: nút lệnh và ô văn bản
Một cách hiệu quả khác đảm bảo tính toàn vẹn dữ liệu là hạn chế các chọn lựa của người dùng khi nhập liệu. Một qui tắc giảm lỗi khác là tối thiểu hay loại bỏ hoàn toàn việc gõ của người dùng. Bất kỳ khi nào người dùng phải gõ thậm chí không nhiều, họ có thể sinh lỗi. Dùng các thành phần điều khiển khác ô văn bản – thành phần điều khiển mà Access tạo và ràng buộc với các trường bảng khi tạo forms – là một cách giảm hay khử lỗi. Với các trường cơ sở dữ liệu chỉ có một vài chọn lựa khả dĩ chẳng hạn nhà vận chuyển được công ty chấp nhận, ô danh sách là thành phần điều khiển hiển thị các chọn lựa tốt hơn. Ô danh sách cung cấp một số ít các chọn lựa cho phép – chẳng hạn DHL, FedEx, USPS, và UPS – thay vì cho phép mọi dạng nhập liệu mà người dùng có thể gõ (chẳng hạn,
Federal Express, Inc. hay
United Parcel Service). Với những dữ liệu nhập chẳng hạn tên khách hàng hay đại lý bán hàng mà có thể lên đến hàng chục, hàng trăm, thậm chí hàng ngàn chọn lựa, thì combo box hay ô danh sách chứa dữ liệu lấy từ bảng là giải pháp tránh việc phải nhập những chuỗi văn bản dài.
Trong bài tập tới, bạn sẽ thay thành phần điều khiển ô đánh dấu yes/no ứng với trường Caffeinated bằng các nút radio và thay thành phần điều khiển bị ràng buộc ô văn bản Beverage bằng thành phần điều khiển ô danh sách. Việc thêm ô danh sách và nút radio được thực hiện ở góc nhìn Design, không phải ở góc nhìn Layout.
BÀI TẬP 5.20: THAY THÀNH PHẦN ĐIỀU KHIỂN Ô VĂN BẢN BẰNG Ô DANH SÁCH
1. Kích phải tên form
MyInventory2 trong Navigation Pane, kích
Copy từ pop-up menu, kích phải thanh tiêu đề Forms trong Navigation Pane, kích
Paste trong pop-up menu, gõ
MyInventory3, rồi kích
OK.
2. Mở MyInventory3 ở góc nhìn Design (giờ bạn đã biết nhiều cách mở). Nếu Property Sheet xuất hiện, đóng nó lại.
3. Kích tab ngữ cảnh
DESIGN thuộc FORM DESIGN TOOLS tab, nếu cần. Kích mũi tên danh sách
More trong nhóm Controls để hiển thị khung chứa các thành phần điều khiển. Đảm bảo
Use Control Wizards (hình cây gậy thần với các ngôi sao) được chọn (nó có nền màu hồng nếu được chọn.) Nếu chưa được chọn, kích vào đó.
4. Với các thành phần điều khiển được hiển thị trong khung, kích thành phần điều khiển ô danh sách
List Box trong nhóm Controls. (Nếu bạn di chuột lên các thành phần điều khiển, tên thành phần điều khiển sẽ được hiển thị.)
5. Di chuyển chuột đến vùng trống bên phải thành phần điều khiển Beverage trên form rồi kích chuột để thi hành List Box wizard. Kích nút radio
I will type in the values that I want (tôi sẽ gõ vào các giá trị mà tôi muốn) rồi kích
Next.
6. Gõ
2 vào ô văn bản
Number of columns, kích ô văn bản
Col1 bên dưới, gõ
c, nhấn
Tab, gõ
Coffee, nhấn
Tab, gõ
t vào ô văn bản Col1 dòng thứ hai, nhấn
Tab, rồi gõ
Tea.
7. Ẩn Col1 bằng cách di chuột đến đường phân chia các đầu đề
Col1 và
Col2 (xem Hình 5.24). Khi nó chuyển thành mũi tên hai đầu, kéo sang trái cho đến khi Col1 biến mất. Ô văn bản hiển thị
Coffee và
Tea, nhưng Access lưu
c hay
t (tương ứng) trong cơ sở dữ liệu.
Hình 5.24 Dùng List Box wizard để tạo các giá trị trong ô danh sách.
8. Kích
Next. Đảm bảo rằng Col1 được làm nổi bật (đây là cột thật sự được lưu vào bảng) rồi kích
Next.
9. Kích nút radio
Store that value in this field (Lưu giá trị đó vào trường sau), kích mũi tên danh sách bên phải, rồi kích
Beverage. Chọn lựa này bảo Access trường nào trong bảng sẽ lưu giá trị người dùng form đã chọn trong ô danh sách. Kích
Next.
10. Gõ
Beverage vào ô văn bản để tạo nhãn xuất hiện cạnh ô danh sách rồi kích
Finish để hoàn tất quá trình tạo ô danh sách.
THỬ NGHIỆM
Kích phải form tab rồi kích
Form View. Cuộn qua bốn hay năm bản ghi đầu tiên và quan sát các giá trị trong ô văn bản cũng như danh sách ứng với trường Beverage. Chúng cần phải khớp. Nghĩa là, với mọi
c trong ô văn bản Beverage, ô danh sách phải tự động hiển thị
Coffee. Tương tự cho
t và
Tea.
Để thu dọn form, bạn loại thành phần điều khiển ô văn bản Beverage cũ rồi dời thành phần điều khiển ô danh sách mới vào vị trí đó trong bài trí xếp chồng. Bài tập 5.21 sẽ hướng dẫn bạn.
BÀI TẬP 5.21: XÓA THÀNH PHẦN ĐIỀU KHIỂN CŨ RỒI DI CHUYỂN Ô DANH SÁCH MỚI VÀO ĐÓ
1. Hiển thị form ở góc nhìn Design. Chọn ô văn bản ứng với
Beverage rồi nhấn phím
Delete để loại bỏ cặp nhãn / thành phần điều khiển ô văn bản ban đầu.
2. Kích thành phần điều khiển ô danh sách rồi kéo nó vào đúng vị trí. Định vị riêng nhãn, Beverage, nếu cần bằng cách kích và kéo vị trí di chuyển Move của nó cho đến khi thẳng hàng với các thành phần điều khiển khác.
3. Chuyển sang góc nhìn Layout. Kích và kéo cạnh đáy của thành phần điều khiển ô danh sách (không phải nhãn) lên trên cho đến khi bạn chỉ có thể thấy một thức uống.
4. Kích nút
Save trong thanh công cụ truy xuất nhanh Quick Access Toolbar để lưu các thay đổi.
Một thành phần điều khiển form hữu ích khác là nút radio. Nó cung cấp một danh sách các chọn lựa loại trừ nhau. Việc kích một trong những nút radio trong nhóm sẽ tự động lưu giá trị số vào bảng. Ưu điểm của nút radio so với việc gõ văn bản hay số là hiển nhiên. Người dùng chọn một trong những chọn lựa hữu hạn rồi Access lưu giá trị đó vào trường ràng buộc tương ứng. Điều này loai khả năng có nhiều cách nhập và giá trị lỗi khiến cơ sở dữ liệu bị hỏng. Bài tập 5.22 minh họa cách thay ô đánh dấu bằng nút radio.
BÀI TẬP 5.22: CHÈN NÚT TÙY CHỌN ĐỂ BIỂU DIỄN CÁC GIÁ TRỊ LỰA CHỌN
1. Hiển thị MyInventory3 ở góc nhìn Design. Đảm bảo
Use Control Wizards được làm nổi bật, kích nút nhóm tùy chọn
Option Group, di chuột đến chỗ trống trên form bên phải thành phần điều khiển Caffeinated, rồi kích để thả thành phần điều khiển và khởi động wizard.
2. Gõ
Caffeinated vào dòng đầu tiên thuộc ô văn bản Label Names, kích dòng thứ hai, gõ
Decaffeinated, rồi kích
Next.
3. Kích nút
No, I don’t want a default (Không, tôi không muốn giá trị mặc định) rồi kích Next.
4. Gõ
-1 (số âm biểu diễn giá trị true – ô được đánh dấu hay
yes trong trường yes/no) vào cột Values ở dòng đầu tiên, gõ phím mũi tên xuống, gõ
0 (số không biểu diễn giá trị false – ô không ược đánh dấu hay
no trong trường yes/no), rồi kích
Next.
5. Kích nút radio
Store the value in this field (Lưu giá trị vào trường sau), kích mũi tên ô danh sách bên phải, rồi kích
Caffeinated. Caffeinated là trường mà giá trị nút radio sẽ được lưu vào đó và từ đó nút radio với chọn lựa tương ứng sẽ “bật lên”. Kích
Next.
6. Kích
Next lần nữa để chấp nhận chọn lựa cho kiểu nút radio. Gõ
Caffeinated? Vào ô văn bản để tạo nhãn xuất hiện ngay bên trên hai nút radio rồi kích
Finish.
7. Kế tiếp, loại bỏ trường ô đánh dấu và nhãn Caffeinated cũ: Kích thành phần điều khiển bị ràng buộc Caffeinated cũ (không phải nhãn) rồi nhấn phím
Delete để xóa.
8. Kích nút
Save trong thanh công cụ truy xuất nhanh Quick Access Toolbar để lưu các thay đổi.
9. Chuyển sang góc nhìn Form để duyệt lại các thay đổi trên form (xem Hình 5.25). Hãy dùng nút di chuyển để xem chục bản ghi đầu. Để ý nút radio thay đổi khi bạn cuộn qua các bản ghi. Các thay đổi đó phản ánh thức uống có caffeine hay không.
Hình 5.25 Thành phần điều khiển nút radio biểu diễn hai chọn lựa.