III. Chức năng sửa dữ liệu IV. Xử lý dữ liệu thay đổi V. Thao tác xóa dữ liệu VI. Chức năng mở báo cáo
6.1, 6.2, 6.3, 6.4, 6.5 Bài 9: Phụ lục bài tập – Màn hình báo cáo
Chứng chỉ B Tin Học Quốc Gia Trang 89/131
I. Giới thiệu về các ràng buộc trên bảng dữ liệu
Khi thực hiện thao tác cập nhật dữ liệu cho bảng trong mô hình dữ liệu của Access ta cần phải chú ý quan hệ giữa các bảng với nhau. Quan hệ giữa các bảng được thiết lập thông qua những Field là khoá của bảng. Giá trị của những Field là khoá sẽ quyết định việc cập nhật dữ liệu trên bảng có hợp lệ hay không.
I.1. Khoá chính
Khoá chính của bảng dùng để chỉ một tập hợp những Field thuộc bảng, thông tin lưu trữ của tập hợp này không được trùng lắp giữa các mẩu tin (dòng).
Do các giá trị của khoá chính không được trùng lặp, nên khoá chính là yếu tố để phân biệt các mẩu tin trong bảng.
Ràng buộc khoá chính trong việc thêm mới một mẩu tin
Khi người dùng thêm mới một mẩu tin vào bảng có sử dụng khoá chính, nếu giá trị thêm mới của khoá chính đã có trong bảng, MS Access sẽ hiển thị câu thông báo lỗi và yêu cầu người dùng nhập lại giá trị cho khoá chính.
I.2. Khoá ngoại
Khoá ngoại của một bảng dùng để chỉ một tập hợp những field có trong bảng, những Field này dùng để liên kết với khoá chính của bảng liên quan.
Mục đích của việc sử dụng khoá ngoại cho bảng :
Khi cần xác lập mối quan hệ giữa 2 bảng với nhau thì thông qua khoá ngoại của bảng này (bảng con) để liên kết với khoá chính của bảng kia (bảng cha). Khi đó khoá ngoại và khoá chính phải giống nhau về kiểu dữ liệu.
Ràng buộc khoá ngoại trong việc thêm mới hay sửa một mẩu tin
Khi người dùng thêm mới một mẩu tin vào bảng con. Nếu giá trị của khoá ngoại không tồn tại bên bảng cha thì MS Access sẽ hiển thị câu thông báo lỗi và yêu cầu người dùng nhập lại giá trị cho khoá ngoại.
Ràng buộc khoá ngoại trong việc xoá mẩu tin
Khi xoá một mẩu tin bên bảng cha. Nếu giá trị cần xoá tồn tại bên bảng con thì MS Access sẽ hiển thị câu thông báo lỗi và không cho người dùng xoá mẩu tin đó.
II. Chức năng thêm mới
II.1. Thêm dữ liệu trên Form
Khi thiết kế Form có nguồn dữ liệu ta luôn có thể thêm mới dữ liệu vào nguồn của nó. Tuy nhiên, Access cũng cung cấp khả năng không cho thêm mới dữ liệu nếu ta chỉ muốn cho
Chứng chỉ B Tin Học Quốc Gia Trang 90/131
người sử dụng xem thông tin và không được thêm dữ liệu. Bằng cách thay đổi giá trị của thuộc tính Allow Additions ta có thể điều khiển được việc thêm mới dữ liệu trên Form.
Thuộc tính Allow Additions có kiểu là Boolean. Giá trị của thuộc tính này có thể được thiết lập thông qua trang thuộc tính, khi đó giá trị của nó là Yes hoặc No. Ngoài ra, ta cò có thể gán giá trị của thuộc tính này trong cửa sổ lệnh VBA, khi này giá trị của nó là True hay False. Thuộc tính Allow Additions của Form cho phép dữ liệu trên Form có được thêm mới hay không tuỳ vào giá trị của nó:
Yes/True: cho phép thêm mới dữ liệu trên Form
No/ False: không cho phép thêm mới dữ liệu có trên Form
Do đó, khi thực hiện thao tác thêm mới ta phải chú ý đến thuộc tính Allow Additions.
II.2. Cách thức thêm mới dữ liệu
Thao tác thêm mới dữ liệu trên Form thực chất là di chuyển đến một mẩu tin trống trong bộ mẩu tin nguồn của Form và nhập giá trị cho những Field tương ứng, bộ mẩu tin nguồn luôn có một dòng trống để phục vụ cho việc thêm mới dữ liệu.
Để di chuyển đến mẩu tin trống trên Form ta có nhiều cách khác nhau: sử dụng chức năng di chuyển có trên Form hay sử dụng lệnh trong cửa sổ viết lệnh VBA.
II.2.1. Sử dụng chức năng di chuyển của Form:
Sử dụng công cụ di chuyển của Form, thanh Navigation Buttons. Ta có thể dùng nút di chuyển về sau, nút có hình , để đi qua các mẩu tin cho đến khi gặp mẩu tin trống. Ngoài ra, ta có thể sử dụng nút cuối cùng , để di chuyển nhanh đến mẩu tin trống. Bên cạnh đó, ta còn có thể sử dụng phím Page Up, Page Down để di chuyển qua lại
các mẩu tin của nguồn dữ liệu. Như vậy, muốn di chuyển đến mẩu tin trống ta sử dụng phím Page Down để đi qua các mẩu tin cho đến khi gặp mẩu tin trống.
II.2.2. Sử dụng lệnh trong cửa sổ VBA:
Ta có thể tự thiết kế chức năng thêm mới của Form thông qua nút lệnh. Khi này, màn hình có thể thực hiện một số chức năng hổ trợ cho việc thêm mới, như là: khoá mở điều khiển, ẩn hiện các nút chức năng, …
Thao tác thêm mới trên Form thường được xuất phát từ sự kiện click của một đối tượng Command Button
Một số điểm cần lưu ý khi thiết kế chức năng thêm mới trên Form:
+ Phải tắt hết tất cả những khả năng thêm mới tự động của Form: tắt thanh di chuyển (Navigation Buttons), vô hiệu hoá tính năng thêm mới khi di chuyển mẩu tin thông qua phím PageDown bằng thuộc tính AllowAdditions.
+ Khi đang thực hiện chức năng thêm mới thì không cho người sử dụng thực hiện bất kỳ chức năng nào khác, thông qua các nút chức năng trên màn hình, ngoài 2 chức năng ghi hay không ghi dữ liệu đang thêm mới.
Chứng chỉ B Tin Học Quốc Gia Trang 91/131
trống trong nguồn dữ liệu theo cú pháp sau: DoCmd.GotoRecord , , acNewRec
II.2.3. Các bước thực hiện
Thao tác thêm mới dữ liệu trên màn hình có thể thực hiện thông qua một số bước sau: Bước 1: Thiết lập giá trị cho thuộc tính AllowAdditions
Bước 2: Gọi lệnh thực hiện chức năng thêm mới Bước 3: Cập nhật trạng thái các điều khiển trên form Chi tiết thực hiện các bước:
Bước 1: Thiết lập giá trị cho thuộc tính AllowAdditions
Gán giá trị AllowAdditions của Form là True để bật chế độ cho thêm mới trên Fom. Bước này sẽ được thực hiện nếu trước khi thêm mới dữ liệu thuộc tính AllowAdditions
của Form có giá trị là False. Nghĩa là khi Form đang ở trạng thái xem thông tin thì sẽ không cho phép chỉnh sửa nội dung, chỉ khi nào kích hoạt chức năng thêm ta mới chuyển Form sang trạng thái có thể thêm thông tin.
Bước 2: Gọi lệnh thêm mới
Thực hiện câu lệnh: DoCmd.GotoRecord , , acNewRec
Bước 3: Cập nhật trạng thái các điều khiển
Như đã nói ở trên thì khi đang thêm mới ta không thể thực hiện những chức năng khác. Để làm chuyện này ta sẽ thay đổi trạng thái của các điều khiển thông qua một trong hai thuộc tính là Enabled hay Visible của từng điều khiển.
Ví dụ:
Trên màn hình có nhóm chức năng: Thêm, Sửa, Xoá, Ghi, Không. Khi đang thực hiện chức năng Thêm thì sẽ làm mờ các điều khiển của chức năng Thêm, Sửa, Xoá và chỉ cho phép thực hiện 2 chức năng Ghi, Không.
II.2.4. Ví dụ:
Để thực hiện thao tác thêm mới một nhân viên ta thực hiện các bước sau:
Chứng chỉ B Tin Học Quốc Gia Trang 92/131
Chọn sự kiện click của nút Thêm, giả sử đặt tên cho nút là cmdThem Trong thủ tục của sự kiện click ta viết đoạn lệnh sau:
Private Sub cmdThem_Click()
AllowAdditions = True ‘ Bước 1 DoCmd.GotoRecord , , acNewRec ‘ Bước 2 txtManv.SetFocus
‘ Làm mờ các chức năng Thêm, Xoá, Sửa Bước 3 cmdThem.Enabled = False
cmdSua.Enabled = False cmdXoa.Enabled = False
‘ Giả sử trước khi click nút Thêm thì 2 nút Ghi, Không bị mờ ‘ Do đó, ta sẽ hai nút Ghi, Không sáng lên khi click nút Thêm cmdGhi.Enabled = True
cmdKhong.Enabled = True End Sub