• Mục này sẽ buộc máy kiểm tra giá trị mục tin ở phần many phải ứng với một nội dung nào đó ở phần One , nhờ đó người ta không thể nhập vào một mã số học sinh không có trong Bảng HOCSINH
Trang 1BÀI 15 NGÀY 22.7.2010 SOẠN THEO THẦY ĐỔ QUANG TUẤN
KHI ĐÃ TẠO CÁC BẢNG CHO CƠ SỞ DỮ LIỆU XONG , CÁC BẠN SẼ TẠO MỐI QUAN HỆ GIỮA CÁC BẢNG CÓ QUAN HỆ VỚI NHAU VIỆC NÀY CẦN THIẾT VÀ BẮT BUỘC ĐỂ VIẾT CHƯƠNG TRÌNH Trong 1 Cơ Sở Dữ Liệu sẽ có nhiều Bảng Không bao giờ chỉ có 1 Bảng nếu có 1 Bảng thì các thông tin về một đối tượng đó đều nằm trên đó Nó có nhiều bất tiện , thứ nhất là các thông tin người sử dụng đều thấy , vì trong 1 CSDL có những thông tin đối tượng nào được xem và không được xem , nếu để thông tin trên 1 Bảng thì việc truy xuất sẽ chậm , kém hiệu quả
Khái niệm và quan hệ : Thông thường 1 Database có rất nhiều Bảng Mỗi Bảng chứa thông tin về một lãnh vực nào đó và chúng sẽ được liên kết với nhau qua 1 Trường Khóa Thông qua các Trường Khóa liên kết này , các bạn có thể lấy nhựng thông tin rải rác từ các Bảng để báo cáo hoặc sử dụng vào một công việc gì đó Sự kết hợp các Bảng như vậy là “ Mối quan hệ giữa các Bảng ” Trong Access gọi mối quan hệ này là RELATIONSHIPS
I.TẠO BẢNG DIEMKIEMTRA TẠO QUAN HỆ VỚI BẢNG HOCSINH
• Menu Create > Chọn Table Design > Hiện ra Table1 có 3 Cột Field Name – Data Type – Description để bạn nhập CSDL vào
• Fiels Name nhập Khóa chính là MSHS , MAMON , HOCKY đồng thời MSHS và MAMON cùng là Khóa Ngoại
• Data Type : Nhập theo Đề bài trên Vì điểm kiểm tra là số thực , nên bạn chọn Number > Khung Field chọn Single Các điểm kiểm tra chọn tương tự
• Giữ phím Shift chọn tên 3 Trường > Nhấp Chìa Khóa > Đã thấy 3 Chhìa khóa trước 3 Trường
• Nhấp Phải Table1 > Chọn Save > Đặt tên cho Bảng là DIEMKIEMTRA> Ok
Trang 3• Nhấp Menu Database Tools > Nhấp Relationships > Nhấp Show Table > Ra Bảng Show Table > Chọn DIEMKIEMTRA > Nhấp Nút Add > Close > Hiện ra Bảng DIEMKIEMTRA Nếu Nút Show Table không hiệu lực , nhấp Phải lên Cửa sổ > Chọn Show Table
• Bạn di chuyển Bảng DIEMKIEMTRA đến gần Bảng HOCSINH Bạn rê Trường Khóa Chính MSHS của Bảng HOCSINH đè lên Trường MSHS của Bảng DIEMKIEMTRA
( Hoặc ngược lại cũng được ) , khi xuất hiện Hình chữ Nhật nhỏ bạn buông chuột ra , hiện ra
HT Edit Relationships Nhìn TextBox bên Trái có bảng HOCSINH và Trường MSHS
Trang 4,TextBox bên Phải có Bảng DIEMKIEMTRA và Trường MSHS Ý nghỉa là xác lập mối quan
hệ giữa 2 bảng qua 2 Trường trên
• Chọn Mục Enforce Refrrential Integrity , thông tin 2 Mục dưới đậm ra > Chọn Mục Cascade Update Related Fields > Nhấp Nút Create
• Đã có sợi dây liên kết giữa 2 Trường của 2 Bảng Một đầu là 1 và một đầu kia là vô cực ( ∞ )
còn được gọi là quan hệ One To Many ( Một đối nhiều ) có nghĩa là 1 học sinh có thể có nhiều Điểm Kiểm Tra
• Nếu không chọn Mục Enforce Referential Integrity thì chỉ sẽ có mối quan hệ One To One ( Một một )
• Mục này sẽ buộc máy kiểm tra giá trị mục tin ở phần many phải ứng với một nội dung nào đó
ở phần One , nhờ đó người ta không thể nhập vào một mã số học sinh không có trong Bảng HOCSINH vào Bảng DIEMKIEMTRA được
• Mục Cascade Update Related Field sẽ cho phép khi sửa Mã số học sinh ở bảng HOCSINH ( Đầu One ) thì Access sẽ tự động sửa lại mả đó trong tất cả các mẫu tin tương ứng của Bảng DIEMKIEMTRA ( Đầu Many )
Trang 5• Nếu bạn chọn thêm Mục Cascade Delete Rekated Record thì khi bạn xóa một Record chứa mã
số học sinh nào đó trong Bảng HOCSINH thì lúc này Access sr5 tự động xóa những mẫu tin trong Bảng DIEMKIEMTRA có mã số học sinh giống với mã số học sinh mà bạn vừa xóa trong Bảng HOCSINH
4 KẾT QUẢ NHẬN ĐƯỢC KHI KẾT NỐI :
• Bạn mở Bảng HOCSINH , bạn đã thấy bên Trái Trường MSHS của mỗi học sinh có thêm dấu + phía trước Nếu nhấp lên dấu + này bạn sẽ thấy thông tin của Bảng kết nối với Bảng này hiện ra trong các Trường của Bảng , nếu không có thì sẽ là các Trường trống
• Ví dụ : Nhấp dấu + trước MSHS là 001K6 Bạn đã thấy thông tin của tất cả những con điểm kiểm tra thuộc Bảng DIEMKIEMTRA của học sinh mang mã số 001K6 hiện ra như hình sau :
o Trong Bảng hiện ra là Điểm Học Kỳ I và II của học sinh này Tương tự như vậy , bạn muốn biết điểm của học sinh nào thì chỉ cần nhấp dấu + trước Mã số của Học Sinh đó
II.TẠO BẢNG MONHOC VÀ TẠO QUAN HỆ VỚI BẢNGDIEMKIEMTRA
1 TẠO CẤU TRÚC :
• Menu Create > Chọn Table Design > Hiện ra Table1 có 3 Cột Field Name – Data Type – Description để bạn nhập CSDL vào
• Field Name nhập Khóa chính là MAMON > Data Type : Nhập theo Đề bài trên Nhấp Phải Table1 > Chọn Save > Đặt tên cho Bảng là MONHOC > Ok
Trang 62 NHẬP THÔNG TIN :
• Nhấp Phải MONHOC > Chọn Datasheet View > Hiện ra Các Trường để bạn nhập CSDL
• Nhấp Menu Database Tools > Nhấp Relationships > Nhấp Show Table > Ra Bảng Show Table > Chọn MONHOC > Nhấp Nút Add > Close > Hiện ra Bảng MONHOC Nếu Nút Show Table không hiệu lực , nhấp Phải lên Cửa sổ > Chọn Show Table
• Nhấp Menu Database Tools > Nhấp Relationships > Nhấp Show Table > Ra Bảng Show Table > Chọn MONHOC > Nhấp Nút Add > Close > Hiện ra Bảng MONHOC Nếu Nút Show Table không hiệu lực , nhấp Phải lên Cửa sổ > Chọn Show Table
• Bạn di chuyển Bảng MONHOC đến gần Bảng DIEMKIEMTRA Bạn rê Trường Khóa Chính MSHS của Bảng HOCSINH đè lên Trường MSHS của Bảng DIEMKIEMTRA
( Hoặc ngược lại cũng được ) , khi xuất hiện Hình chữ Nhật nhỏ bạn buông chuột ra , hiện ra
HT Edit Relationships Nhìn TextBox bên Trái có bảng MONHOC và Trường MAMON ,TextBox bên Phải có Bảng DIEMKIEMTRA và Trường MAMON Ý nghỉa là xác lập mối quan hệ giữa 2 Bảng qua 2 Trường trên
Trang 7• Chọn Mục Enforce Refrrential Integrity , thông tin 2 Mục dưới đậm ra > Chọn Mục Cascade Update Related Fields > Nhấp Nút Create
• Đã có sợi dây liên kết giữa 2 Trường của 2 Bảng Một đầu là 1 và một đầu kia là vô cực ( ∞ )
còn được gọi là quan hệ One To Many ( Một đối nhiều ) có nghĩa là 1 môn học có thể có nhiều điểm kiểm tra
• Nếu không chọn Mục Enforce Referential Integrity thì chỉ sẽ có mối quan hệ One To One ( Một một )
• Mục này sẽ buộc máy kiểm tra giá trị mục tin ở phần Many phải ứng với một nội dung nào đó
ở phần One , nhờ đó người ta không thể nhập vào một mã số học sinh không có trong Bảng MONHOC vào Bảng DIEMKIEMTRA được
• Mục Cascade Update Related Field sẽ cho phép khi sửa Mã số học sinh ở Bảng MONHOC ( Đầu One ) thì Access sẽ tự động sửa lại mả đó trong tất cả các mẫu tin tương ứng của Bảng DIEMKIEMTRA ( Đầu Many )
• Nếu bạn chọn thêm Mục Cascade Delete Rekated Record thì khi bạn xóa một Record chứa mã
số học sinh nào đó trong Bảng MONHOC thì lúc này Access sẽ tự động xóa những mẫu tin
Trang 8trong Bảng DIEMKIEMTRA có mã số học sinh giống với mã số học sinh mà bạn vừa xóa trong Bảng MAMON
3 KẾT QUẢ NHẬN ĐƯỢC KHI KẾT NỐI :
• Bạn mở Bảng MONHOC , bạn đã thấy bên Trái Trường MAMON của mỗi học sinh có thêm dấu + phía trước Nếu nhấp lên dấu + này bạn sẽ thấy thông tin của Bảng kết nối với Bảng này hiện ra trong các Trường của Bảng , nếu không có thì sẽ là các Trường trống
• Ví dụ : Nhấp dấu + trước MAMON là CGN Môn Công Nghệ Bạn đã thấy thông tin của tất
cả những con điểm kiểm tra thuộc Bảng DIEMKIEMTRA Môn Công Nghệ của tất cả học sinh hiện ra như hình sau :
o Toooooo
o Trong Bảng hiện ra là Điểm Học Kỳ I và II của Môn Công Nghệ có mã môn là CGN Tương tự như vậy , muốn biết điểm của học sinh nào , bạn chỉ cần nhấp dấu + trước
mã số học sinh của học sinh đó
III.TẠO BẢNG KHENTHUONG VÀ TẠO QUAN HỆ VỚI BẢNG HOCSINH
1 TẠO CẤU TRÚC :
Trang 92 NHẬP THÔNG TIN :
Nhấp Phải KHENTHUONG > Chọn Datasheet View > Hiện ra Các Trường để bạn nhập CSDL
3 TẠO LIÊN HỆ 2 BẢNG HOCSINH VÀ KHENTHUONG :
• Rê Trường MSHS của bảng HOCSINH đè lên Trường MSHS của bảng KHENTHƯỞNG >
HT Edit Relationships hiện ra , đánh dấu chọn 2 Mục dưới > Nhấp Nút Create
• Một liên kết giữa 2 Trường của 2 Bảng hiện ra , một đầu là 1 và một đầu là ∞ Đây là quan hệ One To many có nghĩa là 1 Học Sinh có thể có nhiều lần Khen Thưởng
Trang 104 KẾT QUẢ NHẬN ĐƯỢC KHI KẾT NỐI :
• Bạn mở Bảng KHENTHƯỞNG , bạn sẽ thấy bên Trái Trường MSHS của mỗi học sinh đều có dấu + phía trước
• Nếu nhấp vào dấu + trước 1 Học Sinh nào đó , các bạn sẽ thấy 1 Hộp Thoại hiện ra hỏi : Các bạn muốn xem liên hệ đến Bảng nào ? Các trường hợp trước đây do mỗi Bảng chỉ có 1 liên kết đến Bảng khác nên hệ thống sẽ cho hiện ngay thông tin của Bảng liên hệ Đối với Bảng HOCSINH này đây là mối liên hệ lần thứ 2 ( Bảng trucớ đó là Bảng DIEMKIEMTRA bây giờ
sẽ hiện ra trong các Trường của Bảng , nếu không có thì sẽ là các Trường trống
• Ví dụ : Nhấp dấu + trước MSHS là 001K6 , bạn sẽ thấy thông tin khen thưởng thuộc Bảng KHENTHUONG của học sinh mang mã số 001K6 hiện như trong hình
Trang 11CHÚ Ý : Bạn nhớ đừng lưu nếu lưu thì sau này mở Bảng HOCSINH khi nhấp dấu + phía
trước học sinh nào đó , các bạn sẽ thấy nội dung trong Bảng KHENTHUONG hiện ra Các bạn chỉ cần nhấp dáu X để đóng Bảng HOCSINH lại
THỦ THUẬT
1.CÁCH SỬA CẤU TRÚC CỦA BẢNG
Trang 12A.BẢNG CHƯA MỞ :
Các bạn cần nhớ và phân biết chức năng của Datasheet View ( Nhập thông tin vào Bảng đã tạo ) – Design View ( Tạo Cấu Trúc Bảng và sửa chửa bảng ) Mở Access > Nhấp File QUANLYHOCSINH > Hiện ra Cột Trái chứa các Bảng đã tạo > Ví dụ chọn Bảng HOCSINH : Nhấp đúp lên Bảng HOCSINH hoặc nhấp Phải lên Bảng này > Chọn Open > Hiện ra Bảng HOCSINH với các Thông Tin vừa nhập
• Datasheet View : Bảng này hiện trong chế độ Datasheet View để các bạn nhập thông
tin vào Bảng
• Design View : Nhấp Phải lên Bảng > Chọn Design View > Các cấu trúc hiện ra cho
các bạn sửa chửa , sau khi sửa xong , nhấp Phải lên Bảng chọn Save
Trang 13B BẢNG ĐANG NHẬP HOẶC SỬA THÔNG TIN :
Nếu Bảng đang mở ( Dạng Datasheet ) bạn nhấp nút Close góc Phải trên để đóng Bảng > Sau
đó thực hiện như trên hoặc nhấp Phải lên Bảng > Chọn Design View > Màn hình cấu trúc hiện
ra để cho các bạn bắt đầu sửa chửa
• Bạn có thể sửa nội dung như : Tên Trường trong Cột Field name - Kiểu dữ liệu trong Cột Data Type - Nhập phần mô tả trong Cột Description
• Thực hiện xong , nhấp Phải lên Bảng và chọn Save
1 XÓA 1 TRƯỜNG VÀ NỘI DUNG ĐÃ NHẬP :
Trong Access bạn thấy có 2 Khung Nhìn :
• Khung nhìn thứ 1 dưới dạng DESIGN VIEW : Xuất hiện dưới dạng Cấu Trúc
o Xóa 1 Trường : Nhấp chọn Hàng chứa Trường cần xóa > Nhấp Phải lên Trường này > Chọn Cut hoặc Delete Rows
• Khung nhìn thứ 2 dưới dạng DATASHEET VIEW : Xuất hiện dưới dạng Bảng có Thông Tin tương ứng với các Trường
Trang 14o Xóa 1 Trường : Muốn xóa Trường nào đặt con trỏ tại Tiêu đề của Trường đó > Con trỏ thành Mủi tên đen trỏ xướng , nhấp Phải chọn Delete Column
o Xóa 1 Hàng : Muốn xóa Hàng nào đặt con trỏ tại đầu Hàng đó > Con trỏ biến thành mủi tên đen trỏ vô , nhấp Phải > Chọn Cut hoặc Delete Record Khi nhấp Mục Delete Record , bạn thấy thông tin của hàng đó sẽ được xóa đồng thời có 1 HT hiện ra cho bạn xác nhận thêm lần nửa Đây là cơ chế an toàn mà Access đã thiết kế giúp các bạn trong trường hợp chọn nhầm Trong Access không có chế độ REDO
o Nếu muốn sửa nội dung gì trong Bảng , bạn nhấp chuột vào Ô đó và sửa chửa sau đó Lưu Bảng lại
2 KHÁI NIỆM VỀ BẢNG DỮ LIỆU :
Là thành phần cơ sở , dùng để lưu trữ dữ liệu của một ứng dụng do đó phải được tạo ra đầu tiên trong CSDL Bảng Dữ Liệu gồm có Cấu Trúc và Phần Dữ Liệu , phần cấu trúc phải được tạo trước làm cơ sở cho việc nhập dữ liệu Trong 1 bảng Dữ liệu gồm có nhiều Cột và nhiều Dòng , nhung6 ít nhất phải có 1 Cột
CÁC THÀNH PHẦN TRONG BẢNG :
Trang 15• Field ( Cột ) : Còn được gọi là Trường , được dùng để lưu trữ một loại thông tin có chung ý nghãi ,
mỗi cột mang một kiểu dữ liệu nhất định Ten Cột không sử dụng các ký tự đặc biệt , không sử dụng dấu Tiếng Việt , Ten Cột nên mang tính chất gợi nhớ Trong cùng 1 bảng không được phép có 2 tên cột trùng tên nhau
• Data Type ( Kiểu Dữ Liệu ) : Được dùng để chỉ định kiểu dữ liệu cho các Cột , tùy theo ý nghĩa của
laoị thông tin và tùy theo yêu cầu lưu trữ mà bạn qui định kiểu dữ liệu thích hợp cho cột Microsoft cung cấp một số Kiểu Dữ Liệu :
o TEXT : Kiểu chuổi , có độ dài tối đa 255 ký tự
o MEMO : Kiểu chuổi , lưu trữ văn bản có độ dài lớn và độ dài tối đa 63.999 ký tự
o NUMBER : Kiểu số , được phân chia thành nhiều Kiểu khác nhau tùy theo độ rộng của Cột :
• Byte : Số nguyên , có giá trị từ 0-255 , tối đa 1Byte lưu trữ
• Integer : Só nguyên , có giá trị từ -32768 …32768 , tối đa 2 bytes lưu trữ
• Long Integer : Só nguyên , có giá trị từ -2147483648 … 214748364 , tối đa 4 bytes lưu trữ
• Single : Số thực , có giá trị lưu trữ từ - 3.402823E38 …3.402823E38 , tối đa 7 số lẻ và 4 bytes lưu
trữ
• Double : Số thực , có giá trị từ -1.79769313486232E308 …
1.79769313486232E308 , tối đa 15 số lẻ và 8 bytes lưu trữ
o Date/Time ( Kiểu Ngày Giờ ) : Microsoft tự động kiểm tra tính hợp lệ dữ liệu , tối đa 8 Bytes dữ
liệu
o Currency ( Kiểu tiền tệ ) : Là Kiểu số định dạng tiền tệ , có giá trị từ
922,337,203,685,477,5808…922,337,203,685,477,5807 , tối đa 8 bytes lưu trữ
o AutoNumber ( Kiểu số tự động tăng ) : Microsoft tự động phát sinh và quản lý , tối đa 4 bytes
lưu trữ
o Yes/No ( Kiểu Luận lý , Logic ) : Có nhiều cách hiển thị như Yes/No , True/False , On/Off …
nhưng giá trị đích thực lưu trữ là -1/10 , 1 bit lưu trữ
o OLED Object ( Kiểu đối tượng kết nhúng ) : Dùng để lưu trữ hình ảnh , âm thanh hay đối
tượng của những ứng dụng khác như Word , Excel … , tối đa 1 giga bytes lưu trự
o Hyperlink ( Kiểu liên kết ) : Lưu trữ chuổi đường dẫn đến 1 địa chỉ tập tin hoặc 1 Trang Web ,
tối đa 2048 ký tự
o Lookup Witzard ( Kiểu dữ liệu tìm kiếm ) : Nhận giá trị do Người Sử Dụng chọn để tìm kiếm
dữ liệu từ 1 Bảng khác , điển hình là 4 bytes dữ liệu
• DESCRIPTION ( Mô tả ): Được dùng để ghi chú ý nghĩa dữ liệu của Cột , các ghi chú này sẽ xuất
hiện dưới Thanh Trạng Thái khiBảng đang ở trạng thái xem và cập nhật dữ liệu
• RECORD ( Mẫu Tin ) : Hay còn được gọi là 1 dòng dữ liệu , mẫu tin là tập hợp của một hoặc nhiều
Cột
Trang 16• PRIMARY KEY ( Khóa Chính ) : Là tập hợp của 1 hay nhiều cột , dùng để phân biệt giữa các
Dòng khác nhau trong cùng 1 Bảng Khóa Chính phải là duy nhất , không được phép trùng và không được phép rổng Makhoi có ký hiệu chìa khóa là Khóa Chính của Bảng KHOIHOC
của 1 hay nhiều Cột , các cột này phải là khóa chính của 1 bảng khác
Makhoi trong Bảng LOPHOC là Khóa Ngoại vì trong Bảng KHOIHOC Makhoi là Khóa Chính
3.CÁC THUỘC TÍNH CỦA CỘT :
Hiểu rõ các Thuộc Tính của Cột ( Field Properties ) bạn sẽ dễ dàng thiết kế và hiệu chỉnh hình thức thể hiện dữ liệu , có thể qui định một số quy tắc dữ liệu và hạn chế được một số lỗi của ứng dụng
FIELD SIZE ( Độ rộng Cột ) :
Quy định độ rộng tối đa của Cột , thuộc tính này chỉ áp dụng được cho dữ liệu kiểu chuổi ( Text ) hoặc kiểu số ( Number ) Đối với Kiểu Chuổi : Độ rộng sẽ là 1 số nguyên Đối với Kiểu Số : Độ rộng sẽ lá một trong các dạng : Byte – Integer – Long Integer – Single – Double
FORMAT ( Định dạng ) :
Qui định dạng thể hiện của dữ liệu , tùy thuộc vào Kiểu dữ liệu và hình thức trình bày , bạn có thể chọn hoặc tự nhập kiểu định dạng thích hợp
Định dạng Kiểu Chuổi ( Text ) :
KÝ HIỆU Ý NGHĨA DỮ LIỆU GỐC THỂ HIỆN
MICROSOFT ACCESS