CSDL Database : Là một tập hợp có cấu trúc của dữ liệu được lưu trữ trên các thiết bị trữ tin để có thể đápứng cho nhiều người dùng đồng thời với nhiều mục đích khác nhau.. Ta hãy thử th
Trang 1I CÁC KHÁI NIỆM CƠ BẢN:
Lược đồ CSDLMô hình hóa
Hệ QTCSDL Cấu trúc CSDL
1 CSDL (Database) :
Là một tập hợp có cấu trúc của dữ liệu được lưu trữ trên các thiết bị trữ tin để có thể đápứng cho nhiều người dùng đồng thời với nhiều mục đích khác nhau
2 Hệ quản trị CSDL (DBMS - Database Management System) :
Là các hệ phần mềm cung cấp công cụ để xây dựng CSDL và thao tác trên các CSDL đó
Vd : FoxPro, Access, Oracle, SQL Server,
3 Lược đồ quan hệ (Relation Schema) :
Trong một CSDL, ta phải quản lý nhiều đối tượng dữ liệu Vd, CSDL của một Công ty thìcần quản lý các đối tượng : Nhân viên, Khách hàng, Hóa đơn, Sản phẩm, Chi tiết hóa đơn Mỗi đối tượng dữ liệu được biểu diễn bằng một lược đồ quan hệ Mỗi thành phần của lượcđồ là một thuộc tính của đối tượng dữ liệu đó, mỗi thuộc tính thể hiện một đặc trưng của đốitượng Vd: đối tượng Khách hàng được biểu diễn bằng lược đồ quan hệ sau :
KHACHHANG(MaKH, TenKH, Diachi, Dienthoai)
Như vậy, đối tượng KHACHHANG được mô tả bằng 4 thuộc tính, mỗi thuộc tính là một đặctrưng của nó : MaKH (mã khách hàng), TenKH (tên khách hàng), Diachi (địa chỉ), Dienthoai (sốđiện thoại)
Với cách biểu diễn như trên, ta thấy một bộ giá trị của các thuộc tính sẽ xác định được mộtđối tượng cụ thể
Vd, bộ giá trị (S01, Cty Hoa hồng, 120 Trần Phú, TP HCM, 8397650)
Trang 24 Mô hình Quan hệ :
Microsoft Access là một hệ quản trị cơ sở dữ liệu dựa trên mô hình quan hệ Mô hình dữliệu quan hệ (RDBM - Relational Database Model) dựa trên cơ sở khái niệm lý thuyết tập hợpcủa các quan hệ, được biểu diễn dưới dạng Table (bảng)
Table là một bảng được tổ chức thành dòng và cột để thể hiện một lược đồ quan hệ Hìnhminh họa dưới đây là một table thể hiện lược đồ quan hệ KHACHHANG
8397650
…8998855
Các cột được gọi là các field (hoặc trường, thuộc tính) Các dòng được gọi là các record(hoặc mẫu tin, bộ)
II THIẾT KẾ MỘT CSDL: bao gồm 5 bước :
1 Xác định mục tiêu khai thác:
Bước đầu tiên trong thiết kế một CSDL là xác định mục tiêu khai thác CSDL đó như thếnào Điều này quyết địng những thông tin gì mà ta sẽ đưa vào CSDL Từ mục tiêu đó ta mới hìnhthành những đối tượng (các bảng - Table) cần thiết để chứa dữ liệu và định nghĩa các trường(thuộc tính) sao cho mô tả đầy đủ đối tượng
2 Xác định các bảng (Table) trong một CSDL:
Xác định các bảng nào là cần thiết cho CSDL là bước rất phức tạp trong quá trình thiết kế Khi thiết kế một table, cần lưu ý các vấn đề nảy sinh như sau :
Vd: có lược đồ quan hệ cung cấp : CUNGCAP(NhaCC, Diachi, MatHang, Gia)
Cungcap : Table
Cty ABC 120 Trần Phú, Q 5, TP HCM TV 14’ Sony 200
Trang 3Vd: Lược đồ CUNGCAP có thể được thay thế bằng 2 lược đồ khác là: NCC(NhaCC, Diachi)và MHCC(NhaCC, MatHang, Gia).
Cty ABC 120 Trần Phú, Q 5, TP HCM Cty ABC TV 14’ Sony 200
Cty ABC MG Hitachi 220
Có một phương pháp tương đối để chia thông tin thành các bảng là nhìn vào từng thông tincá biệt xác định xem nó mô tả đối tượng nào Vd địa chỉ không thể mô tả mặt hàng cung cấp mànó thuộc đối tượng nhà cung cấp
3 Xác định các trường trong một bảng:
Tạo lập các trường (field) trong bảng tức là ta xác định những thông tin muốn biết về đốitượng đó Do đó các trường chính là các thuộc tính của bảng Mỗi mẫu tin (mỗi hàng,bộ) trongbảng chứa đựng cùng số trường hay số thuộc tính của bảng
Vd: trường địa chỉ trong bảng NCC chứa các giá trị là địa chỉ của nhà cung cấp Mỗi mẫu tintrong bảng chứa thông tin cụ thể về một nhà cung cấp cụ thể nào đó
Một số phương pháp xác định trường :
- Mỗi trường có quan hệ trực tiếp đến đối tượng trong bảng Trường nào mô tả thuộc tínhcủa 1 đối tượng khác phải thuộc về 1 bảng khác Nếu thấy cứ phải lập lại thông tin giốngnhau cho nhiều bảng, thì đó là sự dư thừa và cần được tách ra
- Đừng đưa những trường chứa thông tin có thể rút được từ những trường khác hoặc là kếtquả có thế tính toán được Vd: có trường đơn giá và số lượng thì không cần trường thànhtiền (= số lượng*đơn giá)
- Các trường phải phủ được tất cả thông tin cần thiết
- Phân rã thông tin thành những phần tử logic nhỏ nhất Vd: Phân rã trường họ tên thànhtrường họ và trường tên
- Trường khóa chính : Nếu có 1 trường sao cho ứng với mỗi giá trị thuộc trường đó ta xác định 1 mẫu tin duy nhất của bảng, thì trường đó có thể là khóa chính.
Vd: Trường tên người ta không dùng làm trường khóa chính được, vì có thể gặp khá nhiềungười trùng tên
Ta thường dùng mã nhận diện như MAKH, MANV, MASP, MASV hoặc dùng 1 trường rấtđơn giản là tuần tự đánh số cho mỗi mẫu tin theo thứ tự tăng dần để làm khóa chính
Access dùng trường khóa chính để kết nối dữ liệu nhanh chóng từ nhiều bảng và xuất ra kết quả yêu cầu
Trang 4Khi chọn 1 trường làm khóa chính ta cần lưu ý các điểm sau:
•Access không chấp nhận gía trị trống hoặc trùng nhau nhập cho trường khóa
•Ta sẽ dùng giá trị trong trường khóa chính để truy xuất các mẫu tin trong CSDL nên nó khôngquá dài, khó nhớ, khó nhập và có kích thước vừa đủ để không ảnh hưởng đến tốc độ truyxuất dữ liệu
4 Xác định các mối quan hệ:
Access là 1 hệ quản trị CSDL quan hệ Điều đó có nghĩa là ta sẽ lưu các dữ liệu có quan hệvới nhau trong các bảng biệt lập, sau đó định nghĩa mối quan hệ giữa các bảng và Access sẽ dùngcác mối quan hệ này để truy tìm và kết hợp thông tin theo một trật tự có ý nghĩa
Vd: có 2 bảng:
KHACHHANG(MaKH,TenKH, Diachi, Dienthoai)
HOADON(MaHD, MaKH, MaNV, NgaylapHD, Ngaynhanhang)
Để tìm số điện thoại của 1 khách hàng nào đó đã đặt hàng với Cty, ta chỉ cần đặt câu hỏicho Access biết đơn đặt hàng mà ta quan tâm và Access sẽ truy tìm ra số điện thoại của kháchhàng đã đặt hàng ứng với Hóa đơn mà ta muốn Access thực hiện được điều đó nhờ MaKH làkhóa chính trong bảng KHACHHANG và nó cũng là 1 trường trong bảng HOADON Theo thuậtngữ của CSDL, trường MaKH trong bảng HOADON gọi là khóa ngoại vì nó là một khóa chínhcủa 1 bảng khác
Như vậy ta phải thêm khóa chính của bảng này vào bảng kia khi 2 bảng có quan hệ với nhau.
Vấn đề là ta phải chọn khóa chính nào (vì cả 2 bảng đều có khóa chính)
Muốn thiết lập đúng đắn mối quan hệ, trước hết ta phải xác định bản chất của mối quan hệđó Có 3 loại quan hệ giữa các bảng:
(1) Quan hệ “1- nhiều” (1-n):
Đây là mối quan hệ phổ biết nhất Trong quan hệ 1-n , một mẫu tin của bảng bên 1 sẽ cóthể có nhiều mẫu tin tương ứng trong bảng bên nhiều, nhưng ngược lại, một mẫu tin trong bảngbên nhiều chỉ có thể có một mẫu tin tương ứng duy nhất trong bảng bên một
Để thiết lập quan hệ 1-n giữa hai table, ta thêm khóa chính của bên 1 vào bên n.
Vd: Một khách hàng có thể có nhiều hóa đơn, nhưng mỗi hóa đơn chỉ có một khách hàngduy nhất
Trang 5(2) Quan hệ “nhiều- nhiều” (n-n):
Trong quan hệ n-n, mỗi mẫu in trong bảng A có thể tương ứng với nhiều mẫu tin trong bảng
B và ngược lại Vd: Xét 2 bảng:
HOADON(MaHD, MaKH, MaNV, NgaylapHD, Ngaynhanhang)
SANPHAM(MaSP, TenSP, Donvitinh, Dongia)
Một Hóa đơn có thể có nhiều sản phẩm và ngược lại, một sản phẩm có thể có trong nhiềuhóa đơnï
Quan hệ n-n thể hiện 1 khó khăn trong thiết kế Ta hãy thử thiết lập quan hệ giữa các bảng.Nếu thêm vào trường MaHD trong bảng HOADON vào bảng SANPHAM thì nếu một sản phẩmcó trong nhiều hóa đơn ta phải có nhiều mẫu tin tương ứng để thể hiện, dẫn đến gây ra sự trùnglắp và dư thừa thông tin trên bảng SANPHAM Khó khăn cùng xuất hiện khi ta làm ngược lại Đểgiải quyết vấn đề trên, ta phải tạo thêm 1 bảng trung gian thứ ba để tách quan hệ n-n thành cácquan hệ 1-n Ta đưa 2 khóa chính của 2 bảng trên vào bảng trung gian thứ ba, trong ví dụ này nósẽ là bảng CHITIETHD như sau:
CHITIETHD(MaHD, MaSP, Soluong)
Khóa chính của bảng CHITIETHD bao gồm 2 khóa chính của 2 bảng HOADON là MaHDvà SANPHAM là MaSP Đó là 2 khóa ngoại từ 2 bảng HOADON và SANPHAM nên quan hệgiữa HOADON với CHITIETHD là 1-n và giữa SANPHAM với CHITIETHD cũng là 1-n
(3) Quan hệ “1-1”:
Quan hệ 1-1 giữa nhiều bảng là hiện tượng bất thường trong một số trường hợp, bởi vì hầuhết thông tin quan hệ trong kiểu này sẽ có thể lưu trữ trên cùng một table Ta dùng quan hệ nàyđể :
- Chia một table có nhiều field
- Tách ra một phần của table vì lý do bảo mật
- Lưu trữ các thông tin chỉ áp dụng trên một tập con của table
Vd: Cty cần quản lý riêng các nhân viên có trình độ đại học, các thông tin cần lưu trữ như:trình độ, chuyên ngành, loại tốt nghiệp, ngoại ngữ Nếu thêm các thông tin này vào các fieldtương ứng trong table NHANVIEN thì sẽ có những NV chưa tố nghiệp đại học nên phải để trốngcác field đó và các thông tin này thỉnh thoảng mới truy cập đến Vì những lý do đó, hợp lý nhất là
ta tạo thêm một table có mối quan hệ 1-1 với table NHANVIEN để lưu trữ những thông tin này
5 Tinh chế lại thiết kế :
Trang 6Sau khi tạo bảng, trường và xác định mối quan hệ, ta cần phải tinh chế lại thiết kế và cốgắng phát hiện những thiếu sót, trùng lắp hoặc dư thừa thông tin bằng cách nhập một số mẫu tintiêu biểu và kiểm tra :
- Xem có bỏ sót trường nào ngoài CSDL không? Có thông tin nào ta cần mà chưa đưa vàokhông? Nếu có, nó có thuộc một table đã có hay không? Nếu nó là thông tin của một đốitượng khác, ta phải tạo một table mới
- Đã chọn một khóa chính cho mỗi table chưa? Chọn lựa đó có tốt nhất chưa?
- Kiểm tra hiện tượng trùng lắp và dư thừa thông tin Ta có nhập số liệu trùng nhau chonhiều table không? Nếu có, cần đưa table đó thành 2 table với quan hệ 1-n
- Có table nào có nhiều trường nhưng ít mẫu tin và vài trường phải bỏ trống trong một sốmẫu tin hay không? Nếu có, hãy thiết kế lại table đó sao cho có ít trường hơn và nhiềumẫu tin hơn
III CÁC THÀNH PHẦN CỦA CSDL ACCESS:
Mỗi CSDL của Access được lưu trữ trong một file mà tên file có đuôi mặc nhiên là MDB.Một CSDL của Access gồm có 6 thành phần (Object) như sau :
1 Tables : các bảng dữ liệu Là thành phần quan trọng, cơ bản nhất của CSDL, chứa các dữ
liệu cần thiết của CSDL
2 Queries : các bảng Query dữ liệu Dùng để tính toán, xử lý các dữ liệu ở các table.
3 Forms : các biểu mẫu Là công cụ tạo ra các mẫu để trình bày và thao tác với dữ liệu
theo các dạng mà người dùng mong muốn
4 Reports : các báo cáo Là công cụ tạo mẫu và in các báo cáo.
5 Macros : các tập lệnh vĩ mô Là một tập hợp lệnh được chọn, sắp xếp hợp lý cho việc tự
động hóa các thao tác
6 Modules : các đơn thể chương trình Là phương tiện lập trình trong Access với ngôn ngữ
lập trình Visual Basic
Trang 7Quan hệ giữa các table trong CSDL BANHANG.
Trang 8I TẠO TABLE :
Để tạo một table mới, từ cửa sổ CSDL :
B1 Click vào biểu tượng Table
B2 Click vào biểu tượng New và click một trong các chế độ sau :
Datasheet View : chế độ dưới dạng bảng
Design View : chế độ thiết kế bảng bằng phương pháp thủ công
Table Wizard : chế độ thiết kế bảng với sự trợ giúp của Wizard
Import Table : nhập khẩu các bảng và các đối tượng từ các tập tin khác
Link Table : tạo bảng bằng cách nối vào CSDL hiện hành các bảng của CSDL khác
Giả sử ta muốn thiết kế table bằng chế độ Design: click chọn Design View
B3 Thực hiện các thao tác sau cho một trường :
- Nhập tên trường tại Field Name
- Chọn kiểu dữ liệu tại Data Type
- Nhập phần mô tả tại Description
- Xác định các thuộc tính của trường tại Field Properties
B4 Lập lại bước 3 cho các trường khác
B5 Xác định khóa chính của bảng (nếu có)
B6 Đóng cửa sổ Design và lưu table với một tên
Trang 9II KIỂU DỮ LIỆU (Data Type):
Number Số (Byte (0-255), Integer (số nguyên), Long Integer,
Single, Double)
1, 2, 4 hoặc 8 byte
OLE Object Đối tượng nhúng (hình ảnh, ) Tối đa 1 gigabyte
Lookup Wizard Lấy giá trị từ một bảng khác
III THUỘC TÍNH TRƯỜNG (Field Property)
Field size : kích thước field
Format : dạng hiện dữ liệu Vd: > (đổi ra chữ hoa), < (đổi ra chữ thường)
@;”không có”;”chưa biết” (chuỗi định dạng có 3 phần : first; second; third First: tương ứngtrường hợp trong trường có chứa văn bản, Second : tương ứng trường hợp không có văn bản(chuỗi rỗng “”), Third : tương ứng trường hợp null)
Input Mask : qui định mẫu (mặt nạ) nhập dữ liệu
Vd: L000 (vị trí đầu là ký tự, 3 vị trí sau là số)
Caption : chú thích của field được hiện ở cửa sổ Datasheet
Default Value : giá trị mặc định ban đầu
Validation Rule : một biểu thức để giới hạn những giá trị dữ liệu hợp lệ cho trường
Validation Text : chuỗi thông báo hiển thị khi Valudation Rule không hợp lệ
Require : có hay không bắt buộc nhập dữ liệu cho trường
Allow Zero Length : có được nhập chuỗi rỗng hay không
Indexed : xác định dữ liệu của trường có tạo chỉ mục hay không
Trang 10V KHAI BÁO QUAN HỆ GIỮA CÁC TABLE (Relationships)
B1 Tại cửa sổ Database, click biểu tượng Relationships trên Toolbar
B2 Đưa các table vào cửa sổ Relationships :
Click table (để chọn nhiều table dùng Ctrl-Click hoặc Shift-Click) và click biểu tượng Add
Nếu thiếu table, click menu Relationships->Show table, rồi Click vào table thiếu và Click AddNếu dư table, click tại table dư, ấn Delete
B3 Đặt quan hệ giữa 2 table như sau :
Click tại field quan hệ của table thứ nhất (table bên 1) và drag đến field quan hệ của table thứ hai(table bên nhiều), xuất hiện hộp thoại Relationships :
• Chọn Enfore Referential Integrity nếu muốn quan hệ bị ràng buộc toàn vẹn tham chiếu.
Khi đó ta không thể :
- Nhập một giá trị vào trong field khóa ngoại của table bên nhiều nếu nó không tồn tại trongkhóa chính của table bên 1
- Xóa một record từ một table bên 1 nếu nó có quan hệ với các record trong table bên nhiều
- Sửa đổi một giá trị khóa chính trong table bên 1 nếu nó có những record quan hệ
Để nới rộng giới hạn của qui tắc trên mà vẫn duy trì toàn vẹn tham chiếu, ta chọn thêm cácmục sau :
• Chọn Cascade Update Related Fields cho phép khi sửa giá trị trên field quan hệ của table
bên 1 thì dữ liệu tương ứng trên field quan hệ của table bên nhiều sẽ tự động cập nhật theo
• Chọn Cascade Delete Related Records cho phép khi xóa một record của table bên 1 thì
các record tương ứng trong table bên nhiều sẽ tự động xóa theo
Trang 11Query là công cụ cho phép đặt câu hỏi với dữ liệu lưu trong CSDL Sau khi thực hiện query, dữ
liệu thỏa mãn yêu cầu được rút ra và tập hợp vào một bảng kết quả
Query có khả năng :
• Lấy dữ liệu chứa trên một table hoặc nhiều table khác nhau tron CSDL
• Lựa chọn các trường hoặc những mẫu tin cần thiết
• Sắp thứ tự các mẫu tin
• Thực hiện các phép tính
• Sử dụng query làm nguồn dữ liệu cho một form, report hoặc một query khác
• Thay đổi dữ liệu trong table bằng query hành động hoặc tạo table mới chứa các mẫu tinrút từ một hay nhiều table đã lọc theo một chọn lựa nào đó
Các loại Query trong Access :
• Select Query : Query chọn
• Parameter Query : Query tham số
• Crosstab Query : Query tham khảo chéo
• Action Query : Query hành động ( Make Table Query, Update Query, Delete Query,Append Query)
• SQL Query : Query được viết bằng ngôn ngữ SQL
I Select Query :
Là loại Query thông dụng nhất Với loại Query này ta có thể xem xét dữ liệu trong cácbảng, thực hiện phân tích và chỉnh sửa trên dữ liệu đó
Khi mở một Query mới, có thể :
- Chọn Design view để tạo Query bằng phương pháp thủ công
- Chọn Simple Query Wizard để tạo Query thông qua sự trợ giúp của Wizard
- Chọn Crosstab Query Wizard để tạo Query Crosstab với sự trợ giúp của Wizard
- Chọn Find Duplicate Query Wizard để tạo Query tìm các mẫu tin có giá trị trùng nhau trên
1 trường
- Chọn Find Unmatched Query Wizard để tạo Query tìm các mẫu tin trong 1 bảng mà nókhông có quan hệ với bất kỳ bảng nào khác
Trang 12Các bước tạo mới 1 Query sử dụng Design View :
Bước 1 : Từ cửa sổ Database, click vào thẻ Queries - New.
Bước 2 : Từ cửa sổ New Query, click chọn Design View, xuất hiện hộp thoại Show Table.
Bước 3 : Chọn một hoặc nhiều table (hoặc query) tham gia Query, sau đó click thẻ Add - Close Bước 4 : Đưa các trường cần thiết từ các bảng vào vùng lưới QBE (Query By Example) bằng cách
double – click vào tên trường hay rê trường vào từng cột trong vùng lưới
+ Muốn đổi tên tiêu đề cột thì click vào bên trái của ký tự đầu tiên của tên trường muốnđổi tên, gõ vào tên mới theo sau là dấu hai chấm (:)
+ Muốn tạo lập một trường mới trong vùng lưới QBE dùng để tổng hợp dữ liệu từ cáctrường trong các table khác nhau thì thực hiện theo nguyên tắc sau : TÊN TRƯỜNG :
<BIỂU THỨC TÍNH TOÁN> Chú ý trong <BIỂU THỨC TÍNH TOÁN> khi truy cậpcác trường trong các table thì các trường này phải được đặt trong cặp dấu []
Ví dụ : THANHTIEN: [SOLUONG]*[DONGIA]
Vùng lưới QBE gồm các mục :
Field : Tên trường, Table : Tên bảng, Sort : Sắp thứ tự, Show : Thể hiện hay che dấu các
trường Criteria, or : Điều kiện Nếu các biểu thức điều kiện nằm trên các ô trong cùng một dòng
Criteria thì chúng được nối với nhau bằng phép toán “và” (and) Nếu chúng nằm trên các dòngkhác nhau thì chúng được nối với nhau bằng phép toán “hoặc” (or)
Lưu ý ở bước 3 : các table cần đưa vào là các table có chứa các trường yêu cầu ở vấn tin.
Lưu ý là số table đưa vào Query phải vừa đủ, không thiếu, không dư Trường hợp giữa hai tablekhông có dây liên kết, thì phải đưa thêm table có dây liên kết giữa hai table này vào để đảm bảocác table trong query đều có liên kết với nhau
Tính tổng trong Query : chọn Menu View->Totals (hoặc click vào nút Σ trên thanh côngcụ) sẽ xuất hiện thêm hàng Total trên vùng lưới
Bước 5 : Chuyển sang Datasheet View để xem kết quả.
Bước 6 : Đóng cửa sổ Query và lưu Query với một tên.
Các toán tử thường ứng dụng trong việc thiết lập tiêu chuẩn truy vấn trong Query :
<, >, <=, >=, <>, =, In, Like, between and , Not, is null, is not null
Trang 13Các hàm :
Date() : trả về ngày hiện tại
Left(Text,n) : trả về một chuỗi mới có n ký tự lấy từ bên trái Text
Right(Text,n) : trả về một chuỗi mới có n ký tự lấy từ bên phải Text
Mid(Text,n1,n2) : trả về một chuỗi mới có n2 ký tự lấy từ vị trí n1 của Text
DatePart(Datepart,DateExpr) : trả về thành phần của ngày, tháng, năm Với :
DateExpr : biểu thức kiểu Date/timeDatePart : d (ngày), m (tháng), yyyy (năm), q (quý), ww (tuần), w (ngày trong
tuần), h (giờ), n (phút), s (giây) Vd : Giá trị NGÀY là 01/15/99 thì biểuthức DatePart(“q”,[NGAY]) có giá trị trả về là 1 (quý 1)
Date(DateExpr) : trả về kết quả là ngày của DateExpr
Month(DateExpr) : trả về kết quả là tháng của DateExpr
Year(DateExpr) : trả về kết quả là năm của DateExpr
Now() : trả về kết quả là ngày và giờ hiện tại
Date() : trả về kết quả là ngày hiện tại
Hàm điều kiện : IIF(Điều kiện, biểu thức đúng, biểu thức sai)
II Parameter Query :
Nếu ta thường xuyên thực hiện một query , nhưng mỗi lần một tiêu chuẩn khác nhau thì thay
vì phải thiết kế lại Query mỗi lần thực hiện, ta có thể tạo một Query có tham số cho phép nhậpvào tiêu chuẩn khi query thực thi ( chuyển sang chế độ Datasheet View)
Cách tạo một Parameter Query giống như tạo một Select Query, nhưng thay vì trong SelectQuery ta gỏ các giá trị cho hàng tiêu chuẩn thì trong Parameter Query ta gõ vào các tham số Têntham số cũng chính là chuỗi nhắc nhở và phải được bao trong hai dấu móc vuông [ ]
Vd : Parameter Query hiển thị các nhân viên của table NHANVIEN có ngày sinh nằmtrong một khoảng thời gian do ta gõ vào khi chạy Query
Trang 14III Crosstab Query :
Dùng để tóm lược dữ liệu của một khối lượng lớn thông tin theo dạng tham khảo 2 chiều(Select query chỉ cho phép tham khảo dữ liệu ở dạng 1 chiều) và trình bày kết quả theo hình thứcrất dễ đọc như một bảng tính, vì vậy nó thường được dùng để tạo so sánh và tiên đoán hướng pháttriển của dữ liệu đồng thời cũng rất tiện dụng để lập báo cáo Một Crosstab Query phải có ít nhất
3 field giữ nhiệm vụ :
+ Tiêu đề Dòng (Row Heading)
+ Tiêu đề Cột (Column Heading)
+ Giá trị (Value)
Các bước tạo Crosstab Query bằng design
Các bước 1, 2, 3 giống như Select Query
Bước 4 : Drag các trường cần thiết vào vùng lưới.
Bước 5 : Click menu Query-Crosstab, trên vùng lưới QBE xuất hiện thêm dòng Total và Crosstab
+ Tại trường làm tiêu đề cột, chọn group by cho ô Total, column heading cho ô Crosstab + Tại trường dùng làm tiêu đề dòng, chọn group by cho ô Total, row heading cho ô
Crosstab
+ Tại trường dùng để tính giá trị, chọn phép toán tương ứng trong ô total (Sum, Max, Min ,
…), chọn value cho ô crosstab
Vd : Xem số lượng đặt hàng của từng khách hàng theo từng mặt hàng
Bước 6 : Chuyển sang Datasheet View để xem kết quả.
Bước 7 : Đóng cửa sổ Query và lưu Query với một tên.
Lưu ý : Trong Crosstab Query chỉ có một trường dùng làm tiêu đề cột, có thể có nhiều tiêu đềdòng và chỉ có một trường giá trị
Trang 15SQL được chia làm 2 thành phần :
DDL (Data Definition Language – Ngôn ngữ định nghĩa dữ liệu) Các phát biểu của DDL là các
phát biểu xây dựng xung quanh các lệnh sau :
CREATE : Dùng tạo mới các table, các field và các index
DROP : Dùng xóa các table và các index từ Database
ALTER : Dùng hiệu chỉnh các table bằng cách thêm vào các field hay thay đổi định
nghĩa của các field
DML (Data Manipulation Language – Ngôn ngữ thao tác dữ liệu) Các phát biểu của DML là các
phát biểu xây dựng xung quanh các lệnh sau :
SELECT : Dùng vấn tin các record đã thỏa tiêu chuẩn chỉ định
INSERT : Dùng chèn một loạt dữ liệu vào Database bằng 1 thao tác
UPDATE : Dùng thay đổi các giá trị của các record hay field nào đó
DELETE : Dùng xóa các record từ một table
Các mệnh đề :
FROM : Dùng chỉ tên table, nơi các record được chọn
WHERE : Dùng chỉ định điều kiện các record phải thỏa để được chọn
GROUP BY : Dùng phân chia các record đã chọn thành những nhóm riêng biệt
HAVING : Dùng định rõ điều kiện phải được thỏa bởi từng nhóm record
ORDER BY : Dùng sắp xếp các record được chọn theo một thứ tự ấn định
Các toán tử :
Toán tử logic : AND, OR và NOT
Toán tử so sánh : <, <=, >, >=, =, <>, BETWEEN (Trong khoảng – dùng chỉ định một vùnggiá trị), LIKE (Giống – dùng làm khuôn mẫu), IN (Trong – dùng chỉ định các record trongmột database)
Các lưu ý :
Table.field : chỉ định cụ thể trường của bảng nào tham gia query
* / Table.* : Tất cả các trường của bảng được chỉ định
FROM table1 INNER JOIN table2 ON table1.field1 = table2.field2 : Tạo liên kết nội giữa các
table tham gia query
WHERE : Sau where là một biểu thức điều kiện lọc (criteria) hoặc một lệnh SQL khác Nếulà lệnh SQL, phải sử dụng các cách viết sau :
<so sánh> ANY / ALL / SOME (lệnh SQL)
<biểu thức> [NOT] IN (lệnh SQL)
[NOT] EXISTS (lệnh SQL)
GROUP BY FieldList HAVING GroupCriteria : Tạo Query Total Nhóm theo các trường và lọc
các nhóm theo điều kiện nằm sau Having
ORDER BY field1 [ASC / DESC] [,field2 [ASC / DESC] [, ]]
Trang 16Các bước tạo Query bằng SQL :
B1 : Từ cửa sổ Database, click vào thẻ Query - New
B2 Click Design View - OK, sau đó click vào nút Close của cửa sổ Show Table
B3 Click biểu tượng SQL trên thanh Toolbars Trên màn hình sẽ hiện cửa sổ Query
B4 Gõ lệnh SQL vào
B5 Click menu Query-Run để thực hiện query
B6 Đóng cửa sổ Query và lưu Query với một tên
1 Dùng SQL tạo Select Query :
Vd 1 : Lấy tất cả tên, điện thoại của khách hàng có đặt hàng
SELECT ALL Khachhang.TenKH, Khachhang.Dienthoai
FROM Khachhang
INNER JOIN Hoadon ON Khachhang.MaKH = Hoadon.MaKH;
Vd 2 : Lấy tất cả tên, địa chỉ, thành phố của khách hàng có đặt hàng và có thành phố là “TP.HCM”, các mẫu tin không trùng nhau
SELECT DISTINCTROW Khachhang.TenKH, Khachhang.Diachi, Khachhang.Thanhpho
FROM Khachhang
INNER JOIN Hoadon ON Khachhang.MaKH = Hoadon.MaKH
WHERE (Khachhang.Thanhpho like “TP HCM”);
Vd 3 : Lấy tất cả tên, điện thoại của khách hàng có đặt hàng các sản phẩm là “R*”
SELECT DISTINCTROW Khachhang.TenKH, Khachhang.Dienthoai
FROM (Khachhang INNER JOIN Hoadon ON Khachhang.Makh=Hoadon.Makh) INNER JOINChitietHD ON Hoadon.MaHD = ChitietHD.MaHD
WHERE (ChitietHD.MaSP like ”R*”);
2 Dùng SQL tạo Parameter Query :
Dạng lệnh :
PARAMETERS Text datatype [,Text datatype [, ]];
Text : tên tham số (cũng là chuỗi nhắc nhở và được đặt giữa hai dấu ngoặc vuông ([ ]))
Datatype : kiểu dữ liệu
Vd : Tạo Query tham số để xem những hóa đơn được lập trong một khoảng thời gian nào đó.PARAMETERS [Tu ngay] Datetime, [Den ngay] DateTime;
SELECT DISTINCTROW Hoadon.MaHD, Hoadon.MaKH, Hoadon.NgaylapHD
FROM Hoadon
WHERE ((Hoadon.NgaylapHD) Between [Tu ngay] And [Den ngay]);
3 Dùng SQL tạo Crosstab Query :
Trang 17Selectstatement : một lệnh SELECT (sẽ trích ra các trường dùng làm tiêu đề dòng)
Pivotfield : field hoặc biểu thức muốn dùng làm tiêu đề cột trong bảng kết quả
Value1, value2 : các trị dùng làm tiêu đề cột
Vd : Lấy tổng số lượng đặt hàng của từng mặt hàng tương ứng với từng khách hàng
TRANSFORM Sum(ChitietHD.Soluong)
SELECT Sanpham.TenSP, Sum(ChitietHD.Soluong) AS TongSL
FROM Sanpham INNER JOIN ((Khachhang INNER JOIN Hoadon ON Khachhang.MaKH =Hoadon.MaKH) INNER JOIN ChitietHD ON Hoadon.MaHD = ChitietHD.MaHD) ONSanpham.MaSP = ChitietHD.MaSP
GROUP BY Sanpham.TenSP
PIVOT Khachhang.TenKH;
4 Dùng SQL để tạo Query hội (Union Query)
Query hội giúp ta kết hợp các trường từ hai hay nhiều bảng một cách mau lẹ
Lưu ý :
- Để các mẫu tin kết quả không trùng nhau, bỏ từ khóa ALL sau UNION
- Có thể đổi tên trường bằng từ khóa AS
- Có thể sắp thứ tự trường kết xuất trên bảng bằng từ khóa ORDER BY
Vd 1 : Có 2 table
bảng Khachhang(MaKH, TenKHCty, Diachi, Thanhpho)
Khachhang1(MaKH, TenKHCH, Diachi, Thanhpho)
Dùng Query hội :
SELECT DISTINCTROW MaKH, TenKHCty, Diachi, Thanhpho
ORDER BY [TenKHCty/TenKHCH] ASC;
5 Dùng SQL để tạo Query con (Sub Query) :
Lưu ý : Không thể tạo Query con trong Query Uion hay Query Crosstab
Vd 1 : Hiển thị các khách hàng chưa có mua hàng
Select *
From Khachhang
Where MaKH NOT IN (Select MaKH From HOADON);
Trang 18Vd 2 : Tìm TenKH của những khách hàng có ngày lập hóa đơn trong khoảng thời gian từ 01/07/98đến 31/07/98.
SELECT DISTINCTROW Khachhang.TenKH
FROM Khachhang
WHERE Khachhang.MaKH IN
(SELECT DISTINCTROW Khachhang.MaKH
FROM Hoadon
WHERE Hoadon.NgaylapHD BETWEEN #07/01/98# AND #07/31/98#);
V Query hành động (Action Query) :
Khi thực hiện một Query chọn, khi ta sửa chữa dữ liệu ta phải chỉnh sửa bằng tay từng mẫutin một, dẫn đến dễ sai sót và mất thời gian Query hành động giúp ta trong việc tính toán vàchỉnh sửa một cách đồng loạt
Các loại Query hành động :
+ Query tạo bảng (Make Table Query) : Tạo bảng mới với dữ liệu lấy một phần hay toàn bộ từ
các Table hay Query khác
+ Query xóa (Delete Query) : Xóa các mẫu tin từ một hay nhiều bảng.
+ Query nối (Append Query) : Dùng để thêm một số mẫu tin từ một hoặc nhiều bảng.
+ Query cập nhật (Update Query) : Dùng hiệu chỉnh dữ liệu trong bảng đã tạo.
Các bước tạo Action query :
Các bước 1, 2, 3 giống như Query chọn
B4 Click Menu Query và click chọn một trong các query : Make Table query, Append query,Delete query, Update query, xuất hiện hộp thoại tương ứng :
Nếu là Make Table query hoặc Append query, tại hộp Table Name, gõ vào tên table Sau đóDrag các trường mà ta muốn có hoặc các trường dùng để đặt điều kiện lọc vào vùng lưới vàlập các điều kiện lọc (nếu cần)
Nếu là Delete query hoặc Update query : Drag các trường mà ta muốn có hoặc các trườngdùng để đặt điều kiện lọc vào vùng lưới và lập các điều kiện lọc (nếu cần)
B5 Chuyển sang chế độ Datasheet View để xem Query vừa tạo có đạt yêu cầu hay không Sauđó trở lại Design View để chỉnh sửa lại thiết kế nếu cần
B6 Click biểu tượng Run để thực hiện query
B7 Đóng cửa sổ Query và lưu Query với một tên
Trang 19I- FORM :
Là công cụ cho phép tạo giao diện chương trình (interface) giữa người sử dụng và chươngtrình khi tương tác
Các dạng Form :
1 Columnar : dạng cột và chỉ hiển thị mỗi lần một mẫu tin
2 Justified : dạng hàng và chỉ hiển thị mỗi lần một mẫu tin
3 Tabular : dạng hàng và hiển thị mỗi lần nhiều mẫu tin
4 Datasheet : dạng bảng tính và hiển thị mỗi lần nhiều mẫu tin
5 Main-Sub : dạng Form có 2 phần : main (table bên 1), sub (table bên n)
Ta có thể tạo một Form bằng một trong các chế độ sau :
AutoForm : Tạo Form tự động
Form Wizard : Tạo Form với sự trợ giúp của Wizard
Design View : Tạo Form bằng thiết kế thủ công
…
1 Tạo Form bằng AutoForm :
AutoForm giúp ta tạo Form dựa trên Table / Query một cách nhanh chóng, đơn giản
Các bước tạo Form dùng AutoForm :
Bước 1 : Tại cửa sổ Database, click vào đối tượng Form - New
Bước 2 : Trong hộp thoại New Form :
Chọn một trong các chế độ AutoForm : Columnar, Tabular, Datasheet
Chọn Table hoặc Query mà ta muốn làm nguồn dữ liệu của Form và click OK
2 Tạo Form bằng Wizard :
2.1 Tạo Form đơn giản :
Các bước tạo Form dùng Wizard :
Bước 1 : Tại cửa sổ Database, click vào đối tượng Form - New
Bước 2 : Trong hộp thoại New Form :
Chọn chế độ Form Wizard
Chọn Table hoặc Query mà ta muốn làm nguồn dữ liệu của Form và click OK (Trườnghợp muốn tạo Form có các trường trên nhiều table, ta phải tạo Query làm nguồn trước,sau đó mới thực hiện bước 1)
Bước 3 : Xuất hiện hộp thoại Form Wizard :
Chọn các trường cho Form, và click Next
Chọn kiểu trình bày Form (Columnar, Tabular, Datasheet, Justified), và click Next
Chọn kiểu trình bày nền và dữ liệu cho Form, và click Next
Nhập tiêu đề (đồng thời cũng là tên Form), và click Finish
Trang 202.2 Tạo Main-Sub Form :
Dạng Main-Sub Form được dùng khi ta muốn hiển thị dữ liệu có liên hệ từ các bảng có quanhệ 1-n với nhau Form dạng này gồm có một Main Form và có thể có một hay nhiều Sub Formlồng trong Main Form
Các bước tạo Main-Sub Form dùng Wizard :
Bước 1 : Tại cửa sổ Database, click vào đối tượng Form - New
Bước 2 : Trong hộp thoại New Form :
Chọn một trong các chế độ Form Wizard
Chọn Table hoặc Query mà ta muốn làm Main Form và click OK
Bước 3 : Xuất hiện hộp thoại Form Wizard :
Chọn các trường cho Main Form
Click chọn Table / Query làm nguồn cho Sub Form và chọn các trường cho Sub Form, vàclick Next
Xuất hiện hộp thoại Form Wizard, và click Next
Chọn kiểu trình bày Form (Tabular, Datasheet), và click Next
Chọn kiểu trình bày nền và dữ liệu cho Form, và click Next
Nhập tiêu đề (đồng thời cũng là tên Form), và click Finish
II- REPORT :
Là công cụ cho phép tạo ra các báo cáo dùng để kết xuất dữ liệu lưu trữ trong CSDL ra màn hìnhhay máy in
Các dạng Report :
1 Detail Report : báo cáo chi tiết, thể hiện đầy đủ dữ liệu nguồn Có 2 kiểu là Tabular vàColumnar
2 Group / Total Report : báo cáo nhóm / tổng, là dạng báo cáo có tính chất thống kê, tổng hợpdữ liệu theo từng nhóm
3 Chart Report : báo cáo dạng đồ thị
Có thể tạo Report bằng một trong các chế độ sau :
Auto Report
Report Wizard
Report Design View
Các bước tạo Report tương tự như tạo Form
Trang 21Việc tạo Form và Report bằng công cụ Wizard rất tiện lợi và nhanh chóng Tuy nhiên, khi cần tự xây dựng hoặc phát triển thêm Form hoặc Report, ta phải làm việc trong chế độ thiết kế (Design) Cách
nhanh nhất là tạo Form và Report bằng công cụ Wizard, sau đó thiết kế lại bằng Design.
Quan sát một Form hoặc Report ở chế độ Design, ta thấy có các thành phần :
Header : tiêu đề đầu, chỉ xuất hiện một lần duy nhất tại đầu Form hoặc Report bất kể chúngtrải dài bao nhiêu trang giấy
Page Header : tiêu đề đầu trang, chỉ xuất hiện tại đầu mỗi trang của Form hoặc Report.Detail : phần chi tiết là các đối tượng làm nội dung Form hoặc Report
Page Footer : tiêu đề cuối trang, chỉ xuất hiện tại cuối mỗi trang của Form hoặc Report.Footer : tiêu đề cuối, chỉ xuất hiện một lần duy nhất tại cuối Form hoặc Report
Ngoài ra đối với Report còn có thể có các tiêu đề đầu nhóm (group header) chứa các đốitượng xuất hiện một lần tại đầu mỗi nhóm và tiêu đề cuối nhóm (group Footer) chứa các đốitượng xuất hiện một lần tại cuối mỗi nhóm
Các control trong thanh công cụ ToolBox ứng dụng trong thiết kế Form và Report :
Tên điều khiển Ý nghĩa
Label Tạo 1 điều khiển để hiển thị chuỗi ký tự làm nhãn hay chú giải
Text Box Tạo 1 điều khiển để nhập ký tự
Toggle Button Tạo 1 điều khiển có 2 chế độ : bật / tắt
Option Button Tạo 1 điều khiển có 2 chế độ : chọn / không chọn
Check Box Tạo 1 điều khiển có 2 chế độ : chọn / không chọn
Option Group Tạo 1 điều khiển là 1 nhóm các Check Box, Option Button hay Toggle Button
List Box Tạo 1 điều khiển là 1 hộp liệt kê để chọn lựa
Combo Box Tạo 1 điều khiển là 1 hộp liệt kê nhưng ta có thể nhập thêm dữ liệu vào
Image Tạo 1 điều khiển để chèn vào một tập tin hình ảnh
SubForm/SubReport Tạo 1 điều khiển để chèn vào Form/Report bên trong Form/Report đang thiết kế
Unbound Object Frame Tạo 1 điều khiển cho phép chèn vào một tập tin hình ảnh
Bound Object Frame Tạo 1 điều khiển cho phép chèn vào Field hình ảnh trong table lên trên Form/Report Line Tạo 1 điều khiển là 1 đường thẳng
Rectangle Tạo 1 điều khiển là 1 hình chữ nhật
Page Break Tạo 1 điều khiển để bắt đầu 1 trang mới trong Form hay Report
Command Button Tạo 1 điều khiển để thi hành 1 macro, để gọi 1 hàm hay thủ tục của Visual basic
Control Wizard Bật / tắt chế độ dùng công cụ trợ giúp Wizard
Select Object Cho phép đánh dấu các đối tượng trên màn hình Design
Tab Control Cho phép tạo control theo nhiều trang
More Control Cho phép tạo thêm một số Control không có trong thanh ToolBox
Lưu ý :
1 Đối tượng Label dùng để nhập liệu một nhãn, tiêu đề hay chú giải.
Trang 222 Đối tượng TextBox khi chèn vào sẽ có 2 phần đi chung : Label và TextBox TextBox sẽ chứa
tên trường Trong TexBox ta phải gõ vào đúng tên trường, hoặc có thể Click menu View- FieldList để hiện ra hộp Field List, rồi giử mouse tại Field cần đưa vào, drag vào TextBox
TextBox cũng dùng để tạo đối tượng dạng tính toán, ta phải gõ vào dấu = theo sau là biểu thức
Vd : =[Dongia]*[Soluong]
=Sum([Dongia]*[Soluong])
=[HoNV] & “ “ & [TenNV]
3 Tạo đối tượng dạng Unbound Object Frame :
B1 : Click chọn biểu tượng Unbound Object Frame trên Toolbox
B2 : Drag chuột thành một khung chứa đối tượng
Tạo khung hội thoại Insert Object : Có 3 trường hợp
Chọn Create New nếu tạo mới một sản phẩm đem gắn cho đối tượng Trong Object Type chọnphần mềm tạo sản phẩm và tạo, xong thì chọn Menu File-Exit để thoát khỏi phần mềm vàtrở về Access
Chọn Create From file nếu muốn gắn hay liên kết 1 nội dung đã tạo trước đó cho đối tượng.Sau đó gõ vào ổ đĩa:\Thư mục\Tên tập tin và đánh dấu tại mục Link nếu muốn liên kết
Chọn Display As Icon nếu muốn trình bày đối tượng như 1 biểu tượng
4 Tạo đối tượng dạng Image :
B1 : Click chọn biểu tượng Image trên Toolbox
B2 : Drag chuột thành một khung chứa đối tượng
B3 : Tại hộp thoại Insert Picture chọn file chứa hình ảnh cần chèn vào, xong click OK
5 Tạo dòng group (Phân nhóm) – Hoặc sắp xếp dữ liệu cho Report :
Click Menu View-Sorting and Grouping (hoặc click trên Toolbar Report Design) sẽ hiển thị hộpthoại Sorting and Grouping
Thẻ Field/Expression : Chọn field (nếu gõ biểu thức thì phải có dấu =) làm chỉ tiêu phân nhóm(hay sắp xếp dữ liệu cho báo biểu)
Thẻ Sort Order : Chọn chỉ tiêu sắp xếp dữ liệu
Thẻ Group Properties : Qui định các thuộc tính nhóm
Group Header : ẩn/hiện (No/Yes) tiêu đề đầu nhóm
Group Footer : ẩn/hiện (No/Yes) tiêu đề cuối nhóm
Group On : Qui định phương thức xử lý lập nhóm Nếu là Each Value thì lấy toàn bộ giá trịcủa Field/Expression làm chỉ tiêu phân nhóm
Group Interval : Qui định khoảng giá trị có hiệu lực cho phương thức xử lý lập nhóm trên mụcGroup On (Nếu là Each Value thì bằng 1)
Keep Together : một số qui định trình bày khi in (No : in theo chế độ mặc định WholeGroup : Ngắt trang khi hết nhóm With First Detail : in tiêu đề của đầu nhóm và dòng chitiết đầu tiên của nhóm trên cùng 1 trang
6 Đánh số trang cho báo biểu : Click Menu Insert-Page Numbers.
Trang 237 Tạo Combo Box :
B1 Click chọn đối tượng Combo Box trên thanh ToolBox
B2 Drag chuột tạo một khung, xuất hiện hộp thoại Combo Box Wizard
B3 : Chọn mục “I want the Combo Box lookup the value in a table or query“
B4 Chọn Table / Query làm nguồn dữ liệu Combo BoxClick
B5 : Chọn các field làm nội dung trình bày trong Combo Box
B6 Rê cạnh phải của cột hoặc click đúp vào cạnh phải để đạt độ rộng vừa nhất
B7 Chọn cột mà giá trị được gán làm giá trị sử dụng của đối tượng
B8 Chọn chế độ sử dụng giá trị của đối tượng
B9 Gõ nhãn cho Combo box và chọn finish
Các bài tập ví dụ về Thiết kế Form và Report :
Bài 1 Tạo Form “Cap nhat Hoa don” có thiết kế như sau :
Label
Text Box Combo Box
Command Button
Trang 24Để tạo một Command Button bằng Wizard:
B1: Bật Control Wizard, click vào control Command Button trên thanh ToolBox và drag thànhmột nút lệnh tại nơi muốn đặt nút lệnh
B2: Xuất hiện hộp thoại Command Button Wizard
Nếu các lệnh liên quan đến thao tác trên mẫu tin thì Click chọn Record Operations trêndanh mục (categories) và chọn hành động (Actions) như thêm, xóa … mẫu tin
Nếu các lệnh liên quan đến thao tác trên From thì Click chọn Form Operations trên danhmục (categories) và chọn hành động (Actions) như đóng, mở … Form
Bài 2 : Tạo Report “In Hoa Don” cho phép khi gõ vào một MaHD, sẽ in ra Hóa đơn bán hàng có
các thông tin theo mẫu dưới đây :
Trang 25B1: Tạo Query làm nguồn dữ liệu cho Report Query này chứa các trường có trong Report và làParameter Query vì theo yêu cầu gõ vào một MaHD sẽ in ra Hóa đơn đó.
B2: Tạo Report “In Hoa don” có nguồn là Query ở bước một và có thiết kế như sau :
Trang 26I- KHÁI NIỆM:
Macro là một tập hợp các action (hành động) được qui định sẵn trong Access giúp ta có thể tựđộng hóa một quá trình xử lý nào đó
II- TẠO VÀ THI HÀNH MỘT MACRO:
1 Các bước tạo và thực hiện một macro:
B1 Từ cửa sổ Database, click thẻ Macro - New, xuất hiện cửa sổ thiết kế macro
B2 Tại cột Action, click vào ô đầu tiên, rồi chọn một action từ danh sách của combo box.B3 Trong phần Action Arguments (đối số hành động), chỉ định các argument cho action.B4 Để thêm các action khác, di chuyển đến dòng action kế tiếp và lập lại từ bước 1 đến bước
3 (Access sẽ thực hiện các action theo thứ tự ta liệt kê)
B5 Lưu macro bằng cách click vào biểu tượng Save
B6 Thực hiện macro bằng cách click vào biểu tượng Run
2 Nhóm macro (macro group):
Là tập hợp gồm nhiều macro được chứa trong cùng một macro để tiện việc quản lý các macro.Các bước tạo nhóm macro như sau:
B1 Từ cửa sổ Database, click thẻ Macro - New, xuất hiện cửa sổ thiết kế macro
B2 Click menu View - Macro name, cột Macro name sẽ xuất hiện bên cạnh cột Action
B3 Gõ vào tên macro muốn tạo tại Macro name Sau đó chọn các Action, Comment vàArgument tương ứng
B4 Lập lại bước 3 cho các macro tiếp theo trong nhóm
B5 Lưu nhóm macro vừa tạo
Để gọi thực hiện một macro trong nhóm: <Tên nhóm macro>.<Tên macro>
Trang 273 Macro có điều kiện:
Để xem xét trước một điều kiện nào đó khi thực hiện một số hành động trong macro, ta tạo macrocó điều kiện
B1 Từ cửa sổ Database, click thẻ Macro - New, xuất hiện cửa sổ thiết kế macro
B2 Click menu View - Conditions, cột Condition sẽ xuất hiện bên cạnh cột Action
B3 Đưa biểu thức điều kiện vào ô Condition tương ứng với hành động mà ta muốn qui định điều kiện Trong trường hợp điều kiện tương ứng với nhiều hành động, các hành động kế phải có dấu "ba chấm" (…) ở ô Condition tương ứng
Trang 28BÀI TẬP
Bài 1 : Tạo các Form Khachhang, Nhanvien, Hoadon, Sanpham, ChitietHD Tạo một nhóm cácmacro chứa các hành động mở các Form trên Sau đó tạo Form có tên “Bang chon Form” chứacác nút lệnh gắn với các macro mở các form Khachhang, Nhanvien, Hoadon, Sanpham,ChitietHD
Bài 2 : Tạo một Form để khi xem thông tin về một khách hàng, ta muốn xem thông tin về các hóađơn của khách hàng đó nhưng không muốn hiển thị chúng thường xuyên trên màn hình
HD :
- Tạo Form “Xem HD” dạng Main-Sub Form có Main Form là table HOADON và SubForm là table CHITIETHD
- Tạo Form “Danh sach KH” (loại columnar) từ table KHACHHANG
- Tạo nút lệnh “Xem hóa đơn” trong Form “Xem HD” để xem hóa đơn và các nút lệnh
“Close” để thoát khỏi các Form “Xem HD” và “Danh sach KH”
Trang 29Bài 3 : Tạo Form : XEM HOA DON theo mẫu sau đây để có thể hiển thị các hóa đơn đã lập theoyêu cầu sau :
- Khi chọn Xem bảng tổng hợp hóa đơn thì Combo Box để chọn hóa đơn sẽ không xuất hiện vàkhi click nút In báo cáo sẽ in ra bảng tổng hợp hóa đơn
- Khi chọn yêu cầu in chi tiết từng hóa đơn thì Combo Box để chọn hóa đơn sẽ xuất hiện và khiclick In báo cáo sẽ in ra mẫu hóa đơn đang chọn
Bài 4 : Tạo macro dùng làm toolbar có 5 nút để thực hiện các chức năng :
1- Mở form SAN PHAM.
2- Mở query Query1.
3- Mở table NHANVIEN.
4- Mở report KH MUA HANG.
5- Thoát khỏi FORM1
Bài 5 : Dùng macro để tạo menu HE THONG và TIEN ICH gồm các chức năng :
- Mở Table NHAN VIEN - Chạy chương trình máy tính điện tử
(các form, report do học viên tự tạo trong CSDL BANHANG.MDB)
Bài 6: Tạo macro điều kiện dùng để thực thi form sau :
Yêu cầu :
Nếu người sử dụng chọn mục Danh mục sản phẩm và bấm nút OK thì sẽ mở form DANH
MUC SAN PHAM (Combo Box Mã Sản Phẩm ẩn đi).
Nếu người sử dụng chọn mục Chi tiết sản phẩm thì Combo Box Mã Sản Phẩm hiện ra Nếu người sử dụng không chọn MASP mà bấm OK thì sẽ thông báo lỗi Ngược lại thì mở form CHI
TIET SAN PHAM ứng với MASP tương ứng đã chọn.