James Perry, Richard Newmark
Chương 3
Tạo, nhập liệu, và hiển thị bảng
Thêm trường tra cứu vào bảng
Bảng chi nhánh
tblEmployeeDivision trong cơ sở dữ liệu The Coffee Merchant chứa thành phố city và bang state của các chi nhánh. Sẽ hữu ích nếu đặt các chuỗi ký tự xuất hiện nhiều lần chẳng hạn thành phố và tên cơ quan vào bảng riêng cùng mã số định danh duy nhất. Sau đó, bạn có thể tham chiếu đến thành phố bằng mã số thay cho chuỗi ký tự dài nguyên bản. Một ưu điểm khác là cách này ngăn bạn gõ sai tên thành phố khi chúng thường xuyên xuất hiện trong các cột bảng. Đây là mục đích của bảng
tblEmployeeDivision. Một cột liên kết, nhưng chưa đặt vào bảng
tblMyEmployees, sẽ chứa một số liên kết (“trỏ đến”) mã số chi nhánh công ty trong bảng
tblEmployeeDivision. Nhiệm vụ kế của bạn là thêm cột mới vào
tblMyEmployees – mã số chi nhánh – đó là trường khóa ngoại liên kết khóa chính trong bảng
tblEmployeeDivision.
Khóa ngoại (foreign key) là cột giá trị khớp với cột giá trị khóa chính trong bảng khác. Cột khóa ngoại luôn tương ứng với cột khóa chính trong bảng khác.
Access hỗ trợ việc thiết lập liên kết giữa hai bảng liên quan bằng kiểu dữ liệu Lookup Wizard ở góc nhìn Design. Mặc dù không thật sự là một kiểu dữ liệu, Lookup Wizard sẽ thiết lập liên kết khóa chính – khóa ngoại giữa hai bảng. Quan trọng hơn, việc nhập liệu vào trường như thế sẽ đơn giản vì Access hiển thị danh sách chuỗi ký tự để chọn thay cho mã số khó nhớ khi bạn nhập liệu vào cột bảng được tạo bằng Lookup Wizard.
Một khi hai bảng
tblMyEmployees và
tblEmployeeDivision được liên kết nhờ Lookup Wizard ở góc nhìn Design qua cặp khóa chính / khóa ngoại của chúng, bạn có thể chọn tên thành phố từ danh sách đã được kiểm soát khi bạn nhập liệu vào bảng
tblMyEmployees. Điều này ngăn chặn việc gõ sai tên thành phố hay chọn một tên thành phố
không nằm trong danh sách cho phép.
Mỗi dòng nhân viên cũng cần có một mục cho biết chức danh của người đó trong công ty. Để tránh trùng lặp, gõ sai, hay nhập chức danh không hợp lệ khi nhập liệu vào cột chức danh nhân viên, ta sẽ dùng Lookup Wizard để liên kết
tblMyEmployees với bảng chứa danh sách các chức danh hợp lệ. Qui trình thêm hay xóa cột trong bảng được gọi là thay đổi cấu trúc bảng. Đừng nhầm hoạt động này với việc thêm hay xóa
dữ liệu trong các cột bảng.
Bài tập kế sẽ chỉ cách thêm hai cột tra cứu vào bảng. Cụ thể, bạn sẽ thêm hai cột EmpDivisionID và EmpTitleID vào bảng
tblMyEmployees. Cả hai cột này đều là khóa ngoại vì chúng tham chiếu đến khóa chính ở các bảng khác.
BÀI TẬP 3.4: THÊM CỘT VÀO BẢNG
1. Với
tblMyEmployees đang mở ở góc nhìn Design, kích nút chọn dòng EmpCommRate (nút màu xanh da trời ở bên trái cột Field Name). Nhấn và giữ phím
Shift rồi kích nút chọn dòng EmpHireDate. Nếu làm đúng, cả hai dòng EmpCommRate và EmpHireDate được bao quanh bởi một hình chữ nhật màu hồng.
2. Kích
Insert Rows trong nhóm Tools thuộc tab ngữ cảnh DESIGN. Access sẽ mở ra hai dòng bên trên EmpCommRate. (Ghi chú: Nếu bạn lưu rồi mở lại bảng mà không hoàn tất các bước còn lại, Access sẽ loại bỏ các dòng trống vừa chèn ở góc nhìn Design.)
3. Kích ô trống trong cột Field Name ngay bên dưới tên trường EmpLName. Gõ
EmpDivisionID, nhấn
Tab, kích mũi tên sổ xuống Data Type rồi kích
Lookup Wizard. Access sẽ mở hộp thoại đầu tiên, định nghĩa nguồn dữ liệu cho cột từ một bảng khác.
4. Trong hộp thoại Lookup Wizard, kích
Next vì bạn muốn Access tra cứu giá trị ở một bảng khác.
5. Hãy đảm bảo nút radio Tables được chọn (trong khung View). Kích
Table: tblEmployeeDivision từ danh sách chọn. Điều này bảo Access biết bảng nào chứa chuỗi ký tự ứng với tên chi nhánh của từng nhân viên. Kích
Next để tiếp tục.
6. Kích nút
>> (chọn tất cả các trường) để dời tất cả các trường sang khung Selected Fields (xem Hình 3.5). Điều này cho phép tất cả các trường đều xuất hiện, mặc dù khóa chính DivisionID thường được che khi bạn nhập liệu vào trường.
Hình 3.5 Chọn tất cả các trường trong Lookup Wizard.
7. Kích
Next.
8. Hãy sắp các chọn lựa theo bang state rồi theo thành phố city trong bang (trong trường hợp có cùng bang): Kích mũi tên sổ xuống trong ô đầu tiên rồi kích
DivisionState.
9. Kích mũi tên sổ xuống trong ô thứ hai rồi kích
DivisionCity. Kích
Next.
Để ý rằng các giá trị từ bảng
tblEmployeeDivision được sắp theo thứ tự bản ghi rồi đến thành phố (xem Hình 3.6). Cũng để ý rằng ô
Hide key column (che cột khóa) được đánh dấu. Điều này sẽ che trường khóa chính DivisionID khi cột EmpDivisionID được nhập. Tuy nhiên, khóa chính sẽ được lưu trong cột EmpDivisionID, chứ không phải các giá trị thành phố và bang mà ta thấy.
Hình 3.6 Các cột tra cứu sẽ hiển thị khi trường EmpDivisionID được kích.
10. Kích
Next để sang bước Lookup Wizard cuối cùng. Kích ô
Enable Data Integrity (kích hoạt tính toàn vẹn dữ liệu) để đảm bảo duy trì mối liên kết giữa các bảng. Kích
Finish để hoàn tất qui trình.
11. Hộp thoại khuyến cáo xuất hiện đề nghị bạn lưu thiết kế. Kích
Yes để lưu thiết kế bảng và tạo liên kết giữa hai bảng.
12. Gõ
Employee’s division (chi nhánh của nhân viên) vào cột Description trên dòng EmpDivisionID.
Điều này hoàn tất qui trình dùng Lookup Wizard để định nghĩa cột tra cứu EmpDivisionID. Bạn sẽ lặp lại qui trình này để thêm cột EmpTitleID ở bài tập kế. Lần này, bạn sẽ làm nhanh hơn nhiều vì đã làm một lần rồi.
BÀI TẬP 3.5: THÊM CỘT TRA CỨU VÀO BẢNG
1. Kích ô trống ở cột Field Name ngay bên dưới tên trường EmpDivisionID. Gõ
EmpTitleID, nhấn
Tab, gõ
Loo (viết tắt của Lookup Wizard), rồi nhấn
Enter. Access sẽ mở Lookup Wizard.
2. Kích
Next vì bạn muốn Access tra cứu giá trị ở một bảng khác.
3. Hãy đảm bảo nút radio Tables được chọn (trong khung View). Kích
Table: tblEmployeeTitle từ danh sách chọn rồi kích
Next để tiếp tục.
4. Kích nút
>> (chọn tất cả các trường) để dời tất cả các trường sang khung Selected Fields rồi kích
Next.
5. Sắp các chọn lựa theo chức danh, kích mũi tên sổ xuống trong ô đầu tiên, kích
Title, rồi kích
Next.
6. Di chuột đến cạnh phải của đầu đề cột
Title. Khi chuột trở thành mũi tên hai đầu, kích kép nhằm mở rộng cột hiển thị về độ rộng tối ưu để hiển thị giá trị dài nhất.
7. Kích
Next để sang bước Lookup Wizard cuối cùng. Kích ô
Enable Data Integrity để đảm bảo duy trì mối liên kết giữa các bảng. Kích
Finish để hoàn tất qui trình.
8. Hộp thoại khuyến cáo xuất hiện đề nghị bạn lưu thiết kế. Kích
Yes để lưu thiết kế bảng và tạo liên kết giữa hai bảng. Tiếp tục kích Yes nếu cần.
9. Gõ
Employee’s title (chi nhánh của nhân viên) vào cột Description.
10. Nhấn
Ctrl+S để lưu thiết kế. Kích Yes nếu cần. Kích phải tab bảng
tblMyEmployees, rồi kích
Close trong pop-up menu để đóng bảng.