Hãy lọc ra danh sách cán bộ của một phòng ban nào đó, tên phòng ban được nhập từ bàn phím khi query được kích hoạt; 4.. Hãy đưa ra bảng tổng hợp số cán bộ đã vào Đảng hay chưa vào Đảng
Trang 1BÀI TẬP THỰC HÀNH SỐ 1
Bài 1 Cơ sở Quản lý lương cán bộ
Chương 1 Làm việc với bảng
1 Tạo CSDL trên lần lượt các bảng DMPHONG, DMCHUCVU, HSCANBO.
- Trong bảng HSCANBO: vùng Phong lấy dữ liệu từ Maphong bảng DMPHONG
Vùng Chucvu lấy dữ liệu từ Macv bảng DMCHUCVU
- Thiết lập các thuộc tính cấn thiết theo các yêu cầu sau:
- MaCB là một chuỗi gồm 10 số có dạng 00-00-0000: 2 ký tự đầu là năm vào biên chế,
hai ký tự sau là số năm công tác và 4 lý tự cuối cùng là số thứ tự
- Ngày sinh có dạng dd/mm/yyyy, có điều kiện tuổi không quá 60 tuổi.
- Địa chỉ lấy dữ liệu từ một danh sách gồm: Quy Nhơn, Tuy Phước, An Nhơn, Tây sơn,
Phù Cát, Phù Mỹ
- Điện thoại là một chuổi số có dạng 9999-9999999.
- Giới tính kiểu Yes/No hiện dữ liệu nam/nữ
- Bậc lương là một số nguyên dương <10, hãy thiết lập khuôn dạng và điều kiên nhập dữ
liệu
- HSL: có tiêu đề là hệ số lương, là một số <10 có hai chữ số thật phân, được tính theo
công thức: HSL = 0.34 +( bac luong – 1)*0.33
- Lương tính theo công thức Lương = HSL * Lương căn bản (lương căn bản = 830000),
lương được tính đơn vị ‘đồng’ không có chữ số thập phân
- HsphucapCV là một số <1 có một chữ số thập phân
Trang 22 Tạo mối liên kết toàn vẹn:
- Chọn Tool \ Relationships tạo mối liên kết toàn vẹn như sơ đồ trên.
- Thực hiện xoá một phòng trong bảng DMPHONG, mở bảng HSCANBO ra kiểm tra những cán bộ ở phòng đó có bị xoá không
- Thực hiện sửa dữ liệu một phòng trong bảng DMPHONG, mở bảng CANBO ra kiểm tra
3 Một số thao tác trên bảng:
- Chọn Font chữ mặc định, nhập dữ liệu có dấu Tiếng việt
- Chèn hình ảnh vào vùng anh trong bảng CANBO
- Sắp xếp dữ liệu của bảng HSCANBO theo Hotên
- Lọc dữ liệu: Lọc ra những cán bộ ở phòng TC
- Lọc ra những cán bộ nam
- Lọc ra những cán bộ có hệ số lương <3
Bài 2: Tạo CSDL Quản lý bán hàng
Xây dựng CSDL Quản lý việc bán hàng cho một tổng công ty gồm 4 bảng sau :
Yêu cầu :
- Xác định khoá mỗi bảng
- Xác định thứ tự tạo các bảng, thực hiện
Lookup Wizard lấy dữ liệu từ các bảng
- Xác định kiểu dữ liệu và các thuộc tính khác theo yêu cầu sau:
Địa chỉ lấy dữ liệu từ danh sách gồm: Quy Nhơn, Tuy Phước, An Nhơn, Tây sơn, Phù Cát, Phù Mỹ
Điện thoại thiết lập khuôn dạng nhập dữ liệu
Ngày lập HD có khuôn dạng dd/mm/yyyy, ngày mặc định là ngày hiện tại
Đơn vị tính có giá trị mặc định là Kg
Trang 3 Đơn giá có ký hiệu “Đ”
- Thiết lập quan hệ cùng các thuộc tính đảm bảo toàn vẹn dữ liệu
BÀI TẬP THỰC HÀNH SỐ 2 (Chương 2: Query)
Bài số 1: Mở CSDL quản lý lương thực hiên tạo cac truy vấn theo yêu sau:
1 Hãy tính và in ra bảng lương của cơ quan bao gồm các thông tin:
Hoten, ngaysinh, tenchucvu, tenphongban, luong, phucapcv, dangphi,
congdoanphi, thuclinh.
Trong đó:
Hesoluong=2.34+(bacluong-1)*0.33
Luong = hesoluong * 830000
Dangphi = 20,000 với những ai là Đảng viên
Congdoanphi = 5%Luong với những ai đã vào công đoàn
2 Hãy đưa ra danh sách các cán bộ là Đảng viên mà chưa vào công đoàn;
3 Hãy lọc ra danh sách cán bộ của một phòng ban nào đó, tên phòng ban được nhập từ
bàn phím khi query được kích hoạt;
4 Hãy lọc ra danh sách cán bộ là Đảng viên và có thực lĩnh lớn hơn một số nào đó- được
nhập từ bàn phím khi query được kích hoạt;
5 Hãy lọc ra danh sách cán bộ mà năm sinh rơi vào trong một khoảng năm nào đó được
nhập vào từ bàn phím Ví dụ: khi kích hoạt query, Access yêu cầu nhập vào khoảng năm sinh từ năm nào, đến năm nào Khi đó query sẽ lọc ra danh sách các cán bộ thoả mãn điều kiện đó;
6 Lọc ra danh sách cán bộ có tên được nhập vào từ bàn phím khi kích hoạt query Ví dụ: khi query kích hoạt sẽ hỏi: Gõ vào tên cần xem? Sau khi gõ vào một tên (có thể cả họ
hoặc cả họ và tên), máy tính sẽ lọc ra danh sách cán bộ thảo mãn điều kiện;
7 Lọc ra danh sách cán bộ đến tuổi nghỉ hưu, biết rằng điều kiện nghỉ hưu xác định như
sau:là Nam giới, tuổi >=60; Là Nữ giới, tuổi >=55
8 Tính tổng lương của từng phòng ban
9 Đưa ra tên phong ban nào có tổng lương cao nhất
10 Đưa ra tên phòng ban nào có số cán bộ nhiều nhất.
Trang 411 Tính số cán bộ nam, nữ.
12 Tính số cán bộ nam, nữ ở phòng “TC”.
13 Hãy đưa ra bảng tổng hợp số cán bộ đã vào Đảng hay chưa vào Đảng theo giới tính
14 Hãy đưa ra bảng tổng hợp tổng số cán bộ theo từng loại chức vụ của các phòng ban
như sau:
15 Đưa ra bảng tổng hợp về chức vụ theo giới tính như sau:
16 Đưa ra bảng tổng hợp về chức vụ theo giới tính của các cán bộ ở phòng “TC”
17 Đưa ra bảng tổng hợp lương theo từng phòng ban như sau:
18 Hãy đưa bảng tổng hợp lương ở bài 1 ra thành bản có tên BANGLUONG.
19 Đưa ra tên phòng chưa có cán bộ.
20 Đưa ra tên chức vụ chưa cán bộ nào giữ.
Bài số 2: Mở CSDL quản lý lương thực hiên tạo cac truy vấn theo yêu sau:
1 Tạo query hiển thị chi tiết thông tin từng hàng bán gồm các thông tin sau: MaHD, MaKH,
MaSPTenSp, Dongia, Soluong, Thanh tien; Thanhtien= soluong * dongia; Thành tiền giảm5% cho các sản phẩm bán có số lượng >50
2 Đưa ra danh sách gồm:MaHD, MaKH, MaSP,TenSp, Dongia, Soluong, Thanh tien của các
sản phẩm có số lượng >=50 và <=100
3 Đưa ra danh sách gồm MaHD, MaKH, TenSP, Dongia, Soluong ; có số lượng lơn hơn một
số nào đó nhập từ bàn phím
4 Đưa ra danh sách các sản phẩm bán trong tháng 2.
5 Đưa ra danh sách các sản phẩm có đơn giá cao nhất.
6 Tạo query đưa ra bảng tổng hợp tổng tiền bán được từng ngày.
Trang 57 Tạo query đưa ra bảng tổng hợp tổng số lượng, tổng tiền đã bán ra của từng sản phẩm.
8 Tạo bảng tính tổng tiền từng hoá đơn bán hàng như sau:
9 Lập bảng tổng hợp số lượng bán ra từng ngày của từng mặt hàng.
10.Lập bảng tổng hợp số lượng mua từng mặt hàng của các khách hàng như sau:
11 Đưa ra các tên sản phẩm chưa được bán HD: là các sản phẩm có trong bảng SANPHAM
mà không có trong bảng CHITIETHD
12.Đưa ra tên sản phẩm có tổng số lượng, tổng thành tiền bán nhiều nhất.
Bài số 3:
Để quản lý học chứng chỉ tin học - ngoại ngữ ở trung tâm, người ta sử dụng 4 bảng dữ liệu sau:
thiết lập mối quan hệ, nhập dữ liệu
- Tổng số tiết không quá 500
Trang 6- Ngày có dạng dd/mm/yyyy
- Địa chỉ lấy dữ liệu từ danh sách có sẵn
- Nghề nghiệp giá trị mặc định là SINHVIÊN
- Điểm là một số nguyên dương =1 và <=10
- Thiết lập thuộc tính LOOKUP WIZARD thích hợp
Câu 2: Tạo các truy vấn theo yêu cầu sau:
a Tạo Query điền dữ liệu cho cột TỔNG ĐIỂM: ĐIỂM I + ĐIỂM II + ĐIỂM III.
b Đưa ra danh sách gồm: MÃ HỌC VIÊN, HỌ TÊN HỌC VIÊN, ĐỊA CHỈ, NGÀY
SINH, KHOÁ HỌC, TÊN KHOÁ, ĐIỂM I, ĐIỂM II, ĐIỂM III, TỔNG ĐIỂM, KẾT QUẢ của
các học viên có khoá học nhập từ bàn phím khi kích hoạt Query; kết quả là “đậu” nếu điểm ba môn >=5, ngược lại là “rớt”
c Tính số học viên theo từng khoá học mẫn (1)
d Trình bày thông tin tổng hợp theo mẫu (2)
BÀI TẬP THỰC HÀNH SỐ 3 (Chương 3: Form nhập dữ liệu)
1 Tạo form nhập dữ liệu cho bảng HSCANBO mẫu như sau:
Yêu cầu:
Khi chọn mã phòng thì tên phòng hiện ra
Khi chọn chức vụ thì tên chức vụ hiện ra
Khi nhập bậc lương thi HSL, Lương hiện ra theo công thức
HSL=2.34+(bacluong-1)*0.33; Luong=HSL*830000
Khoá (locked) các vùng tên phòng, tên chức vụ, HSL, Lương kho cho phép chỉnh sửa dữliệu
Vùng ảnh tự động thay đổi kích thước cho vừ khít đối tượng
Không hiện các nút điều khiển nhập, đường Line, con trỏ mẫu tin, bỏ thanh cuộn
Trang 72 Tạo Form 1-n nhập dữ liệu cho bảng DMPHONG và HSCANBO
Trên Form nhập hãy nhập thêm dữ liệu cho các phòng ban.
3 Tạo Form nhập dữ liệu cho bảng CHITETHD
Trang 8Yêu cầu:
- Khoá (Locked) các vùng hiển thị không cho phép chỉnh sửa dữ liệu.
- Thành tiền = đơn giá * số lượng ; nếu số lương >50 thì giảm 5%
4 Tạo Form nhập dữ liệu cho bảng HOADON, CHITIETHD
Yêu cầu:
- Khoá các vùng TÊNKHÁCH, ĐỊA CHỈ, ĐIỆN THOẠI.
- Khoá các vùng TÊN SẢN PHẨM, ĐƠN VỊ TÍNH, ĐƠN GIÁ, THÀNH TIỀN.
- Hãy thêm dữ liệu cho các hoá đơn.
Trang 9BÀI TẬP THỰC HÀNH SỐ 4 (Chương 4: Report)
1 Tạo danh sách cán bộ gồm các cột STT, HỌ TÊN, GIỚI TÍNH, NGÀY SINH, TÊN PHÒNG, TÊN CHỨC VỤ, HSL, LƯƠNG, Cuối Report đếm số lượng cán bộ, tính tổng lương;
2 Tạo danh sách cán bộ in theo năm sinh.
3 Tạo danh sách cán bộ in theo từng phòng.
Trang 104 Đưa ra danh sách các mặt hàng theo mẫu sau:
5 In bảng tổng hợp hoá đơn theo từng ngày
Trang 116 In hoá đơn bán hàng, mỗi hoá đơn in trên một trang giấy
BÀI TẬP THỰC HÀNH SỐ 5 (Chương 5: Macro)
1 Tạo form in danh sách cans bộ theo từng phòng mẫu như sau:
Trang 12Yêu cầu:
Trên Form bỏ các nút điều khiển nhập, bỏ Line bỏ con trỏ mẫu tin, bỏ thanh cuộn
2 Tạo 4 Form in danh sách cán bộ theo từng giới tính
Các đối tượng nhập giới tính là Textbox, Combo, Option Group, Check box
3 Tạo form in danh sách cán bộ theo từng phòng hoặc giới tính
4 Tạo Form lựa chọn kiểu in danh sách cán bộ
5 Tạo form in danh sách cán bộ theo phòng có lựa chon kiểu in
Trang 136 Tạo form lọc dữ liệu theo giới tính mẫu như sau:
7 Tạo Form tìm kiếm như sau:
8 Tạo form in danh sách các mặt hàng theo hoá đơn hoặn tháng bán như sau:
Trang 149 Tạo Form in danh sách bán hàng theo từng ngày, từng tháng, từng năm
Có thể thay đổi nhập tháng, quý bằng đối tượng Spinner
10 Tạo Form tìm kiếm theo tên khách hàng, điện thoại.
Nút “In hoá đơn” dùng để in hoá đơn bán hàng của khách có tên trong textbox hoặc có số
điện thoại trong Textbox
BÀI TẬP THỰC HÀNH SỐ 6
Trang 15(Chương 6: Modules) Tạo Modules có tên CTCON chứa các hàm sau:
1 Hàm TACHTEN dùng để tách tên từ chuỗi họ tên
Function tachten(hoten As String) As String
Dim vitri As Integervitri = 1
If InStr(1, Trim(hoten), " ") = 0 Thentachten = hoten
Exit FunctionEnd If
While InStr(vitri + 1, Trim(hoten), " ") > 0vitri = InStr(vitri + 1, Trim(hoten), " ")Wend
tachten = Mid(hoten, vitri + 1)
End Function
Mở cửa sổ Immediate thử gọi hàm ?TACHTEN(“Nguyễn Thị Thanh Xuân”), … thử
các tên khác
Tương tự tạo hàm TACHHO dùng để tách họ đệm từ chuỗi họ tên
?TACHHO(“Nguyễn Thị Thanh Xuân”) -> “Nguyễn Thị Thanh”
2 Viết hàm mã hoá Tiếng Việt bảng mã UNICODE để sắp xếp theo đúng quy cách Tiếng Việt
Public Function MAHOAUNICODE (chuoi1 As String) As String
Dim chuoix, chuoiy As String
Dim dodaichuoi, vitri As Byte
chuoix = "a ;µ ;¶ ;· ;¸ ;¹ ;¨ ;» ;¼ ;½ ;¾ ;Æ ;© ;Ç ;È ;É ;Ê ;Ë ;e ;Ì ;Î ;Ï ;Ð
;Ñ ;ª ;Ò ;Ó ;Ô ;Õ ;Ö ;i ;× ;Ø ;Ü ;Ý ;Þ ;o ;ß ;á ;â ;ã ;ä ;å ;æ ;ç ;è ;é ;ê ;ë ;ì
;í ;î ;u ;ï ;ñ ;ò ;ó ;ô ;õ ;ö ;÷ ;ø ;ù ;y ;ú ;û ;ü ;ý ;þ ;d ;® "
chuoiy="aa;ab;ac;ad;ae;af;ag;ah;ai;aj;ak;al;am;an;ao;ap;ea;eb;ec;ed;ee;ef;eg;eh;ei;ej;ek;el;ia;ib;ic;id;ie;if;oa;ob;oc;od;oe;of;og;oh;oi;oj;ok;ol;om;on;oo;op;ua;ub;uc;ud;ue;uf
;ug;uh;ui;uj;uk;ya;yb;yc;yd;ye;yf;da;db"
mahoaTCVN3 = Space(0)
dodaichuoi = Len(chuoi1)
vitri = 1
While vitri <= dodaichuoi
kytu = Mid(chuoi1, vitri, 1)
Trang 16vitri = vitri + 1
Wend
End Function
Chú ý: để đễ dàng thực hành ta cĩ thể mã hố các ký tự mà trong vùng tên cĩ các ký tự
nguyên âm đĩ Ví dụ: ta cĩ các tên “anh, ân, ánh,dũng, điền, quang quân, duy” vậy ta sẽ
Nếu cĩ vùng TÊN thì khơng dùng hàm tách tên
4 Tạo hàm BASO dùng để đọc một số ba chữ số ra thành chữ tương ứng (123 đọc là một
trăm hai mươi ba)
Function baso(nhom As String) As String
Dim tram, chuc, donvi As Single
Dim chuso(9) As String
If tram <> 0 And chuc = 0 And dv <> 0 Then
baso = baso + " lẻ"
Else
If chuc = 1 Then
baso = baso + " mười"
Else
Trang 17If chuc <> 0 And chuc <> 1 Then
baso = baso + chuso(chuc) + " möôi"
End If
End If
End If
If dv = 1 And chuc > 1 Then
baso = baso + " moát"
Else
If dv = 5 And chuc >= 1 Then
baso = baso + " laêm"
Public Function tienchu(sotien As Double) As String
Dim chuoitien, nhom As String
Dim donvi(4) As String
Trang 18tienchu = tienchu + baso(nhom) + donvi(i) + Space(1)
6 Tạo một phiếu lương tháng 12 cho mỗi cán bộ mẫu như sau:
Cuối mỗi phiếu lương đọc thực lĩnh ra thành chữ tương ứng.
7 Tạo Report DANH SÁCH CÁN BỘ đựoc sắp xếp thep tên, họ, ngày sinh
HD: Report lấy dữ liệu nguồn từ query sắp xếp ở câu 3
8 Tạo một Report in theo từng phòng gồm các cột STT, Mã CB, Họ, Tên, chức vụ, ngày sinh, lương, BHYT, BHXH, Thực lĩnh Sắp xếp theo thứ tự ưu tiên tên, họ, ngày sinh Cuối mỗi nhóm tính tổng thực lĩnh và đọc tổng thực lĩnh ra thành chữ, ký tên đóng dấu
Trang 19Trong đó BHYT=0.01*lương
BHXH =0.05*lương Thực lĩnh = lương - BHYT - BHXH (=0.94 *lương)
Chú ý: Sử dụng hàm TACHHO, TACHTEN dùng để tách họ đệm và tên ra khỏi chuỗi họ
tên ( nếu không có cột họ và tên0
TACHHO(“Nguyễn Thị Lan Anh” ) -> “Nguyễn Thị Lan”
BÀI TẬP THỰC HÀNH SỐ 7 (Chương 7: Lập trình với CSDL)
1 Tạo Form nhập dữ liệu cho bảng HSCANBO; trong đó các nút lệnh tạo bằng
MACRO có yêu cầu sau:
- Nút “Xoá” có thông báo “Bạn có muốn xoá không?”
- Nút “Thoát” có thông báo “Bạn có muốn thoát không?”
Tương tự thay đổi các nút lệnh Wizard bằng sử dụng Macro cho các Form nhập khác
2 Tạo Form nhập dữ liệu cho bảng HSCANBO; trong đó các nút lênh được viết bằng lệnh Docmd với yêu cầu sau:
- Nút “Trước” có thông báo “hết dữ liệu” khi con trỏ ở mẫu tin đầu tiên.
- Nút “Sau” có thông báo lỗi “Hết dữ liệu” kho con trỏ or mẫu tin cuối cùng
- Nút “Lưu” có thông báo “Trùng mã” khi nhập trùng dữ liệu vùng khoá (mã cán bộ) hoặc
không nhập dữ liệu vùng liên kết (phòng, chức vụ)
- Nút “Xoá” có thông báo lỗi “Bạn co muốn xoá không?”
- Trên Form có nút “Tính HSL, lương” dùng để điền dữ liệu cho cột HSL, lương trong
bảng cho mẫu tin hiện hành
Trang 20Resume Exit_truoc _Click
Sau On Error GoTo Err_sau_Click
DoCmd.GoToRecord , , acNext
Exit_sau_Click:
Exit Sub
Err_sau_Click:
MsgBox "Het du lieu", vbInformation, "thong bao"
Resume Exit_truoc _Click
Đầu DoCmd.GoToRecord , , acFirst
Cuối DoCmd.GoToRecord , , acLast
Lưu On Error GoTo Err_luu_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
DoCmd.RunSQL "update hscanbo set hsl=2.34+([bacluong]-1)*0.33,
luong=[hsl]*540000 where macb=[forms]![nhaphscanbo]![macb]"
(không ghi xuống hàng)
3 Tạo form in danh sách hồ sơ cán bộ tổng hợp sau:
Viết lênh cho nút “Thực hiện in” Thêm điều kiên in
tt = IIf(chonin = 1, "indscanbo",
IIf(chonin = 2, "dsnamsinh", "dsphong"))
Select Case chon
tt = IIf(chonin = 1, "indscanbo", IIf(chonin = 2, "dsnamsinh", "dsphong"))Select Case chon
Trang 21acNomal, ,"phong=[forms]![in_chonds]! [ph]"
Case 2DoCmd.OpenReport [tt],
acPreview, ,"phong=[forms]!
[in_chonds]![ph]"
Case 3DoCmd.OutputTo acReport, [tt]
End Select
4 Tạo Form in danh sách cán bộ theo phòng và giới tính
Viết lệnh cho nút “thực hiện in”
dk = IIf(chonin = 1,
"phong=[forms]![in_dk]!
[combo0]", "gioitinh=[forms]![in_dk]![check1]")
Select Case chonCase 1
DoCmd.OpenReport "dscanbo", acNomal, , [dk]
Case 2DoCmd.OpenReport "dscanbo", acPreview, , [dk]
Case 3DoCmd.OutputTo acReport, "dscanbo", , , Yes
PHẦN THỰC HÀNH THÊM
1 Sử dụng kỹ thuật Sub-Main Form để tạo cac form tổng hợp dữ liệu
Trang 22Sau khi chọn tên một phòng ban, bảng lương các cán bộ phòng đó hiển thị lênsub-form Nhấn nút In bảng lương, bảng lương riêng phòng ban đó sẽ được in ra một report.
Hướng dẫn: Viết lệnh Textbox hiện tên phòng: =cbophongban.Column(1)
2 Tạo form đếm số nam nữ theo phòng chọn từ Combo
3 Thiết kế form tổng hợp thông tin bán hàng như sau:
Sau khi nhập xong giá trị từ ngày và đến ngày, thông tin chi tiết về các mặt hàng bán ra trong phạm vi ngày đó được tổng hợp theo như giao diện trên
4 Tạo form theo dõi thông tin hoá đơn bán hàng của một khách hàng nào đó:
Sau khi chọn tên một khách, thông tin về các hoá đơn mua hàng được hiển thị
5 Tạo form theo dõi thông tin hoá đơn bán hàng của một khách hàng nào đó: