Thứ Ba, 26 tháng 4, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 3 - Thêm trường tra cứu vào bảng

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 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.

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

Đăng nhận xét