ACCESS 2 : PHẦN BÀI TẬP Tập tin CSDL là QLSV.mdb Bài 1: Các yêu cầu xử lý chính: Bộ nút di chuyển có xử lý thông báo lỗi bằng tiếng Việt không dấu khi không thể di chyển được nữa Nút Th
Trang 1ACCESS 2 : PHẦN BÀI TẬP
Tập tin CSDL là QLSV.mdb
Bài 1:
Các yêu cầu xử lý chính:
Bộ nút di chuyển có xử lý thông báo lỗi bằng tiếng Việt (không dấu) khi không thể
di chyển được nữa
Nút Thêm: cho phép thêm mới một mẫu tin
Nút Hủy: nếu Khoa hiện hành trên form không có sinh viên thì cho hủy, ngược lại thì không
Nút Thoát: đóng form, trước khi thoát có hỏi lại người dùng
Bài 2:
Trang 2Các yêu cầu xử lý chính:
Bộ nút di chuyển có xử lý thông báo lỗi bằng tiếng Việt (không dấu) khi không thể
di chyển được nữa
Nút Thêm: cho phép thêm mới một mẫu tin
Nút Hủy: nếu Khoa hiện hành trên form không có sinh viên thì cho hủy, ngược lại thì không
Nút Thoát: đóng form, trước khi thoát có hỏi lại người dùng
Nút : hiện ra form Bài 1 để thêm 1 Khoa
Mã khoa: là 1 combo box chứa các Khoa, gồm 2 cột: MAKH, TENKH
Phái: là combo box cho phép chọn Nam hay Nữ (tương ứng với các giá trị -1 và 0) Khi thêm, sửa trên subform:
Combo Mã môn chứa các môn học, gồm 2 cột: MAMH, TENMH
Kiểm tra Điểm nằm trong khoảng từ 0 -> 10
Bài 3:
Các yêu cầu xử lý chính:
Bắt đầu chạy form thì mờ đi 2 nút Ghi, Không
List box chứa danh sách tất cả các môn học
Bộ nút di chuyển có xử lý sáng/mờ khi không thể di chyển được nữa
Nút Thêm: cho phép thêm mới 1 mẫu tin trên form, khi đó cho sáng lại 2 nút Ghi, Không và mờ đi các nút chức năng còn lại
Trang 3Nút Ghi, Không: thực hiện ghi hoặc không ghi mẫu tin Khi thực hiện thành công sẽ mờ đi 2 nút này và sáng các nút chức năng còn lại
Nút Hủy: hủy môn học hiện hành, nếu môn học đó đã có điểm thì không cho phép xóa
Nút Tìm: cho phép tìm theo cột MAMH bằng form tìm của Access
Nút Thoát: đóng form, trước khi thoát có hỏi lại người dùng
Khi chọn 1 môn học trong list box, thì mẫu tin hiện hành trên form sẽ tương ứng với giá trị được chọn trong list box
Khi di chuyển mẫu tin hiện hành trên form, vệt sáng trong list box cũng tương ứng tại vị trí MAMH hiện hành trên form
Bài 4:
Các yêu cầu xử lý chính:
Ban đầu khi chưa chọn Mã khoa, form không thể hiện dữ liệu
Combo Chọn mã khoa chứa tất cả các khoa, gồm 2 cột: MAKH, TENKH
List box SV chứa danh sách các sinh viên theo khoa được chọn ở combo Chọn mã khoa
Subform Kết quả chứa kết quả các môn học của sinh viên được chọn trong list box SV
Trang 4Khi chọn 1 mã khoa, tên khoa tự động hiện ra Khi đó, liệt kê các sinh viên thuộc khoa đó trong list box SV
Ô Tổng số sinh viên: đếm tổng số sinh viên hiện có trong list
Ô Điểm trung bình: tính điểm trung bình của sinh viên được chọn trong list SV
Ô Tổng số môn đậu: đếm số môn đậu của sinh viên được chọn trong list SV
Ô Tổng số sinh viên trong khoa: đếm số sinh viên của khoa được chọn trong combo Mã khoa
Ô Xếp loại: ĐTB >= 9 : Giỏi ĐTB >= 7 : Khá ĐTB >= 5 : TB
Nút In báo cáo: xuất báo cáo Điểm thi của sinh viên theo khoa ( Phần Report 2) ra màn hình Lưu ý chỉ đưa ra thông tin liên quan đến khoa được chọn trong combo Mã khoa
Bài 5:
Trang 1: Cập nhật
Trang 2: Liệt kê
Trang 5Các yêu cầu xử lý chính:
Các yêu cầu chức năng ở trang Cập nhật tương tự như Bài 3
List box môn học chứa danh sách tất cả các môn học
Khi mới di chuyển sang trang Liệt kê, vệt sáng trong list box phải tương ứng với giá trị của MAMH ở trang Cập nhật
Ngược lại, khi chọn 1 môn học trong list box và trở về trang Cập nhật thì mẫu tin hiện hành của form phải tương ứng với giá trị vừa chọn trong list box
Ô Tổng số môn học: đếm tổng số môn học đang có trong list box
Bài 6:
Các yêu cầu xử lý chính:
Combo Chọn cột cho phép chọn các cột có trên form nhằm mục đích tìm kiếm, sắp xếp, lọc dữ liệu theo cột vừa chọn
Ô Giá trị tìm/ lọc dữ liệu cho phép nhập vào giá trị cần tìm hoặc giá trị cần lọc tương ứng với tên cột được chọn trong combo Chọn cột
Nút Tìm kiếm: thực hiện tìm theo cột được chọn trong combo Chọn cột với giá trị tìm được nhập trong ô Giá trị tìm/ lọc dữ liệu
Trang 6Nút Sắp xếp: thực hiện sắp xếp theo tên cột được chọn trong combo Chọn cột với dạng sắp xếp đã chọn
Nút Lọc dữ liệu: thực hiện lọc dữ liệu theo tên cột được chọn trong combo Chọn cột với giá trị lọc được nhập trong ô Giá trị tìm/ lọc dữ liệu
Nút Hủy lọc: hiện lại tất cả mẫu tin trên form
Group Lọc trực tiếp theo Phái: thực hiện lọc dữ liệu theo PHÁI Mục Tất cả chức năng giống hủy lọc
Nút Thoát: đóng form, trước khi thoát có hỏi lại người dùng
Bài 7:
a Tạo Menu sau:
Các yêu cầu xử lý chính:
Mở Bảng : chứa tất cả các bảng trong CSDL là QLSV.mdb
Mở Form : chứa tất cả các form trong CSDL là QLSV.mdb
Mở Report : chứa tất cả các report trong CSDL là QLSV.mdb
Mở Query : chứa tất cả các query trong CSDL là QLSV.mdb
HELP : chọn Thông tin sẽ hiển thị
chọn Thoát sẽ đóng lần lượt
b Tạo Toolbar sau:
Trang 7Các yêu cầu xử lý chính:
Gắn TOOLBAR này vào form Bài 1 ở trên Thiết lập các bộ nút di chuyển
đóng form hiện hành
HƯỚNG DẪN
Bài 1:
Tạo Macro nhóm như sau:
Bài 2:
Tạo Macro nhóm như sau:
Trang 8Bài 3:
Tạo Macro nhóm như sau:
Trang 9Bài 4:
Tổng số sinh viên: =DCount("masv","sinhvien")
Điểm trung bình: =DAvg("diem","ketqua","masv='" & [lstsv] & "'")
Tổng số môn đậu: =DCount("mamh","ketqua","masv='" & [lstsv] & "' and
diem>=5 ")
Tổng số môn rớt: =DCount("mamh","ketqua","masv='" & [lstsv] & "' and diem<5
")
Xếp loại:
=IIf([txtdtb]>=9,"Giỏi",IIf([txtdtb]>=7,"Khá",IIf([txtdtb]>=5,"Trung
bình","Yếu")))
Tổng số sinh viên trong Khoa: =DCount("masv","sinhvien","makh='" &
[cbomakh] & "'")
Bài 5:
Tạo Macro nhóm như sau:
Action Arguments của GotoControl
Action Arguments của FindRecord
Action Arguments của SetValue
Bài 6:
Tạo Macro nhóm như sau:
Trang 10Bài 7:
Dùng các lệnh All Tables, All Forms, All Reports, All Queries, All Macros Thao tác gắn Toolbar vào form: chọn thẻ Others \ Toolbar
Trang 11ACCESS 3 : PHẦN BÀI TẬP
Tập tin CSDL là QLSV.mdb
Sử dụng VBA (Visual Basic for Applications)
Bài 1:
Yêu cầu:
Thiết kế giống Form hộp thoại trên
Nhấn nút Chào: sẽ hiển thị lời chào: “Chào mừng bạn đến học phần ACCESS
3.”
Nhấn nút Thoát: sẽ đóng Form.
Bài 2:
Yêu cầu:
Nhập tên cho textbox Tên (Name: txtten) Nhấn vào nút Thông Báo thì textbox
Thông báo (Name: txtthongbao) sẽ xuất hiện chuỗi “Chào bạn ” cùng với tên vừa
nhập cho textbox Tên ở trên
Nút Xoá: xoá trắng 2 text box Con trỏ sẽ nằm tại txtten.
Trang 12Nút Thoát: đóng form
Bài 3:
Yêu cầu:
Khi nhấn nút Tính:
Sẽ tính điểm trung bình và hiển thị điểm trung bình tại txtDTB Sau đó hiển thị kết quả xếp loại học tập của học sinh tại txtXL
Biết rằng: Điểm trung bình = 10 : Xuất sắc
10 >Điểm trung bình >=9 : Giỏi
8 >Điểm trung bình >=7 : Khá
7 >Điểm trung bình >=5 : Trung bình
Ngược lại : Yếu
Bài 4:
Trang 13Yêu cầu xử lý chức năng:
Khi click vào nút Danh sách sinh viên thì cho mở Report1 và lọc nguồn dữ liệu theo Khoa đang chọn trong combo box
Khi click vào nút Bảng điểm thì cho mở Report2 và lọc nguồn dữ liệu theo sinh viên đang chọn trên listbox
Các thao tác thêm, xóa, sửa thông tin điểm thi của sinh viên sẽ được thực hiện trực tiếp trên subform
Mã môn học của subform là 1 combo box dùng để liệt kê tất cả những môn học chưa có điểm của sinh viên đang chọn trên listbox
Tên môn học không cho chỉnh sửa, giá trị sẽ tự động hiển thị sau khi chọn một mã môn có trong danh sách của combo box mã môn
Yêu cầu xử lý lỗi:
Khoa chỉ cho phép chọn 1 trong những giá trị có trong danh sách của combo box Nếu người dùng nhập 1 giá trị không tồn tại trong danh sách phải thông báo và yêu cầu họ chọn lại giá trị cho Khoa
Mã môn học chỉ cho phép chọn 1 trong những giá trị có trong danh sách của combo box Nếu người dùng nhập 1 giá trị không tồn tại trong danh sách phải thông báo và yêu cầu họ chọn lại giá trị cho Mã môn học
Điểm phải từ 0 đến 10
Điểm phải là kiểu số
Bài 5:
Trang 14Yêu cầu xử lý chức năng:
Các thao tác thêm, xóa, sửa thông tin của sinh viên sẽ được thực hiện trực tiếp trên subform Giới tính trong subform là 1 combo box liệt kê 2 giá trị là Nam và Nữ Các thao tác thêm, xóa, sửa thông tin điểm thi của sinh viên sẽ được thực hiện trực tiếp trên subform
Mã môn trong subform là 1 combo box liệt kê những môn chưa có điểm của sinh viên hiện hành
Tên môn học không cho chỉnh sửa, giá trị sẽ tự động hiển thị sau khi chọn 1 mã môn có trong danh sách của combo box Mã môn
Yêu cầu xử lý lỗi:
Combo box Khoa giống bài 4
Combo box Mã môn học giống bài 4
Giới tính chỉ cho phép chọn 1 trong những giá trị có trong danh sách của combo box Nếu người dùng nhập 1 giá trị không tồn tại trong danh sách phải thông báo và yêu cầu họ chọn lại giá trị cho Giới tính
Tuổi từ 18 đến 70
Điểm từ 0 đến 10
Học bổng từ 0 đến 1.000.000
Ngày phải là kiểu ngày
Điểm phải là kiểu số
Bài 6:
Trang 15Yêu cầu xử lý chức năng:
Lọc dữ liệu của sub theo 2 điều kiện là Tuổi của sinh viên và Khoa mà sinh viên đang theo học
Điều kiện lọc của tuổi là Lớn hơn hay Nhỏ hơn giá trị nào đó Sử dụng một combo
box để người sử dụng chọn phép toán cần lọc
Điều kiện lọc của Khoa theo 1 tên khoa Sử dụng combo box liệt kê danh sách những tên khoa hiện có trong CSDL
Khi click vào nút Lọc thì subform sẽ hiển thị những sinh viên thỏa điều kiện lọc Chỉ lọc nếu điều kiện chứa giá trị lọc có dữ liệu, nếu không thì sẽ bỏ qua điều kiện lọc nào không có giá trị
Khi click vào nút Bỏ lọc thì dẽ hiển thị tất cả dữ liệu của subform như khi lọc dữ liệu
HƯỚNG DẪN
Bài 1:
CODE CHO NÚT CHÀO:
Private Sub CMDCHAO_Click()
MsgBox " Chào mừng bạn đến học phần ACCESS 3"
End Sub
CODE CHO NÚT THOÁT:
Trang 16Private Sub cmdthoat_Click()
DoCmd.Close
End Sub
Bài 2:
CODE CHO NÚT THÔNG BÁO:
Private Sub cmdtb_Click()
txttb = "Chào bạn " & " " & txtnt & " !!!"
End Sub
CODE CHO NÚT XÓA:
Private Sub cmdxoa_Click()
txtnt = ""
txttb = ""
txtnt.SetFocus
End Sub
Bài 3:
CODE CHO NÚT TÍNH:
Private Sub cmdtinh_Click()
txtdiemtb = (Val(txttoan) * 2 + Val(txtly) + Val(txthoa)) / 4 Select Case txtdiemtb
Case 10
txtXL = "Xuất sắc"
Case Is >= 9
txtXL = "Giỏi"
Case Is >= 7
txtXL = "Khá"
Case Is >= 5
txtXL = "Trung bình"
Case Else
txtXL = "Yếu"
End Select
Trang 17End Sub
Bài 4:
CODE CHO NÚT DANH SÁCH SINH VIÊN:
Private Sub Command12_Click()
DoCmd.OpenReport "Report1”, acViewPreview, , "makh=forms!bai4! cbokhoa"
End Sub
CODE CHO NÚT BẢNG ĐIỂM:
Private Sub Command13_Click()
DoCmd.OpenReport " Report2", acViewPreview, , "masv=forms!bai4!lstsv" End Sub
T
ạ i On Not in List c ủ a combo box:
Private Sub MAMH_NotInList(NewData As String, Response As Integer)
Response = 0
MsgBox "Ban phải chọn giá trị cĩ trong ComboBox", vbYesNo, "Thơng Báo" End Sub
T
ạ i Before Update c ủ a textbox:
Private Sub DIEM_BeforeUpdate(Cancel As Integer)
If (DIEM < 0 Or DIEM > 10) Then
MsgBox "Điểm phải từ 0 đến 10", vbYesNo, "Thông Báo"
Cancel = True
End If
End Sub
T
ạ i On Error c ủ a formsub:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Response = 0
Select Case DataErr
Case 2113:
MsgBox "Điểm phải là kiểu dữ kiệu số !"
Case Else
Trang 18MsgBox "Lỗi khác !"
End Select
End Sub
Bài 6:
CODE CHO NÚT LỌC:
Private Sub cmdloc_Click()
If cbopheptinh = 1 Then
Me.sub2.Form.FilterOn = True
Me.sub2.Form.Filter = " tuoi>" & txttuoi & "and makh='" & cbokhoa & "'" Else
Me.sub2.Form.FilterOn = True
Me.sub2.Form.Filter = " tuoi<" & txttuoi & "and makh='" & cbokhoa & "'" End If
End Sub
CODE CHO NÚT BỎ LỌC:
Private Sub cmdhuy_Click()
DoCmd.ShowAllRecords
End Sub