Dùng Wizard: đẩy bảng CHITIETHD, sau đó đẩy các vùng liên quan (Single Form) Tạo các nút lệnh bằng Macro: Đầu, Trước, Sau, Cuối, Thêm, Lưu, Xóa, Thoát.. - Đẩy dữ liệu.[r]
Trang 1BÀI THỰC HÀNH SỐ 1 (NC)
(Report)
1 Đưa ra danh sách các mặt hàng theo mẫu sau:
2 In bảng tổng hợp hoá đơn theo từng ngày
3 In hoá đơn bán hàng, mỗi hoá đơn in trên một trang giấy
Trang 24 Cách tạo Form In Report
1 Tạo Form in danh sách bán hàng theo tháng chọn từ Combo.
Hướng dẫn:
B1 Tạo Form Có các thuộc tính :
Navigation Button: No; Select Record: No; Scrol bar: No; Dividing Line: No.
B2 Vẽ Combo lấy dữ liệu từ danh sách gồm: 1,2,3,4,5,6,7,8,9,10,11,12 Name: Thang B3 Lưu với tên Form1
B4 Vẽ Command Button: Chọn Build event \ Macro Builder
Open Report Name: danh sách bán hàng
View: Print Prevew Condition: month(ngaylaphd)= Forms![Form1]![Thang]
2 Tạo Form in danh sách bán hàng theo tháng chọn từ Option 1; 2 3 4 5
6 7 8 9 10 11 12
- Tạo Form: Có các thuộc tính : có các thuộc tính trên
- Vẽ Option Group gồm các option: 1,2,3,4,5,6,7,8,9,10,11,12 Name: Chon
- Lưu với tên Form2
- Vẽ Command Button: Chọn Build event \ Macro Builder
Open Report Name: danh sách bán hàng
View: Print Prevew Condition: month(ngaylaphd)= Forms![Form2]![Chon]
Tương tự ta thay đổi điều kiện:
3 Tạo Form in theo Quý:
In theo quý: 1 từ t1->3; ; 2 từ t4->t6; 3 từ t7->9 4 từ t10->t12
Month(NgaylapHD) between Forms![Form3]![Quy]*3-2 and Forms![Form3]!
[Quy]*3
Trong đó: Form 3 tên Form in; Quy là tên của Option hoặc Combo
4 Tạo Form in theo năm:
In theo năm: chọn từ Combo gồm danh sách năm: 2011, 2012, 2013, 2014, 2015 Year(NgaylapHD)= Forms![Form4]![Nam]
Nam là tên Combo
5 Tạo Form in danh sách theo HD
In theo Mã hóa đơn
MaHD= Forms![Form5]![Ma]
Ma là tên Com bo
6 Tạo Form in danh sách theo Mã khách hàng
MAKH= Forms![Form6]![Ma]; Ma là tên Combo
Trang 3BÀI THỰC HÀNH SỐ 2 (NC)
(MACRO)
1 Tạo Form kết hợp 3 điều kiện trên
Tạo Macro:
Condition Action Agument
Chon=1 Open
Report
Name: Danhsachbanhang View: Print preview Condition: month(ngaylaphd)= Forms![Formindk]! [Thang]
Chon=2 Open
Report
Name: Danhsachbanhang View: Print preview Condition: month(ngaylaphd) Between Forms!
[Formindk]![Quy]*3-2 and Forms![Formindk]![Quy ]*3 Chon=3 OpenReport Name: Danhsachbanhang
View: Print preview Condition: Year(ngaylaphd)= Forms![Formindk]![Nam]
2 Tạo Form tìm kiếm:
Hướng dẫn:
B1 Tạo Form Wizard kiểu Single Form lưu với tên TIMKIEM có các thuộc tính sau:
Option Group: Name: Chon
Combo box: Name: Thang
Option 1:
Value: 1
Option 2:
Value: 2
Trang 4Navigation Button: No; Select Record: No; Scrol bar:Vertical only; Dividing Line: No.
Change to :Textbox : chuyển các đối tượng Combo sang Text
Locked: Yes: Khóa các đối tượng không cho chỉnh sửa dữ liệu.
B2 Vẽ các đối tượng nhập điều kiện: Option Group: Name Chon; 2 Option: Tên KH
và điện thoại; 2 Text box: Name KH và DT;
B3: Tạo Macro
Command Condition Action Argument
Chon=2
Aplly Filter Aplly Filter
Condition: TenKH Like “*”&[Form] [TIMKIEM].[KH]
Condition: Dienthoai=[Form]
[TIMKIEM].[DT]
Name: TIMKIEM Prompt: Yes
3 Tạo Form lọc dữ liệu theo hóa đơn và năm
4 Tạo Form Tìm kiếm sau:
BÀI THỰC HÀNH SỐ 3
Trang 5(Tạo Form nhập dữ liệu)
1 Tạp Form nhập dữ liệu cho bảng CHITIETHD
Dùng Wizard: đẩy bảng CHITIETHD, sau đó đẩy các vùng liên quan (Single Form) Tạo các nút lệnh bằng Macro: Đầu, Trước, Sau, Cuối, Thêm, Lưu, Xóa, Thoát
- Đẩy dữ liệu
- Di chuyển các đối tượng hiển thị (Không nhập dữ liệu) sang bên phải, Locked: Yes
- Thay đổi thuộc tính cho Form: Navigation Button: No; Selected Record: No;
Scroll Bar: Neight; Dividing Line: No
- Tạo các nút
Trước [CurrentRecord]=1
[CurrentRecord]>1
Msgbox GotoRecord
Hết dữ liệu Previous Sau CurrentRecord<Recordset.RecordCount
CurrentRecord=Recordset.RecordCount GotoRecordMsgBox NextMessga: Hết dữ
liệu Type:
Information Title: Cảnh báo
Lưu DCount("MaHD","CHITIETHD",
"MaHD='" & [MaHD] & "'")>0 DCount("MaHD","CHITIETHD",
"MaHD='" & [MaHD] & "'")=0
Msgbox RunCommand
Trùng Khóa Save Record SaveRecord
Xóa Msgbox(“Bạn có chắc chắn xóa
không?,36, “Thông báo”)=6
Runcommand Delete Record
Trang 6Thoát Msgbox(“Bạn có chắc chắn thoát
không?,36, “Thông báo”)=6 Close Type: FormName:
NhapDL_Chitiet Save: Yes
2 Tạo Form 1-n nhập dữ liệu cho hai bảng HOADON và CHITIETHD:
Đẩy bảng HOADON, Đẩy bảng CHITIETHD
Hướng dẫn:
Mở Form Con
Vào thuộc tính Record Source: mở Query Form con: THANHTIEN:
SOLUONG*DONGIA
Vẽ Textbox: Tổng thanh tiền =Sum(THANHTIEN) ; Name: Text13
Tại Form mẹ:
Vẽ Textbox: Tổng thanh tiền = CHITIETHD_Subform.Form!Text13
Format: #,#0 “đồng”
Các nút lệnh điều khiển, nhập tương tự như Form đã làm
Chú ý: Khóa các Text hiển thị dữ liệu (Không nhập)
Như: TenKH, Diachi, Dienthoai, TenSP, Dongia, Thanhtien,Tongthanhtien
3 Tương tự tạo Form nhập dữ liệu cho các bảng:
DMHANG (MaHang, TenHang, Donvitinh, Dongia)
Trang 7Tương tự tạo Form nhập dữ liệu cho bảng: KHACHHANG(MaKH,TenKH, Diachi, Dienthoai)
BÀI TẬP THỰC HÀNH SỐ 4
(Lập Trình VBA)
1 Tạo hàm TACHTEN(): dùng để tách tên ra từ một chuỗi hoten
2 Tạo hàm TACHHODEM(): dùng để tách ho đêm từ một chuỗi hoten
Sử dụng hàm trên để tạo một danh sách (Query) gồm: MAHD, Họ KH, Ten
KH, Thanhtien Được sắp xếp tên tăng dần
3 Tạo hàm Tienchu(): dùng để đọc tiền (hàng tỉ) ra thành chữ tương ứng.
Trang 8Tạo hàm Docso() đơn giản: một số trường hợp đặc biệt sẽ không đọc đúng như:
lẻ, lăm, mốt Sinh viên tự thêm điều kiện để hoàn chỉnh
Tạo HÓA ĐƠN BÁN HÀNG cho từng lượt bán Cuối hóa đơn tính tổng thành tiền và đọc tiền ra thành chữ tương ứng
Gợi ý lý thuyết:
1 Left(ht,n): Trích ra một chuỗi con từ chuỗi ht gồm n ký tự bên trái
2 Mid(ht,m,[n]): Trích ra một chuỗi con từ chuỗi ht từ ký tự thứ m gồm n ký
tự (Nếu không có tham số n thì gồm các ký tự còn lại)
3 Right(ht,n): Trích ra một chuỗi con từ chuỗi ht gồm n ký tự bên phải
4 Len(ht) Độ dài của chuỗi ht
Ví dụ:
Mid (“Nguyễn Thị Lan Anh”,12,1) -> L
Mid (“Nguyễn Thị Lan Anh”, 12) -> Lan Anh
5 Khai báo hàm Tachten(): xác định các biến vào kiểu, biến ra kiểu.
Function TACHTEN(ht as String*30) as String*8
6 Khai báo hàm Tachho(), Tachhodem(): tương tự như hàm tachten()
7 Khai báo Docso(): dung để đọc một số bất kỳ ra thành chữ tương ứng:
Function Docso(so as Double)as String
Trang 98 Int(x) Phần nguyên của x
Ví du: int(123/10) -> 12
9 Phép toán Mod: x Mod y: số dư của x chia cho y
Vd: 123 Mod 10 -> 3
10 Space(n) chuỗi gồm n ký tự trắng
Vd: Right(Space(11)+ “123456789”,12) -> “ 123456789”
11 Val(x) -> chuyển chuỗi x sang số
Vd: Val(“123”) ->123
12 STR(x) -> Chuyển số sang chuỗi
4 Tạo Menu :
DM_Hang hóa Danh sách các KH Tìm kiếm In theo ngày tháng
In theo Hóa đơn
In theo Khách hàng
Giới thiệu Đăng ký TK Thoát DM_Khách Hàng … Tìm kiềm theo … Report …
Hóa Đơn bán hang
Chi tiết Hóa Đơn
Hướng dẫn:
Chọn Menu View \ Toolbars \ Customize
Chọn nhãn Toolbars
Chọn nút lệnh New \ Gõ tên Menu: Quản lý bán hang
Chọn nút Preperties \ Type: MenuBar
Chọn nhãn Command:
Chọn mục New Menu \ giữ kéo chuột nút New Menu vào thah Menu Bar để tạo Menu ngang
Kích phải tại Menu ngang \ gõ tên mới &Cập nhật, &Báo cáo
Tạo Menu dọc: Chọn Form \ Kéo Form nhập vào Menu Cập nhật
Chọn Query \ Kéo tên Query vào menu Báo cáo \ Đổi tên
Chọn Form \ Kéo Form tìm kiếm vào Menu Tìm kiếm
…
5 Tạo bảng Login(Tennguoidung, Matkhau)
6 Tạo Form đăng nhập
Trang 10Thuộc tính của Form:
Navigation Button: No; Record Selected: No; Scroll Bar: Neight; Dividing Line: No
Close Button: No; Max Min Button: No
Popup : Yes; Modal: Yes
Combo lấy dữ liệu từ bảng Login hiển thị 2 cột
Thuộc tính của Combo: Name: TenND; Column Width: 1”,0”
Text Box: Nhập mật mã
Thuộc tính: InputMask: Password; Name: Ma
Command: Kích phải chọn Build Event \ Build Code
If Ma.Value = TenND.Column(1) Then
DoCmd.Close
MsgBox "Chao mung ban den voi phan mem quan ly bán hàng"
Else
MsgBox "Nhap mat khau sai", vbOKOnly, "Canh bao"
ma.Value = ""
ma.SetFocus
End If
Command: Exit
Viết lệnh: DoCmd.Quit
7 Đóng gói hoàn tất phần mềm:
Sao chép tập tin gốc sang thư mục khác: đổi tên (*)
Chọn Menu Tools \ Start Up \ Bỏ hết các dấu tít