BÀI TẬP ACCESS 1 Cần phải xây dựng cơ sở dữ liệu để quản lý một hệ thống bán trang thiết bò máy vi tính với các thông tin sau: • Mỗi một hoá đơn có duy nhất một số hoá đơn, thông tin về hoá đơn gồm có mã khách hàng, mã số nhân viên thực hiện hoá đơn này, mã sản phẩm, ngày xuất nhập hàng, loại vật tư (nhập hoặc xuất), số lượng, đơn giá, hình thức thanh toán. • Mỗi một khách hàng có mã khách hàng, tên, điạ chỉ và số điện thoại. Trong đó mã khách hàng của mỗi khách hàng là duy nhất. • Mỗi một sản phẩm có duy nhất một mã sản phẩm. Ngoài ra còn có các thông tin về tên sản phẩm, đơn giá và đơn vò tính. • Bảng chấm công cho mỗi nhân viên gồm có mã nhân viên, ngày công, ngày phép và ngoài giờ. • Hồ sơ nhân viên gồm có các thông tin về mã nhân viên, họ lót, tên, tình trạng hôn nhân (đã lập gia đình hay chưa, trình độ văn hoá, phái, lương căn bản, ngày sinh, ngày vào làm việc, số con và hình ảnh lưu giữ). Dựa vào thông tin trên, tập tin cơ sở dữ liệu QLBHANG.MDB đã hình thành các bảng như sau: • HOADON(SoHD, MaKh, MaSp, MaNV, Ngay, LoaiVT, SoLuong, DonGia, HTTT). • KHACHHANG(MaKH, TenKH, DiaChi, Phone) • SANPHAM(MaSP, TenSP, DonGia, Dvt) • CHAMCONG(MaNV, NgayCong, NgayPhep, NgoaiGio) • HSNV(MaNV, HoLot, Ten,CoGD, TDVH, Phai, LCB, NgaySinh, NgayNV, SoCon, Hinh) Các field được gạch dưới là khoá của table tương ứng. Mối liên kết và dữ liệu của các bảng có thể xem trong tập tin C:\QLBHANG.MDB Dựa vào cơ sở dữ liệu đã cho, thực hiện các yêu cầu sau: 1. Xây dựng truy vấn qryBHang1 cho biết mã số, tên, số lượng và hình thức thanh toán của các sản phẩm (Tm: tiền mặt, Tp: tín phiếu, No: Nợ) đã được xuất trong năm 2002. 2. Xây dựng truy vấn qryBHang2 cho biết thông tin về các nhân viên nam (phai = yes) lớn hơn 30 tuổi và làm việc hơn 20 ngày công/tháng gồm: mã nhân viên, họ tên (nối họ và tên), tình trạng hôn nhân (CóGĐ hoặc ChưaCóGĐ), trình độ văn hoá, số con, ngày công, ngày phép và ngoài giờ. 3. Xây dựng truy vấn qryBHang3 cho biết mã nhân viên, họ tên (nối họ và tên), giới tính, lương cơ bản, và lương cho các nhân viên. Với lương được tính như sau: Luong = Lcb*(NgayCong + NgayPhep) + NgoaiGio*2*Lcb + PhuCapCon PhuCapCon = Nếu số con > 3 thì phụ cấp 200.000, nếu số con >2 thì phụ cấp được 100.000, còn lại phụ cấp 50000 4. Xây dựng truy vấn qryBHang4 sao cho khi nhập vào một mã số nhân viên bất kỳ thì biết được chi tiết các hoá đơn mà nhân viên này đã thực hiện: mã số hoá đơn, tên sản phẩm, tên khách hàng, ngày thực hiện, loại vật tư (Nhập hoặc Xuất), số lượng, đơn giá, hình thức thanh toán (Tm: tiền mặt, Tp: tín phiếu, No: Nợ). 5. Xây dựng truy vấn qryBHang5 cho biết công ty có bao nhiêu nhân viên nam (phái = yes là nam) có trình độ đại học. 6. Xây dựng truy vấn qryBHang6 cho biết tổng số lượng hàng đã được xuất vào trong năm 2003. 7. Xây dựng truy vấn qryBHang7 để thống kê số lượng nhập/xuất của từng mặt hàng như hình 1: 8. Xây dựng truy vấn qryBHang8 để thống kê trình độ học vấn theo giới tính của các nhân viên trong công ty như hình 2: Hình 1 Hình 2 9. Tạo form frmThongTinNhanVien để hiển thò các thông tin về nhân viên như : Mã nhân viên, họ tên (nối họ và tên), Phái, trình độ văn hoá, trình độ văn hoá, số con và hình. 10. Tạo form frmHoaDon để hiển thò thông tin chi tiết của từng hoá đơn như hình 3. Yêu cầu: Form không có thanh cuộn (Scroll Bars), không có nút Min, Max, không có thanh chọn bảng ghi (Record Selector), không có Dividing Lines. Sử dụng font Vni-Times để hiển thò tiếng Việt. Hình 3 Hình 4 11. Thiết kế form frmNhanVienVaHoaDon hiển thò chi tiết các hoá đơn mà mỗi nhân viên đã thực hiện nhập xuất như hình 4. 12. Thiết kế form frmSanPhamVaHoaDon hiển thò chi tiết các lần nhập hàng của từng sản phẩm như hình: Yêu cầu: Khi nhấn vào nút ChiTietNhapXuat, một subform như hình sẽ xuất hiện để hiển thò thông tin các lần nhập xuất của sản phẩm này. 13. Thiết kế form frmSanPham hiển thò thông tin về mã số, tên, đơn vò tính và đơn giá cho các sản phẩm như hình bên Yêu cầu: Form không có thanh cuộn (Scroll Bars), không có nút Min, Max, không có thanh chọn bảng ghi (Record Selector), không có Dividing Lines, không có Navigation buttons. Thiết kế các nút VeDau, Truoc, KeTiep và VeCuoi để chúng hoạt động giống như Navigation Buttons. 14. Thiết kế form frmChamCongNhanVien có dạng như sau: Yêu cầu Khi chọn bất cứ nhân viên nào từ combo box mã nhân viên thì các thông tin về họ tên, hình, ngày công, ngày phép, ngoài giờ, ngày công thực của nhân viên đó được hiển thò tương ứng. Với: NgàyCôngThực = NgàyCông + NgàyPhép + NgoàiGiờ * 2 15. Thiết kế form frmXuatNhapHangHoa để hiển thò các hoá đơn của mỗi khách hàng có trong cơ sở dữ liệu. Yêu cầu: Khi chọn bất kỳ mã khách hàng nào từ combo box mã khách hàng thì tên, đòa chỉ, điện thoại và các thông tin về hoá đơn của khách hàng này cũng được hiển thò tương ứng. 16. Thiết kế form có dạng như sau (Hình tuỳ chọn) Yêu cầu: - Với khung Mở Form, khi người sử dụng nhấn vào nút (button): • CHẤM CÔNG thì hiển thò form frmChamCongNhanVien (Câu 14). • NHÂN VIÊN thì hiển thò form frmNhanVienVaHoaDon (Câu 11). • SẢN PHẨM thì hiển thò form frmSanPhamVaHoaDon (Câu 12). • XUẤT NHẬP thì hiển thò form frmXuatNhapHangHoa (Câu 15) Hình 6 Hình 5 -Với khung Thực Hiện Truy Vấn, khi người sử dụng nhấn vào nút (button) • Chi tiết hoá đơn thì hiển thò kết quả của truy vấn qryBanHang4 • Tính lương thì hiển thò kết quả của truy vấn qryBanHang3 • Thống kê học vấn thì hiển thò kết quả của truy vấn thống kê qryBanHang8 • Thống kê hàng hoá thì hiển thò kết quả của truy vấn thống kê qryBanHang7 - Nút Đóng Form dùng để đóng Form Main. - Nút Thoát Access để thoát khỏi Access. 17. Tạo rptNhanVienXuatHang để báo cáo chi tiết về tình hình xuất hàng mỗi nhân viên trong cơ sở dữ liệu như sau (hình dưới đây chỉ in vài hàng để làm mẫu): 18. Tạo report rptChiTietNhapXuat để báo cáo chi tiết nhập xuất của mỗi khách hàng trong cơ sở dữ liệu. Báo cáo gồm thông tin sau: tên khách hàng, số hoá đơn, mã sản phẩm, ngày nhập xuất, loại vật tư (nhập hoặc xuất), số lượng, hình thức thanh toán (tiền mặt, tín phiếu hoặc nợ) và thành tiền. Trong đó Thành Tiền = số lượng * đơn giá. Trong báo cáo cho biết tổng thành tiền của mỗi khách hàng và cuối báo cáo có tổng thành tiền của tất cả các khách hàng. 19. Tạo report rptNhapXuatSanPham để báo cáo chi tiết tình hình nhập xuất nhập của mỗi sảnphẩm trong cơ sở dữ liệu. Trong báo cáo cho biết tổng số lượng nhập, tổng số lượng xuất của từng sản phẩm và đánh số thứ tự cho các chi tiết trong báo cáo như mẫu. Ngoài ra, mỗi sản phẩm được in trên một trang riêng. LỚP CHUYÊN VIÊN - BÀI TẬP ACCESS 2 Bài tập này sử dụng cơ sở dữ liệu C:\Hh1.MDB Câu 1 : Hãy tạo table THISINH gồm các thông tin sau : Field Name Data Style Field Properties SOMAY Text Fieldsize : 3 HOTEN Text Fieldsize : 30 NGAYSINH Date/Time NOISINH Text Fieldsize : 20 Đặt khóa chính cho field SOMAY. Sau đó nhập dữ liệu là thông tin của Anh (Chò) vào các field trên. Câu 2 : Hãy đặt khóa chính (Primary Key) và tạo quan hệ (Relationships) cho các table như sau: Câu 3: Tạo truy vấn qryNam75 bao gồm các học sinh nam, sinh năm 1975. Truy vấn gồm các thông tin : LOP, MAHS, HOTEN, NAMSINH, TOAN, LY, HOA, VAN. Câu 4 : Tạo truy vấn qryKetQuaThi chứa kết quả thi của từng học sinh bao gồm các thông tin : LOP, MAHS, HOTEN, NAMSINH, PHAI, TOAN, LY, HOA, VAN, DTB, XEPLOAI. Biết rằng : • PHAI: Nam nếu Nu la No. Nữ nếu Nu là Yes • DTB = (TOAN*3+LY+HOA+VAN*2)/7 (lấy 2 số lẽ) • XEPLOAI học sinh như sau : Lên Lớp nếu DTB>=5, Lưu Ban nếu ngược lại. Câu 5: Tạo truy vấn qryXepLoai . Truy vấn gồm các thông tin : LOP, MAHS, HOTEN, tuổi, DTB, Xếp loại. − DTB = (TOAN*3+LY+HOA+VAN*2)/7 (lấy 2 số lẽ) − Xếp loại như sau: • Nếu ĐTB >= 8, xếp loại Giỏi. • Nếu ĐTB >= 7, xếp loại Khá. • Nếu ĐTB >= 5, xếp loại TBình. • Nếu ĐTB >= 4, xếp loại Yếu. • Còn lại xếp loại Kém. Câu 6 : Tạo truy vấn qryHocSinhXuatSac bao gồm các học sinh có DTB>=8.5 với các field : LOP, MAHS, HOTEN, NAMSINH, PHAI, TOAN, LY, HOA, VAN, DTB. Câu 7 : Tạo truy vấn qryHocSinhGioiToan bao gồm các học sinh Lên Lớp có điểm TOAN lớn hơn điểm LY, điểm HOA và điểm VAN với các field : LOP, MAHS, HOTEN, NAMSINH, PHAI, TOAN, LY, HOA, VAN, DTB. Câu 8 : CSDL đã có sẵn Query DIEM CAO NHAT CUA LOP chứa điểm lớn nhất của lớp. Hãy kết hợp với query này để tạo truy vấn qryHocSinhDatDiemCaoNhatTheoTungLop bao gồm các field : LOP, MAHS, HOTEN, NAMSINH, PHAI, TOAN, LY, HOA, VAN, DTB. Câu 9 : Tạo Report BAO CAO KET QUA THI để in báo cáo chi tiết kết quả học sinh theo mẫu : (Lưu ý : đề chỉ in vài dòng làm mẫu) Câu 10 : Hãy tạo Form có dạng Main/Sub có tên frmLOP như sau : Yêu cầu: Khi chọn bất kỳ lớp nào từ combo box Lớp, tên chủ nhiệm, hình và danh sách học sinh của lớp này được hiển thò tương ứng. • DTB = (TOAN*3+LY+HOA+VAN*2)/7 (lấy 2 số lẽ) • XEPLOAI học sinh như sau : Lên Lớp nếu DTB>=5, Lưu Ban nếu ngược lại. Câu 11: Tạo form frmChuongTrinhChinh như sau để thực hiện các truy vấn tương ứng . nợ) và thành tiền. Trong đó Thành Tiền = số lượng * đơn giá. Trong báo cáo cho biết tổng thành tiền của mỗi khách hàng và cuối báo cáo có tổng thành tiền. ra, mỗi sản phẩm được in trên một trang riêng. LỚP CHUYÊN VIÊN - BÀI TẬP ACCESS 2 Bài tập này sử dụng cơ sở dữ liệu C:Hh1.MDB Câu 1 : Hãy tạo table