Lập trình quản lý 2 là môn học nâng cao của môn Lập trình quản lý 1 đã được giảng dạy trước trong hệ thống chương trình của ngành Lập trình máy tính. Để có thể học môn này người học cần có kiến thức về môn Cơ sở dữ liệu và môn Lập trình quản lý 1. Lập trình quản lý 2 sẽ cung cấp cho người học các nội dung sau: Tạo lập Macro, Menu; module & ngôn ngữ lập trình VBA; lập trình cơ sở dữ liệu. Từ các kiến thức này học sinh có thể tự viết một chương trình quản lý sử dụng hệ quản trị CSDL Microsoft Access phục vụ cho nhu cầu thực tế. Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.
LỜI NĨI ĐẦU Lập trình quản lý mơn học nâng cao mơn Lập trình quản lý giảng dạy trước hệ thống chương trình ngành Lập trình máy tính Để học mơn người học cần có kiến thức mơn Cơ sở liệu mơn Lập trình quản lý Lập trình quản lý cung cấp cho người học nội dung sau: Thời gian Số TT Tên mô đun Tổng số Lý Thực Kiểm thuyết hành tra* Tạo lập Macro, Menu 15 10 Module & ngơn ngữ lập trình 30 10 20 Lập trình sở liệu 45 10 35 Cộng 90 25 65 VBA Từ kiến thức học sinh tự viết chương trình quản lý sử dụng hệ quản trị CSDL Microsoft Access phục vụ cho nhu cầu thực tế Đây tài liệu tổng hợp lại từ giáo trình khác trình giảng dạy rút kinh nghiệm người biên soạn, khơng tránh thiếu sót, mong bạn đọc thơng cảm góp ý kiến để hồn thiện Chân thành cảm ơn MỤC LỤC LỜI NÓI ĐẦU Bài 1: Tạo lập Macro, menu 1.1 Tạo Macro 1.1.1 Khái niệm 1.1.2 Cách tạo Macro 1.2 Các lệnh 1.2.1 Open table 1.2.2 Open Query 1.2.3 Open Form 1.2.4 1.2.5 Open Report Run macro 1.2.6 Open module 1.2.7 Run SQL 1.2.8 Move size 1.2.9 Stop Macro 1.2.10 Beep 1.2.11 Hourglass 1.2.12 Close 1.2.13 Quit 1.2.14 Print 1.2.15 Msg Box 1.2.16 1.2.17 CancelEvent: 10 Requery: 10 1.2.18 Set value 10 1.2.19 Add menu 10 1.3 Macro có điều kiện 11 1.3.1 Khái niệm 11 1.3.2 Ví dụ 11 1.4 Macro nhóm 14 1.4.1 Khái niệm 14 1.4.2 Ví dụ 14 1.5 Tạo menu 15 1.6 Tạo Toolbar 17 1.7 Thiết lập ban đầu cho chương trình 18 1.8 Bài tập 18 Bài 2: Tạo lập Modul 20 2.1 Các kiểu liệu 20 2.2 Biến cách sử dụng biến 21 2.2.1 Cú pháp 21 2.2.2 Ví dụ 21 2.2.3 Phạm vi sử dụng biến 21 2.3 Hằng cách sử dụng 21 2.3.1 Cú pháp: 22 2.3.2 Ví dụ: 22 2.4 Cấu trúc lệnh VBA 22 2.4.1 If … end if 22 2.4.3 Cấu trúc Select Case 26 2.4.4 While … wend 27 2.4.5 Cấu trúc Do…Loop 29 2.5 Chương trình dạng hàm, chương trình dạng thủ tục 30 2.5.1 Hàm 30 2.5.2 Thủ tục 33 2.6 Module 36 2.7 Bài tập 37 Bài 3: Lập trình sở liệu 41 3.1 Ngôn ngữ sql 41 3.1.1 Ngôn ngữ thao tác liệu 41 3.1.2 Ngôn ngữ thao tác cập nhật liệu 45 3.2 Đối tượng database 48 3.3 Đối tượng recordset 48 3.3.1 Thuộc tính xác định vị trí (dịng ) Recordset 49 3.3.2 Truy xuất tới thuộc tính dịng 49 3.3.3 Sửa thông tin bảng 50 3.3.4 3.3.5 Thêm dòng vào bảng 51 Xoá dòng bảng 51 3.4 Đối tượng querydef 52 3.5 Đối tượng tabledef 52 3.6 Đối tượng Relations 53 3.7 Lập trình đối tượng Cơ sở liệu 54 3.7.1 Kỹ thuật dao 54 3.7.2 Để nạp thư viện DAO3.6 54 3.7.3 Ví dụ 55 3.8 Bài tập 57 Bài 1: Tạo lập Macro, menu Mục tiêu bài: Biết tạo lập ứng dụng Macro Tạo lập menu, toolbar 1.1 Tạo Macro 1.1.1 Khái niệm Macro Microsoft Access tập hợp lệnh định sẵn nhằm tự động thực chuỗi cơng việc mà khơng cần can thiệp bước người sử dụng 1.1.2 Cách tạo Macro Ví dụ: Sử dụng CSDL Diem.mdb, thiết kế Form chức chứa nút lệnh thực việc mở Form DANHSACH Nút lệnh gán macro mở Form Các bước thực Bước 1: Chọn menu lệnh Create \ Macro Bước 2: Trong cửa sổ Macro chọn hành động mở Form Sau lưu macro với tên :MoFormDS Bước 3: Tạo Form mẫu Lưu ý: Khi tự viết macro cho nút lệnh ta nên bỏ qua chế độ tự động Wizard Bước 4: Gán Macro cho kiện điều khiển Chọn nút vừa tạo Mở cửa sổ Property, chọn Event Gán macro vào kiện On click Kết Khi chạy Form, nhấn nút lệnh Form Danh sách xuất 1.2 Các lệnh 1.2.1 Open table Table name: Tên bảng cần mở View: Chọn dạng thể bảng (Datasheet/ Design/ Print Preview) Data mode: Add: Dùng để nhập liệu Edit: Dùng để thêm, xoá, sửa liệu bảng Read Only: Mở bảng để xem liệu 1.2.2 Open Query Query name: Tên truy vấn cần mở View: Chọn dạng thể bảng (Datasheet/ Design/ Print Preview Data mode: +Add: Dùng để nhập liệu +Edit: Dùng để thêm, xoá, sửa liệu bảng +Read Only: Mở bảng để xem liệu 1.2.3 Open Form Form name: Tên biểu mẫu View: Chọn dạng thể ( Form/ Design/ Print preview/ Datasheet) Filter name: Tên Query lọc liệu để hiển thị form Where condition: Điều kiện lọc liệu hiển thị form Data mode: Add : Dùng để nhập liệu Edit : Dùng để thêm, xoá, sửa liệu bảng Read Only : Mở bảng để xem liệu Window mode: Normal : Dạng cửa sổ form bình thường Hidden : Dạng cửa sổ form ẩn Icon : Cửa sổ form thu nhỏ thành biểu tượng Dialog : Dạng hộp thoại 1.2.4 Open Report Report name: Tên báo cáo View: Chọn kiểu in Print preview:In hình Design: Dạng thiết kế báo cáo Print: In máy in Filter name: Tên Query lọc liệu để hiển thị Report Where condition: Điều kiện lọc liệu hiển thị Report 1.2.5 Run macro Macro name: Tên macro cần thực Repeat count: Số lần thực macro lặp lại Repeat Expression: Biểu thức điều kiện để lặp lại thực macro Macro dừng khi biểu thức điều kiện nhận giá trị False 1.2.6 Open module Module name: Tên module chứa thủ tục cần mở Procedure name: Tên thủ tục mở Run code: Gọi thực hàm Access Basic Function name: Tên hàm cần thực đối số hàm Run App: Cho thực ứng dụng môi trường Windows Command line: đường dẫn đến tập tin ứng dụng 1.2.7 Run SQL SQL Statement: Nội dung câu lệnh SQL Maximize: Cực đại cửa sổ thời Minimize:Cực tiểu cửa sổ thời thành biểu tượng Restore: Phục hồi cửa sổ trở kích thước cũ 1.2.8 Move size Right: Khoảng cách từ góc trái cửa sổ đến cạnh trái cửa sổ chứa Down: Khoảng cách từ góc trái cửa sổ đến đến cạnh cửa sổ chứa Width: Chiều rộng cửa sổ Height: Chiều cao cửa sổ 1.2.9 Stop Macro 1.2.10 Beep 1.2.11 Hourglass Hourglass On: Yes/No (Đổi/ Không đổi) 1.2.12 Close Object Type: Loại cửa sổ đối tượng cần đóng Table, Query, form, Report, Macro Module Object name: Tên đối tượng cần đóng 1.2.13 Quit Option Prompt: Hiển thị hộp thoại có lưu trữ khơng? Nếu đối tượng có thay đổi Save all: Lưu trữ tất đối tượng Exit: Thốt mà khơng cần lưu trữ 1.2.14 Print Print Range: Phạm vi cần in ấn All: In tất đối tượng Selection: In phần trang chọn Pages: In trang chọn Page from: Trang bắt đầu in Page to: Trang kết thúc in Print Quality: Chất lượng in Copies: Số cần in Collate Copies: Có xếp thứ tự in teo trang 1.2.15 Msg Box Message: Câu thông báo cần hiển thị Beep: Yes/ No: Có/ Khơng phát tiếng Bíp hiển thị hộp thơng báo Type: Loại hộp thông báo Title: Tiêu đề hộp thông báo 1.2.16 CancelEvent: Huỷ bỏ kiện thực 1.2.17 Requery: Cập nhật liệu cho đối tượng hoạt động cách cập nhật lại liệu nguồn đối tượng Control name: Tên đối tượng cần cập nhật liệu (Nếu khơng cập nhật lại liệu nguồn đối tượng hoạt động) Select Object: Chọn đối tượng CSDL Object Type: loại đối tượng cần chọn Object name: Tên đối tượng cần chọn In Database Window: (Yes/No) Xác định MS access có chọn đối tượng cửa sổ CSDL không, mặc định No 1.2.18 Set value Gán giá trị cho trường, điều khiển, thc tính Form Report Item:Tên trường, đối tượng hay thuộc tính muốn gán giá trị Expression: Biểu thức cần gán giá trị cho Item Lưu ý: Nếu tên trường, tên đối tượng, tên thuộc tính Form Report khác phải mô tả đầy đủ Trong Form khác: [Forms]![Tên Form]![Tên trường/Tên đối tượng] Trong Report khác: [Reports]![Tên Report]![Tên trường/Tên đối tượng] Đối với thuộc tính [Forms/Reports]![Tên Form/Tên Report]![Tên trường].[Tên thuộc tính] 1.2.19 Add menu Tạo thêm Drop Down Menu vào menu bar cho form Report Menu name: Tên Drop Down Menu muốn thêm vào menu bar Menu macro name: Tên macro chứa lệnh việc tạo menu 10 Set Db = CurrentDB() Set rc = Db.OpenRecordset(“MONHOC”, OPEN_TABLE) Lưu ý: DB_OPEN_TABLE: Tham chiếu đến bảng, liệu thay đổi DB_OPEN_DYNASET: Tham chiếu đến bảng, query, dliệu thay đổi DB_OPEN_SNAPSHOT: Tham chiếu đến dliệu, không thay đổi liệu 3.3.1 Thuộc tính xác định vị trí (dịng ) Recordset BOF = True : trước ghi đầu tiên, khơng có ghi EOF = True : sau ghi cuối cùng, khơng có ghi MoveFirst: di chuyển tới dòng đầu bảng MoveNext: di chuyển tới dịng Ví dụ: Kiểm tra xem bảng có liệu chưa Set rc = Db.OpenRecordset(“MONHOC”, OPEN_TABLE) If( rc.BOF = True) then Msgbox “Bang MONHOC chua co du lieu” End if Ví dụ: Set rc = Db.OpenRecordset(“MONHOC”, OPEN_TABLE) If( rc.EOF = True) then Msgbox “Ban dang dung o dong cuoi cung cua bang MONHOC” End if 3.3.2 Truy xuất tới thuộc tính dịng Cú pháp: Cách 1: rc! Tên thuộc tính Cách 2: rc Field(Tên thuộc tính) Ví dụ: Di chuyển qua dịng bảng MONHOC in thuộc tính TenMH 49 Trong kiện Form Load Gọi Module nối liệu Mở bảng MONHOC Di chuyển tới dòng đầu bảng Vòng lặp Do While duyệt qua dịng lấy thuộc tính TenMH hiển thị lên ListBox Di chuyển sang dòng 3.3.3 Sửa thông tin bảng Phương thức Edit để sửa liệu ghi recordset Qui trình để sửa ghi sau: Định vị tới ghi cần sử recordset Ra lệnh Edit Gán giá trị cho trường cần sửa Ra lệnh Update Ví dụ: Sửa tên mơn học mơn có mã mơn học AV1 thành “Anh Văn 1” Dim Rs As Recordset Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE) DO WHILE (Rs.EOF = False) IF Rs!MaMH = “AV1” THEN Rs.EDIT Rs!TenMH = “Anh Văn 1” Rs.UPDATE EXIT DO ELSE Rs.MoveNext LOOP 50 Rs.Close 3.3.4 Thêm dòng vào bảng Để thêm ghi vào Recordset Qui trình thêm ghi sau: Ra lệnh Addnew Gán giá trị cho trường ghi Ra lệnh Update Ví dụ: Thêm dịng vào bảng MONHOC với thơng tin sau: “AV2; Anh Văn 2” Dim Rs As Recordset Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE) Rs.ADDNEW Rs!MaMH = “AV2” Rs!TenMH = “Anh Văn 2” Rs.UPDATE Rs.Close 3.3.5 Xoá dòng bảng Cần thận trọng lệnh thơng tin bị xóa khỏi CSDL Ví dụ: Xóa mơn học có mã mơn học “AV1” Dim tbao Set Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE) DO WHILE (Rs.EOF = False) IF Rs!MaMH = “AV1” THEN tbao = MsgBox("Đã chắn xoá chưa?", vbYesNo + vbCritical) IF tbao = vbYes Then Rs.DELETE END IF EXIT DO ELSE Rs.MoveNext LOOP Rs.Close 51 3.4 Đối tượng querydef Đối tượng SQL: để lưu kết thực câu truy vấn Cú pháp: Dim tên biến As QueryDef Khai báo biến Set Tên biến = db.CreateQueryDef() Tạo câu Query , đặt tên Tên biến.SQL = "câu lệnh SQL" Gán câu lệnh SQL Tên biến.Execute Thực thi câu lệnh Tên biến.Close Giaỉ phóng vùng nhớ Ví dụ: Thêm dòng vào bảng MONHOC với giá trị sau: (“TH1”; “Tin hoc”) Trong Form ví dụ thêm nút “Thêm Mới” Trong kiện Click nút viết lệnh sau: Lưu ý: Lệnh Set qr = db.CreatQueryDef() để tạo query lên CSDL hiển thị danh sách thẻ Queries cửa sổ Database Nếu ="", query tồn nhớ Tuỳ thuộc vào mục đích cơng việc mà có đặt tên query hay không, đơn tạo query để xử lý cơng việ giải phóng, nên đặt =""; 3.5 Đối tượng tabledef Đối tượng TableDef : Lưu trữ bảng CSDL Khai báo: Dim Tên biến as TableDef ‘ Xuất tên bảng có CSDL Db Ví dụ: Liệt kê bảng CSDL Bước 1: Thiết kế Form 52 Bước 2: Tạo Module kết nối CSDL hành Bước 3: Gọi lệnh kết nối kiện Form load Bước 4: Viết lệnh cho nút Form 3.6 Đối tượng Relations Đối tượng Relation dùng để tạo kết nối (RelationShip) bảng CSDL Access Khai báo: Dim db As DAO.Database Dim ten_quanhe as DAO.Relation Set ten_quanhe = db.CreateRelation("ten_rangbuoc", "ten_bang1", " ten_bang2", dbRelationUpdateCascade) ten_quanhe.Fields.Append ten_quanhe.CreateField("tt_khoa_chinh") ten_quanhe.Fields("tt_khoachinh ").ForeignName = " thuoctinh_khoa_ngoai" db.Relations.Append ten_quanhe Ví dụ: Tạo mối quan hệ cho bảng DIEM, MONHOC 53 Dim db As DAO.Database Dim rls As DAO.Relation Set db = CurrentDb Set rls = db.CreateRelation("TaoQuanHe", "DIEM", "MONHOC", dbRelationUpdateCascade) rls.Fields.Append rls.CreateField("MaMH") rls.Fields("MaMH").ForeignName = "MaMH" db.Relations.Append rls 3.7 Lập trình đối tượng Cơ sở liệu 3.7.1 Kỹ thuật dao DAO (Data Access Objects – Các đối tượng truy xuất liệu) tập hợp bao gồm lớp đối tượng dùng để lập trình truy cập xử lý liệu hệ CSDL Ở CSDL Access, ngôn ngữ lập trình VBA 3.7.2 Để nạp thư viện DAO3.6 Bước 1: Chọn nút công cụ để chuyển sang cửa sổ mã lệnh Bước 2: Chọn menu Tools / References Bước 3: Chọn mục Microsoft DAO 3.6 Object Libraly, nhấn nút OK để hồn tất 54 3.7.3 Ví dụ Tạo bảng NHAN_VIEN Table gồm thuộc tính Form Tạo Form theo mẫu List Danh Sách - Dùng để chứa Mã NV (Khi nhấn nút Xuất lên list) - Khi chọn Mã NV list, thông tin nhân viên tương ứng hiển thị sang ô Textbox, ô Textbõ bị khóa lại, để người dùng xem thơng tin Nút Thêm Mới: dùng để xóa Textbox để người dùng nhập liệu Nút lưu - Lưu liệu MaNV chưa tồn (Thêm mới) - Lưu liệu sửa đổi MaNV tồn (Sửa) - Các hành động cần có thơng báo, người dùng đồng ý thực Nút xóa dùng xóa thơng tin nhân viên hiển thị, u cầu thơng báo trước xóa Nếu đồng ý xóa 3.7.3.1 Kết nối CSDL mở bảng NHANVIEN Private Sub Form_Load() Set db = CurrentDb() Set rc = db.OpenRecordset("NHAN_VIEN") End Sub 3.7.3.2 Nút xuất lên list Private Sub Command19_Click() list_ds.RowSource = "" rc.MoveFirst Do While Not rc.EOF list_ds.AddItem rc.Fields("MaNV") ‘ xóa liệu điều khiển ‘di chuyển tới dòng đầu ‘duyệt qua dòng ‘lấy MaNV điền vào List 55 rc.MoveNext Loop End Sub 3.7.3.3 ‘ di chuyển đến dòng Sự kiện Click List Private Sub list_ds_Click() Dim vitri As Integer vitri = list_ds.ListIndex ‘lấy vị trí trỏ rc.MoveFirst Do While Not rc.EOF If rc.Fields("MaNV") = list_ds.ItemData(vitri) Then txt_manv = rc.Fields("MaNV") ‘kiểm tra MaNV chọn có tồn txt_hoten = rc.Fields("HoTen") ‘trong bảng khơng txt_ngaysinh = rc.Fields("NgaySinh") ‘nếu có xuất liệu dịng tìm GioiTinh = rc.Fields("GioiTinh") ‘được lên Textbox Exit Do End If rc.MoveNext Loop End Sub 3.7.3.4 Nút thêm Private Sub Command20_Click() txt_manv = "" ‘xóa Textbox txt_manv.SetFocus ‘đưa trỏ Textbox MaNV txt_hoten = "" txt_ngaysinh = "" End Sub 3.7.3.5 Nút xóa Private Sub Command21_Click() rc.MoveFirst Do While Not rc.EOF If rc.Fields("MaNV") = txt_manv Then If MsgBox("Ban co muon xoa khong?", vbYesNo, "Thong bao") = vbYes Then rc.Delete rc.MoveNext End If Exit Do End If rc.MoveNext Loop End Sub ‘kiểm tra MaNV chọn có tồn bảng khơng ‘nếu có hỏi xem người dùng có muốn xóa khơng ‘nếu có cho xóa, khơng bỏ qua 56 3.7.3.6 Nút lưu Private Sub Command16_Click() Dim kt As Integer ‘giả sử kt =0 có nghĩa chưa tồn MaNV ‘lưu sửa liệu kt = If (IsNull(txt_manv) Or IsNull(txt_hoten) Or IsNull(txt_ngaysinh)) Then MsgBox "Yeu cau nhap du thong tin", vbDefaultButton1, " Thong bao" Else rc.MoveFirst Do While rc.EOF = False If rc.Fields("MaNV") = txt_manv Then If (MsgBox("MaNV da ton tai, Ban co muon sua du lieu khong", vbOKCancel, "Thong bao") = vbOK) Then rc.Edit rc.Fields("HoTen") = txt_hoten rc.Fields("NgaySinh") = txt_ngaysinh rc.Fields("GioiTinh") = GioiTinh rc.Update End If kt = Exit Do End If rc.MoveNext Loop ‘ lưu thêm If kt = Then If (MsgBox("Ban co muon luu du lieu khong?", vbOKCancel, "Thong bao") = vbOK) Then rc.AddNew rc.Fields("MaNV") = txt_manv rc.Fields("HoTen") = txt_hoten rc.Fields("NgaySinh") = txt_ngaysinh rc.Fields("GioiTinh") = GioiTinh rc.Update End If End If End If 3.8 Bài tập CSDL Hàng Hóa 57 Tạo query thống kê thông tin khách hàng mua tháng năm 2007 Tạo query thống kê thông tin mặt hàng có cơng ty Tạo query tìm kiếm thơng tin khách hàng có tên Tiến Tạo query hiển thị chi tiết thông tin mặt hàng bán: biết thanhtien = soluong * dongia Tạo query tính tổng tiền phải trả cho khách hàng gồm: tên khách, địa chỉ, tên hàng, số lượng, tổng tiền, khuyến mãi, thuế, phí giao hàng, tổng tiền phụ thu, tổng tiền phải trả a Tổng tiền = Số lượng * đơn giá b Khuyến mãi: ngày mua trùng ngày 2/9 (ngày thành lập công ty) giảm 5% Tổng tiền c Thuế = 10% Tổng tiền d Phí giao hàng: i Nếu tổng tiền 1.000.000 đ phí 10% Tổng tiền ii Nếu tổng tiền từ1.000.000 đ đến 5.000.000thì phí 5% Tổng tiền iii Nếu tổng tiền 5.000.000 đến 10.000.000 đ phí 2% Tổng tiền iv Ngược lại miễm phí e Tổng tiền phụ thu = thuế + phí giao hàng f Tổng tiền phải trả = tổng tiền – khuyến + tổng tiền phụ thu Tạo query tìm kiếm khách hàng gồm tên khách hàng, địa chỉ, email (với tên khách hàng người dùng tự nhập) Tạo query tìm kiếm hóa đơn bán ngày Với ngày người dùng nhập Tạo query tìm kiếm hàng hóa gồm tên hàng, đơn vị tính, đơn giá Với tên hàng người dùng nhập 58 Tạo query thống kê hóa đơn xuất khoảng thời gian mà người dùng nhập vào 10 Tạo query tìm kiếm hàng hóa theo giá tiền người dùng nhập vào giá tiền 11 Tạo query đưa thông tin mặt hàng có giá cao 12 Thống kê tạo danh sách gồm: tên khách hàng, địa chỉ, số lần mua hàng 13 Tạo query đưa bảng tổng hợp tổng tiền bán ngày cửa hàng sau: 14 Tạo query đưa bảng tổng hợp tổng số lượng bán tổng tiền bán loại mặt hàng sau: 15 Tạo query kiểm tra thơng tin mặt hàng có người mua 16 Tạo query đưa thông tin mặt hàng bán chạy 17 Tạo bảng tính tổng tiền hoá đơn bán hàng sau: 18 Tạo query kiểm tra thơng tin khách hàng có tổng tiền mua 19 Tạo query tìm kiếm khách hàng tham gia mua hàng sớm gồm thông tin đầy đủ khách hàng (có ngày mua hóa đơn sớm nhất) 20 Lập bảng tổng hợp số lượng bán ngày mặt hàng sau: 59 21 Lập bảng tổng hợp số lượng mua mặt hàng khách hàng sau: CSDL Vật tư Tạo câu Query thực chức Tổng số lần Nhập hàng Tổng số lần Xuất hàng Tổng số lần Nhập hàng Xuất hàng Tổng số lần Nhập hàng Xuất hàng Sơ Sở ( có Cơ Sở) Tính tổng số số lượng, số lượng nhiều nhất., số lượng nhóm vật tư theo loại Nhập Xuất Tìm số lượng hàng Xuất lớn vật tư có kí hiệu đầu “U” Cơ Sở Tìm số lường hàng Nhập vật tư có ký hiệu đầu “U” “L” Cơ Sở năm 2005 2006 Tạo Query khai thác liệu từ Table [NHAP XUAT], yêu cầu thực sau: Cho danh sách khách hàng mua hàng tháng 3/2005 Cơ sở Tên chiết xuất [Ngay], [Khach hang], [Co so], [Vat tu], [So luong] thay sử dụng tên tập tin bảng nguồn Lưu Query tên: [KHACH HANG 305] Cho danh sách khách hàng mua mặt hàng có ký tự đầu “USB” với số lường >=10 Khách hàng mua mặt hàng có ký tự đầu “HD” với số lượng >=3 Khi thi hành Query tên chiết xuất trường là: [Ten Khach Hang], [Vat Tu], [So Luong] Lưu Query tên: [KHACH HANG USBHD] 60 Cho danh sách khách hàng cung cấp hàng từ năm 2008 trước khách hàng cung cấp kể từ ngày ( dùng hàm Date() để lấy ngày hệ thống) trước 30 ngày Khi thi hành Query , vùng tin [HTEN] chiết xuất thành [NHA CUNG CAP] Lưu tên Query là: [NHA CUNG CAP 2008] Thêm mẩu tin ( WEBC, Webcam,cai,12.000.00) vào bảng DANHMUCVATTU Chọn Object Query, sau tạo Query (Crosstab Query) mang tên: THONG KE NHAP XUAT VAT TU, với yêu cầu thực việc thống kê tổng số lượng loại vật tư nhập – xuất Cơ sở mẫu dưới: Thực Query mang tên [DOANH THU] Trong sử dụng Tabl nguồn là: [DANH MUC VAT TU] [NHAP XUAT], thực yêu cầu sau: Các Field [MAVT], [LOAI], [NGAY], [SOLG], [DON_GIA] lấy từ bảng nguồn Thêm vùng tin DONGIABAN = DON_GIA +(5% x DON_GIA) Thêm vùng tin THTIEN = DONGGIABAN*SOLG Thêm vùng tin THUE tính: Nếu THTIEN