Sửa lỗi relationship type lại hiện indeterminate trong access năm 2024

CSDL Access là một đối tượng bao gồm tập hợp các bảng dữ liệu, các kết nỗi giữa các bảng được thiết kế một cách phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng quản lý dữ liệu nào đó.

Ví dụ:

CSDL Quản lý học sinh bao gồm tập hợp các bảng dữ liệu: HOCSINH, LOP, KHOI, MONHOC, DIEM được kết nối với nhau một cách phù hợp phục vụ lưu trữ dữ liệu cho ứng dụng quản lý học sinh một trường học. Toàn bộ cấu trúc CSDL quản lý học sinh trên Access được mô tả như sau:

CSDL Quản lý bán hàng bao gồm tập hợp các bảng dữ liệu: HANG, KHACH, HOADON, HANGBAN được kết nối với nhau một cách phù hợp, phục vụ ứng dụng quản lý việc bán hàng tại một cửa hang. Sơ đồ cấu trúc CSDL này như sau:

CSDL Quản lý lương cán bộ, bao gồm các bảng: PHONGBAN, CHUCVU và CANBO được kết nối với nhau phục vụ lưu trữ dữ liệu cho ứng dụng quản lý lương cán bộ một cơ quan. Cấu trúc CDSL này được biểu diễn như sau:

CSDL Quản lý việc nhập-xuất vật tư một cửa hàng. Bao gồm các bảng: VATTU, KHACH, PHIEUNHAP, PHIEUXUAT, VATTU_NHAP, VATTU_XUAT được biểu diễn như sau:

1.2 Bảng dữ liệu

Bảng dữ liệu [Tables] là một phần quan trọng nhất của CSDL; Là nơi lưu trữ những dữ liệu tác nghiệp cho ứng dụng. Một CSDL có thể có rất nhiều bảng, các bảng phải được thiết kế sao cho có thể lưu trữ được đầy đủ dữ liệu cần thiết, đảm bảo giảm tối đa tình trạng gây dư thừa dữ liệu [dư thừa dữ liệu được hiểu đơn giản là tình trạng lưu trữ những dữ liệu không cần thiết trên một số bảng. Tác hại của hiện tượng này sẽ gây: sai lệch dữ liệu tác nghiệp và làm tăng dung lượng dữ

liệu không cần thiết]; giảm tối đa dung lượng CSDL có thể, đồng thời tạo môi trường làm việc thuận lợi cho việc phát triển ứng dụng trong các bước tiếp theo.

Một bảng dữ liệu trên Access bao gồm các thành phần: Tên bảng, các trường dữ liệu, trường khoá, tập hợp các thuộc tính cần thiết cho mỗi trường dữ liệu và tập hợp các bản ghi.

Mô tả một bảng dữ liệu trong trạng thái Datasheet [nhập, xem, sử dữ liệu]:

Mỗi cột là một trường dữ liệu [Field]

Mỗi dòng là một bản ghi [Record]

Bản ghi đặc biệt cuối cùng gọi là EOF

Mô tả một bảng dữ liệu trong trạng thái Design view [đang thiết kế cấu trúc]:

Trường khoá [Primary key]

Tập hợp các thuộc tính của trường dữ liệu

Tên bảng

Mỗi bảng có một tên gọi. Tên bảng thường được đặt sau khi tạo xong cấu trúc của bảng, tuy nhiên cũng có thể đổi lại tên bảng trên cửa sổ Database như đổi tên tệp dữ liệu trên cửa sổ Windows Explorer.

Không nên sử dụng dấu cách [Space], các ký tự đặc biệt hoặc chữ tiếng Việt có dấu trong tên bảng.

Trường dữ liệu [Field]

Mỗi cột dữ liệu của bảng sẽ tương ứng với một trường dữ liệu. Mỗi trường dữ liệu sẽ có một tên gọi và tập hợp các thuộc tính miêu tả trường dữ liệu đó ví dụ như: kiểu dữ liệu, trường khoá, độ lớn, định dạng, ..

Mỗi trường dữ liệu phải được định kiểu dữ liệu. Trong Access, trường dữ liệu có thể nhận một trong các kiểu dữ liệu sau: 9 KIỂU DỮ LIỆU

TT Kiểu dữ liệu Độ lớn Lưu trữ..

1 Number Tuỳ thuộc kiểu cụ

thể Số: số thực, số nguyên theo nhiều kiểu

2 Autonumber 4 bytes Số nguyên tự động được đánh số.

3 Text tuỳ thuộc độ dài xâu Xâu ký tự

4 Yes/No 1 bytes Kiểu logic

5 Date/Time 8 bytes Lưu trữ ngày, giờ

6 Currentcy Sing Lưu trữ dữ liệu kèm ký hiệu tiền tệ

7 Memo tuỳ thuộc giá trị kiểu ghi nhớ

8 Hyperlink tuỳ thuộc độ dài xâu Lưu trữ các siêu liên kết [hyperlink]

9 OLE tuỳ thuộc dữ liệu Âm thanh, hình ảnh, đồ hoạ, … [Objects]

Không nên sử dụng dấu cách [Space], các ký tự đặc biệt hoặc chữ tiếng Việt có dấu trong tên trường.

Bản ghi [Record]

Mỗi dòng dữ liệu của bảng được gọi một bản ghi. Mỗi bảng có một con trỏ bản ghi. Con trỏ bản ghi đang nằm ở bản ghi nào, người dùng có thể sửa được dữ liệu bản ghi đó. Đặc biệt, bản ghi trắng cuối cùng của mỗi bảng được gọi EOF.

Trường khoá [Primary key]

Trường khoá có tác dụng phân biệt giá trị các bản ghi trong cùng một bảng với nhau. Trường khoá có thể chỉ 01 trường, cũng có thể được tạo từ tập hợp nhiều trường [gọi bộ trường khoá].

Ví dụ:

[1]- bảng THISINH của CSDL thi tuyển sinh, trường khoá là SoBaoDanh. Vì mỗi thí sinh có thể nhiều trường có giá trị hệt nhau, nhưng SoBaoDanh thì duy nhất.

[2]- bảng CANBO trường MaCanBo sẽ là trường khóa vì không thể tồn tại 2 cán bộ nào trong bảng này trùng MaCanBo

[3]- bảng HANGBAN của CSDL Quản lý bán hàng, 2 trường hangID và hoadonID là một bộ trường khoá. Vì không thể trên một hoá đơn bảng hàng nào có bản một mặt hàng nào đó ghi lặp lại 2 lần.

1.3 Liên kết các bảng dữ liệu

Liên kết các bảng dữ liệu là một kỹ thuật trong thiết kế CSDL quan hệ. Chúng là mối liên kết giữa 2 bảng với nhau theo thiết kế cho trước để đảm bảo được mục đích lưu trữ dữ liệu cho ứng dụng.

Trong Access tồn tại 2 kiểu liên kết: liên kết 1-1 và liên kết 1-n [một-nhiều]

Liên kết 1-1 là: mỗi bản ghi của bảng này sẽ liên kết với duy nhất tới một bản ghi của bảng kia và ngược lại;

Ví dụ liên kết 1-1:

Mô tả dữ liệu 2 bảng này như sau:

Liên kết 1-n là: mỗi trường của bảng 1 sẽ có thể liên kết với một hoặc nhiều bản ghi của bảng nhiều [n]. Ngược lại, mỗi bản ghi của bảng nhiều sẽ liên kết tới duy nhất 1 trường của bảng 1.

Ví dụ liên kết 1-n:

Có thể tham khảo mỗi cha có thể có nhiều con qua 2 bảng sau:

Hoặc xem theo một kiểu khác:

2. Xây dựng cấu trúc bảng

Mục này hướng dẫn cách thiết kế cấu trúc một bảng dữ liệu trên CSDL Access. Để có thể làm tốt được công việc này, đề nghị học viên nên tuân thủ theo thứ tự các bước sẽ liệt kê dưới đây.

Minh hoạ này hướng dẫn cách tạo cấu trúc bảng HANG bao gồm các trường

hangID, tenhang, donvi, dongia.

Bước 1: Khởi động trình thiết kế cấu trúc bảng ở chế độ Design View

Ở thẻ Tables, nhấn nút New, chọn Design View, nhấn OK

Hoặc nhấn trên thẻ Tables. Hộp thoại thiết kế cấu trúc một bảng xuất hiện:

Bước 2: Khai báo danh sách tên các trường của bảng: bằng cách gõ danh sách tên các trường lên cột Field Name của cửa sổ thiết kế.

Chú ý: tên trường không nên chứa dấu cách [space], chữ tiếng Việt có dấu.

Sau khi gõ vào danh sách tên các trường của bảng HANG, hộp thoại thiết kế sẽ

có dạng:

Bước 3: Khai báo kiểu dữ liệu cho các trường của bảng, bằng cách chọn kiểu dữ liệu cho từng trường ở cột Data Type tương ứng. Sau khi chọn xong kiểu dữ liệu cho các trường, hộp thoại thiết kế sẽ có dạng:

Để chọn kiểu dữ liệu, có thể dùng chuột chọn kiểu dữ liệu từ hộp thả; mặt khác cũng có thể nhấn ký tự đầu tiên của kiểu dữ liệu cần chọn mỗi khi định vị đến ô Data Type cần làm việc. Ví dụ:

Nhấn Sẽ được kiểu

A Autonumber

N Number

T Text

Y Yes/No

D Date/Time

Bước 4: Thiết lập trường khoá cho bảng [những bảng không có trường khoá có thể bỏ qua bước này].

– Chọn các trường muốn thiết lập khoá bằng cách: dùng chuột kết hợp giữ

phím Shift đánh dấu đầu dòng các trường muốn thiết lập khoá;

– Mở thực đơn Edit | Primary key để thiết lập thuộc tính khoá cho các trường vừa chọn. Cũng có thể ra lệnh này bằng cách nhấn nút Primary key trên thanh công cụ.

Sau khi thiết lập khoá, những trường khoá sẽ có biểu tượng như sau:

Biểu tượng của trường khoá

Bước 5: Lưu lại cấu trúc bảng. Nhấn tổ hợp phím Alt + S hoặc nhấn nút Save

trên thanh công cụ, hộp thoai yêu cầu ghi tên cho bảng xuất hiện:

Hãy gõ tên bảng và nhấn OK.

Đặc biệt:

– Với những bảng không thiết lập trường khoá, trong quá trình ghi lại cấu trúc bảng, máy tính sẽ hỏi:

Nhấn Yes- máy tính sẽ tạo thêm một trường mới có tên ID và thiết lập trường này làm khoá. Nếu không muốn như vậy hãy nhấn No; nhấn Cancel để huỷ lệnh cất.

– Tên bảng không nên chứa dấu cách, các ký tự đặc biệt khác hoặc chữ Việt có dấu.

Mỗi trường dữ liệu được khai báo trong cửa sổ trên đều có thể thiết lập được rất nhiều các thuộc tính tuỳ thuộc kiểu dữ liệu trường đó đã nhận. Các thuộc tính này có thể thiết lập tại phần Tập hợp các thuộc tính của các trường như đã trình bày ở trên. Dưới đây là danh sách một số các thuộc tính hay được sử dụng.

Thuộc tính Field size

Để thiết lập kích thước dữ liệu. Chỉ áp dụng cho các trường có kiểu dữ liệu

Number và Text.

Đối với các trường kiểu số, Field size cho biết trường đó nhận giá trị loại số nào.

6 KIỂU SỐ

TT Loại số Độ lớn

1 Byte số nguyên 2 byte

2 Integer số nguyên 4 byte

3 Long Integer số nguyên 6 byte

4 Single số thực 8 byte

5 Double số thực 12 byte

6 Decimal số thực 16 byte

Đối với các trường kiểu Text, thuộc tính này cho biết chiều dài tối đa của xâu ký tự. Ví dụ: Với trường Hoten thì Field size khoảng 30.

Thuộc tính Format

Để thiết lập định dạng dữ liệu khi hiển thị. Trường này áp dụng cho hầu hết các kiểu dữ liệu trừ ra kiểu: Memo, OLE, Yes/No

Thuộc tính Input Mark

Thiết lập mặt nạ nhập dữ liệu cho các trường. Kiểu này có thể áp dụng cho các loại trường kiểu Text, Number, Datetime, Currency.

Thuộc tính Default Value

Để thiết lập giá trị ngầm định cho trường mỗi khi ra lệnh thêm mới một bản ghi. Ví dụ: Trường số lượng mỗi khi thêm một bản ghi mới, giá trị trường này tự động là 1. Khi đó phải thiết lập thuộc tính Default Value của trường này là 1.

Thuộc tính Caption

Thiết lập tiêu đề cột mà trường đó hiển thị. Tên trường không nên chứa dấu cách và chữ Việt có dấu, nhưng Caption của các trường thì nên gõ bằng tiếng Việt có dấu sao cho dễ đọc và nhận biết. Đặc biệt giá trị thuộc tính Caption nếu có sẽ được sử dụng làm tiêu đề cho các trường tương ứng mỗi khi sử dụng công cụ Form Wizard hay Report Wizard sau này- sẽ rất tiện lợi.

Thuộc tính Validation Rule

Thiết lập điều kiện kiểm tra tính đúng đắn của dữ liệu khi được nhập vào.

Ví dụ: trường NgaySinh của học sinh phải nhập vào những ngày >= 1/1/1980 chẳng hạn. Khi đó ở thuộc tính Validation Rule của trường Ngaysinh hãy gõ vào \>=

1/1/1980#

Thuộc tính Required

Để yêu cầu phải nhập dữ liệu cho trường này [nếu thiết lập Yes] khi bắt đầu một bản ghi mới hoặc không nếu thiết lập No.

Còn một số các thuộc tính khác xin mời tham khảo qua phần Help của Access.

3. Thiết lập quan hệ

Một bước quan trọng trong xây dựng CSDL Access là thiết lập quan hệ các bảng trong CSDL. Làm được điều này bạn sẽ gặp được rất nhiều thuận lợi trong quá trình sử dụng các trình Wizard và Design View trong Access sau này.

Dưới đây sẽ là hướng dẫn cách thiết lập quan hệ cho một cặp bảng. Tương tự bạn phải thiết lập toàn bộ các quan hệ có thể trên CSDL.

Bước 1: Mở cửa sổ thiết lập quan hệ bởi thực đơn: Tools | Relationship..

Bước 2: Đưa các bảng [Tables] tham gia thiết lập quan hệ thông qua hộp thoại Show Tables [nếu chưa thấy hộp thoại này dùng thực đơn Relationship | Show table]:

Cách đưa các bảng lên cửa sổ thiết lập quan hệ [Database] như sau:

– Chọn bảng cần tham gia thiết lập quan hệ [thường thì chọn tất cả] ;

– Nhấn nút Add;

– Chọn xong toàn bộ nhấn Close để đóng cửa sổ.

Bước 3: Thực hiện tạo kết nối giữa từng cặp bảng theo thiết kế, cách làm như

sau:

Dùng chuột kéo [Drag] trường cần liên kết của bảng này [ví dụ trường hangID của bảng HANG] thả [Drop] lên trường cần liên kết đến của bảng kia [ví dụ trường hangID của bảng HANGBAN]. Khi đó hộp thoại Edit Relationships xuất hiện:

Trong trường hợp muốn thiết lập các thuộc tính đảm bảo toàn vẹn dữ liệu [Enforce Referential Integrity] cho quan hệ hãy thực hiện chọn [checked] 3 mục chọn sau:

dữ liệu;

để đồng ý thiết lập các thuộc tính đảm bảo toàn vẹn

đảm bảo toàn vẹn dữ liệu khi xoá dữ liệu giữa 2 bảng liên quan. Khi đó, nếu một bản ghi ở bảng có quan hệ 1 bị xoá, toàn bộ các bản ghi có quan hệ với bản ghi hiện tại sẽ được tự động xoá ở bảng có quan hệ nhiều [nếu xoá 1 CHA, toàn bộ các con của cha đó sẽ tự động bị xoá khỏi bảng CON];

đảm bảo toàn vẹn dữ liệu khi cập nhật dữ liệu giữa 2 bảng liên quan. Khi đó, nếu giá trị trường khoá liên kết ở bảng 1 bị thay đổi, toàn bộ giá trị trường khoá liên kết ở bảng nhiều cũng bị thay đổi theo.

Hộp Relationship Type: cho biết kiểu quan hệ giữa 2 bảng đang thiết lập:

– One – To – One Kiểu 1-1

– One – To – Many Kiểu 1-∞

– Indeterminate Không xác định được kiểu liên kết

Tuỳ thuộc vào kiểu khoá của các trường tham gia liên kết mà Access tự xác định ra được kiểu liên kết giữa 2 bảng. Dưới đây là một số kiểu liên kết được Access tự động xác định:

TT Bảng A Bảng B Kiểu liên kết

1 Khoá chính Khoá chính 1-1

2 Khoá chính Khoá phụ [hoặc không khoá] 1-n

3 Khoá phụ Khoá phụ [hoặc không khoá] Không xác định được kiểu liên kết

4 Không khoá Không khoá Không xác định được kiểu liên kết

Chú ý

– Khi hộp Relationships Type chỉ Indeterminate có nghĩa là quan hệ đang thiết lập không

đúng về cấu trúc khoá của 2 bảng [quan hệ sai];

– Trong trường hợp thiết lập các thuộc tính đảm bảo toàn vẹn dữ liệu nếu gặp phải hộp thoại thông báo lỗi:

Lỗi này do một số dữ liệu đang tồn tại trong bảng quan hệ ∞ không thoả mãn với bảng quan hệ 1. Hiểu đơn giản là: có một số mặt hàng khai báo trong bảng HANGBAN chưa có trong trong danh mục hàng [bảng HANG]Æ như vậy là không hợp lý, không thoả mãn các

điều kiện về toàn vẹn dữ liệu giữa 2 bảng này.

– Khi gặp phải lỗi sau đây khi kết nối giữa 2 bảng:

Tức là 2 trường tham gia kết nối không cùng kiểu dữ liệu. Ví dụ: một trường kiểu Number, trường kia kiểu Text; hoặc một trường kiểu Text, trường kia kiểu Date/Time – đều bị sai vì không cùng kiểu dữ liệu.

4. Nhập dữ liệu

Nhập dữ liệu là yêu cầu bắt buộc đối với bất kỳ một ứng dụng nào. Dữ liệu có thể được nhập vào CSDL bằng nhiều con đường khác nhau. Trong phần này sẽ trình bày cách nhập dữ liệu từ bàn phìm vào trực tiếp các bảng dữ liệu trong Access.

4.1 Cách nhập dữ liệu

Có 2 bước để có thể nhập trực tiếp dữ liệu vào bảng:

Bước 1: Mở bảng để nhập dữ liệu bằng cách: nhấn đúp chuột lên tên bảng cần nhập dữ liệu; hoặc chọn bảng cần nhập dữ liệu rồi nhấn nút Open;

Bước 2: Thực hiện nhập dữ liệu vào bảng đang mở bằng bàn phím

Chú ý : Một số lỗi có thể xảy ra khi nhập dữ liệu

Lỗi thứ nhất:

Lỗi do: Bạn đã nhập vào giá trị không tương thích với kiểu dữ liệu của trường đã chỉ định. Ví dụ: trường kiểu Numeric mà gõ vào chữ cái; hoặc không gõ đầy đủ các giá trị ngày, tháng, năm cho trường kiểu Date/Time,.. lỗi này sẽ xuất hiện.

Khắc phục: hãy nhập lại cho đúng, đủ giá trị các trường đã yêu cầu đến khi không xuất hiện thông báo lỗi.

Lỗi thứ 2:

Lỗi do: Bạn không nhập giá trị hoặc để trống giá trị trường khoá. Đã là trường khoá luôn yêu cầu phải nhập dữ liệu cho mỗi bản ghi.

Khắc phục: phải nhập đầy đủ giá trị cho trường khoá.

Lỗi thứ 3:

Lỗi do: Giá trị trường khoá trùng nhau. Giá trị trường khoá vừa nhập vào đã trùng với giá trị của một bản ghi nào đó trên bảng dữ liệu.

Khắc phục: nhập lại giá trị trường khoá khác sao cho vừa đúng, đủ và không bị trùng khoá.

Lỗi thứ 4:

Lỗi do: Bản ghi vừa nhập dữ liệu đã bỏ trắng trường bắt buộc nhập dữ liệu [những trường

được thiết lập thuộc tính Required=Yes]

Khắc phục: Phải nhập đủ dữ liệu cho các trường bắt buộc phải nhập dữ liệu.

Lỗi thứ 5:

Lý do: Lỗi do thực hiện một thao tác vi phạm các nguyên tắc đảm bảo toàn vẹn dữ liệu. Ví dụ: Bạn đã nhập dữ liệu trên một bảng có quan hệ mà bản ghi đang nhập không thể liên

kết được tới được một bản ghi nào của bảng có quan hệ 1 với nó [nhập một hàng bán mà mã hàng đó chưa có trong bảng danh mục hàng hoá]. Khắc phục: Tìm và nhập cho đúng giá trị theo bảng quan hệ 1 tương ứng. Tham khảo cách khắc phục lỗi này ở mục 5: thuộc tính LookUp.

4.2 Một số thao tác xử lý dữ liệu trên bảng

Đứng trước một bảng dữ liệu, có rất nhiều thao tác cần xử lý, ví dụ: sắp xếp bảng, tìm kiếm các bản ghi, xoá bản ghi nào đó,… Nội dung phần này trình bày cách sử dụng một số thao tác đó.

  1. Xoá bản ghi

Xoá bản ghi là thao tác xoá bỏ một số bản ghi ra khỏi bảng. Với bảng dữ liệu

đang mở có thể thực hiện 2 bước sau để xoá các bản ghi:

Bước 1: Chọn những bản ghi cần xoá. Có thể chọn một hoặc nhiều bản ghi bằng cách dùng chuột đánh dấu đầu dòng những bản ghi cần chọn;

Bước 2: Ra lệnh xoá bằng cách: mở thực đơn Edit | Delete Record hoặc nhấn nút Delete Record trên thanh công cụ hoặc nhấn phải chuột lên vùng đã chọn, tiếp theo nhấn Delete Record. Một hộp thoại xuất hiện để bạn khẳng

định một lần nữa việc xoá dữ liệu:

– Chọn Yes để đồng ý xoá;

– Nhấn No để huỷ lệnh xoá.

Chú ý

Dữ liệu đã đồng ý xoá sẽ không thể phục hồi lại được. Nên phải cân nhắc trước quyết định này cũng như cân nhắc trước các câu hỏi kiểu Yes/No truớc khi quyết định.

  1. Sắp xếp dữ liệu

Sắp xếp là việc thay đổi thứ tự hiển thị một bảng dữ liệu theo một trật tự nào đó. Kết quả của việc sắp xếp giúp người dùng có thể quan sát được tốt hơn dữ liệu trên bảng, tất nhiên muốn quan sát bảng dữ liệu theo trường nào phải thực hiện sắp xếp bảng theo dữ liệu trường ấy. Cách sắp xếp dữ liệu trên bảng đang mở như sau:

Bước 1: Đặt con trỏ lên trường [cột] muốn sắp xếp;

Bước 2: Nhấn nút lệnh sắp xếp trên thanh công cụ: – sắp xếp tăng dần hoặc – sắp xếp giảm dần. Bạn sẽ thu được kết quả như mong muốn.

  1. Lọc dữ liệu

Lọc dữ liệu là việc lọc ra những bản ghi trên bảng có cùng một số giá trị. Kết quả việc lọc dữ liệu sẽ giúp người dùng làm việc một cách hiệu quả trên tập hợp các bản ghi họ mong muốn.

Một ví dụ về tính hiệu quả của việc lọc dữ liệu:

Sắp đến ngày Quốc tế Phụ nữ 8-3. Cơ quan quyết định thưởng mỗi chị em

100,000đ. Đã có cột thưởng trên bảng cùng danh sách tất cả cán bộ cơ quan, làm sao để có thể nhập vào giá trị cột thưởng cho chị em [không nhập cho nam giới] là nhanh nhất.

Nếu cứ lần mò xem ai là nữ rồi nhập 100,000 cho cột thưởng sẽ là rất lâu. Nếu làm theo cách sau:

Bước 1: Lọc ra danh sách là các cán bộ nữ;

Bước 2: Nhập 100,000 cho tất cả các bản ghi đã lọc. Như vậy chắc chắn những cán bộ đang hiển thị [sau khi đã lọc] đều là chị em phụ nữ, không bỏ xót ai mà cũng không nhầm một người nam nào được lọt vào danh sách thưởng!

Các bước để lọc dữ liệu trên một bảng đang mở như sau:

Bước 1: Nhấn phải chuột lên trường cần lọc dữ liệu. Một menu xuất hiện:

Bước 2: Thiết lập điều kiện lọc trên trường đang chọn. Có rất nhiều cách để

xác định điều kiện lọc:

– Nếu muốn lọc những bản ghi có cùng giá trị của bản ghi đang chọn hãy chọn mục ; – Muốn lọc những bản ghi thoả mãn điều kiện nào đó, hãy gõ điều kiện lên mục: . Ví dụ: + Gõ >=10 – để lọc ra những bản ghi có giá trị trường đang thiết lập lọc lớn hơn hoặc bằng 10;

+ Gõ 3 – lọc ra những bản ghi có giá trị trường đang lọc khác 3,…

+ Đặc biệt: giá trị trống, rỗng được miêu tả là Null;

+ Lọc ra những người tên Nam gõ như sau Like ‘*Nam’;

+ Lọc ra giá trị trong khoảng 10 đến 15 gõ như sau: Between 10 And 15

[tham khảo toán tử Like và Between ở chương sau- Queries].

Muốn huỷ chế độ đặt lọc, nhấn phải chuột lên bảng dữ liệu và chọn mục:

5. Thuộc tính LOOKUP

Qua cách nhập dữ liệu cho bảng có quan hệ nhiều trên CSDL ta thấy việc nhập dữ liệu cho trường tham gia liên kết của bảng nhiều đòi hỏi phải có độ chính xác với dữ liệu trên bảng quan hệ 1 [phải nhớ mã để nhập]. Trong thực tế với những danh mục lên đến hàng trăm, thậm chí nhiều hơn nữa thì việc nhớ mã để nhập dữ liệu quả là khó khăn: hoặc gõ sai mã, nguy hiểm hơn gõ đúng nhưng nhầm mã. Thuộc tính LOOKUP sẽ giúp giải quyết phần nào việc khó khăn trong nhập dữ liệu trên các bảng quan hệ nhiều như vậy.

Thuộc tính LOOKUP được thiết lập tại trường tham gia liên kết trên bảng có quan hệ nhiều sang trường tham gia liên kết của bảng có quan hệ 1.

Ví dụ: Với CSDL Quản lý bán hàng thì:

– trường khachID của bảng HOADON phải thiết lập thuộc tính LOOKUP sang trường khachID của bảng KHACH;

– trường hangID của bảng HANGBAN phải thiết lập thuộc tính LOOKUP sang trường hangID của bảng HANG;

– trường hoadonID của bảng HANGBAN phải thiết lập thuộc tính LOOKUP

sang trường hoadonID của bảng HOADON.

Thông thường, ứng với mỗi quan hệ 1-∞ đã được thiết kế cần phải thiết lập thuộc tính LOOKUP cho trường tham gia liên kết từ bảng quan hệ 1 sang trường tham gia liên kết của bảng quan hệ nhiều. Một trong các cách thiết lập thuộc tính này đơn giản nhất là trình LookUp Wizard của Access. Dưới đây là ví dụ về thiết lập thuộc tính LOOKUP cho trường khachID của bảng HOADON sang trường khachID của bảng KHACH trong CSDL quản lý bán hàng:

Bước 1: Mở bảng có trường cần thiết lập LOOKUP ra [bảng HOADON] ở chế độ Design View bằng cách: chọn tên bảng, nhấn nút Design;

Bước 2: Kích hoạt trình LookUp Wizard bằng cách: Tại cột Data Type của trường cần thiết lập thuộc tính LOOKUP [trường khachID], chọn mục Lookup Wizard.. từ danh sách thả xuống:

Hộp thoại Lookup Wizard xuất hiện:

Hộp thoại này hỏi Dữ liệu để đưa vào danh sách chọn lấy từ đâu? Trong trường hợp này danh sách dữ liệu để chọn lấy từ bảng KHACH, nên chọn mục I want the lookup column to look up the values in a table or query.

Nhấn Next để tiếp túc:

Bước 3: Chọn dữ liệu cho danh sách:

Hộp thoại trên trả lời câu hỏi: Bảng [query] nào chứa dữ liệu cần đưa vào danh sách?. Trong trường hợp này lấy dữ liệu từ bảng KHACH nên mục View chọn Tables; và chọn bảng KHACH.

Chọn xong nhấn Next, hộp thoại sau xuất hiện:

Hộp thoại này trả lời câu hỏi: Giá trị những trường nào của bảng [query] đã chọn sẽ được hiển thị trên danh sách? Hãy dùng các nút >, >>,

Chủ Đề