Bai giảng Access 2003
Chia sẻ bởi Lý Minh Thuận |
Ngày 29/04/2019 |
56
Chia sẻ tài liệu: bai giảng Access 2003 thuộc Bài giảng khác
Nội dung tài liệu:
MICROSOFT ACCESS
NỘI DUNG
Chương I. Một số khái niệm cơ bản
Chương II. Các thao tác với bảng (Tables)
Chương III. Truy vấn thông tin (Queries)
Chương IV. Thiết kế giao diện (Forms)
Chương V. Thiết kế báo cáo (Reports)
Chương VI. Các lệnh vĩ mô (Macros)
Chương VII. Lập trình trong Access (Modules)
CHƯƠNG I. MỘT SỐ KHÁI NIỆM CƠ BẢN
NỘI DUNG:
§1.1. CSDL & hệ quản trị CSDL
1. Cơ sở dữ liệu
2. Hệ quản trị cơ sở dữ liệu
3. Công cụ quản trị CSDL Microsoft Access
§1.2. Mô hình dữ liệu quan heä
1. Thuộc tính
2. Khóa (Khóa chính, khóa ngoại)
3. Ràng buộc toàn vẹn
§1.1. CSDL & hệ quản trị CSDL
1. Cơ sở dữ liệu (CSDL – Database) là một hệ thống thông tin có cấu trúc, được lưu trữ trên các thiết bị mang tin từ tính (thường là đĩa từ), phục vụ việc khai thác thông tin đồng thời của nhiều người sử dụng với nhiều mục đích khác nhau.
Các đặc tính quan trọng cơ bản nhất của Cơ sở dữ liệu được in màu và gạch chân.
2. Hệ quản trị cơ sở dữ liệu (DataBase Management System – DBMS) là một hệ thống chương trình quản trị CSDL đồng thời là công cụ giao tiếp giữa người sử dụng (NSD) với hệ thống cơ sở dữ liệu. Một hệ quản trị CSDL phải có các cơ chế:
Đảm bảo tính chất đầy đủ, không trùng lặp và không dư thừa thông tin.
(tiếp theo)
Đảm bảo tính nhất quán, an toàn và toàn vẹn dữ liệu.
Bảo mật dữ liệu.
Giải quyết tranh chấp dữ liệu.
Đảm bảo tính độc lập giữa dữ liệu và chương trình.
Tự sao lưu (BackUp) và phục hồi (Restore) khi có sự cố.
Ngôn ngữ truy nhập CSDL, cho phép người sử dụng và các chương trình ứng dụng khai thác thông tin trong CSDL. Ngôn ngữ này được chia thành 4 lĩnh vực (hay phạm trù – Categoria):
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL), cho phép tạo các cấu trúc dữ liệu lưu trữ.
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML), cho phép cập nhật (thêm, xóa, sửa) dữ liệu.
Ngôn ngữ truy vấn dữ liệu (Strutured Query Language – SQL).
Ngôn ngữ kiểm soát dữ liệu (Data Control Language – DCL)
(tiếp theo)
3. Công cụ quản trị CSDL Microsoft Access.
Microsoft Access là một công cụ quản trị CSDL, cho phép xây dựng các ứng dụng CSDL theo mô hình dữ liệu quan hệ trên một môi trường gọn nhẹ, đơn giản, dễ thao tác, nhưng vẫn đảm bảo được các tính chất quan trọng đã nêu của một hệ quản trị CSDL. Mỗi ứng dụng CSDL trên môi trường Access là một file trên đĩa từ có phần mở rộng mặc định là .mdb, gồm 6 đối tượng: các bảng (Tables Relation – quan hệ theo lý thuyết CSDL quan hệ), Các câu truy vấn (Queries), Các giao diện nhập liệu (Forms), Các báo cáo (Reports), Các lệnh vĩ mô (Macros) và các Modules chương trình. Mỗi đối tượng đều có các chức năng: New – Tạo đối tượng mới, Design – Sửa lại đối tượng đã có, và Open – Mở (hoặc thực hiện) đối tượng đã chọn.
§1.2. Mô hình dữ liệu quan hệ
Thuộc tính (Attribute):
Thuộc tính là một tính chất của đối tượng cần được phản ảnh trong CSDL phục vụ cho việc khai thác thông tin về sau này.
Ví dụ: Về con người, các đặc tính sau đây cần được lưu trữ:
Họ tên, Giới tính, Ngày sinh…
Thuộc tính được đặc trưng bởi:
a. Tên gọi: Tên của thuộc tính là một dãy ký tự bất kỳ bắt đầu bằng ký tự khác khoảng trắng (space). Tuy nhiên, nên đặt tên thuộc tính bằng chữ cái Latin, và đặt tên một cách gợi nhớ. Nếu tên có chứa các ký tự đặc biệt thì khi sử dụng phải đặt nó trong cặp dấu ngoặc vuông [ ].
Ví duï: HoTen, GioiTinh, NgaySinh, +++, ---, ***, ///
Tuy nhiên, 4 tên gọi sau, khi sử dụng phải đặt trong ngoặc vuông: [+++], [---], [***], [///]
(tiếp theo)
b. Kiểu giá trị:
Mỗi công cụ quản trị CSDL có các kiểu dữ liệu khác nhau. Tuy nhiên đều có chung các kiểu dữ liệu cơ bản sau:
- Ký tự: (Text, String, Char, ..)
- Kiểu số: (Number, Decimal, Float, …)
Kiểu ngày tháng: (Date/Time) phải có đầy đủ cả ngày, tháng và năm.
Kiểu luận lý: (Logical, Boolean, YesNo, …)
Kiểu dữ liệu đa phương tiện: (OLE) bao gồm hình ảnh (Bitmap), âm thanh (Audio) hoặc/và phim (Movie)
c. Miền giá trị:
Miền giá trị (Domain) đảm bảo tính đúng đắn của dữ liệu. Bởi nếu mới chỉ xác định có kiểu dữ liệu, ví dụ, thuộc tính chiều cao CCVC là số nguyên, thì có thể nhập giá trị 50cm! Điều này là không thể chấp nhận được.
(tiếp theo)
2. Khóa (Key - Khóa chính, khóa ngoại, khoá lồng)
Định nghĩa 1: Là tổ hợp các thuộc tính mà giá trị của chúng xác định duy nhất một bộ giá trị. Theo định nghĩa này, nếu thêm (các) thuộc tính vào một khóa thì tổ hợp mới cũng sẽ là khóa. Định nghĩa này chưa chặt chẽ.
Định nghĩa 2: Cho R(U) là quan hệ định nghĩa trên tập thuộc tính U, và K U. K là khóa của R nếu và chỉ nếu:
K xác định duy nhất một bộ giá trị. (thỏa đ/n 1)
K là tập con nhỏ nhất.
Định nghĩa 3: Một quan hệ có thể có nhiều khóa theo đ/n 2. Các khóa đó được gọi là khóa chỉ định (Candidate Key).
Định nghĩa 4: Một khóa chỉ định tiện lợi nhất cho việc sử dụng được chọn làm khóa chính (Primary Key).
Quy ước: Khóa chính trong quan hệ (thì) được gạch chân.
Không được phép sửa đổi giá trị của thuộc tính khóa chính.
(tiếp theo)
Định nghĩa 5: R(U), S(V) là 2 quan hệ và K1 U là khóa của R. Xét K2 V. Nếu:
K1 và K2 có cùng số lượng và ý nghĩa của các thuộc tính.
rTR thì tồn tại từ 0 đến nhiều sTS s/c r.K1=s.K2; ngược lại, sTS ! rTR sao cho r.K1=s.K2
Khi đó, K2 của S được gọi là khoá ngoại (Foreign Key) khi tham chiếu tới quan hệ R.
Định nghĩa 6: R(U), S(V) là các quan hệ, K1 U là khóa của R, K2 V là khóa ngoại khi tham chiếu R, và K3 K2. Nếu K3 là các thuộc tính khóa của S thì K3 được gọi là khóa lồng (Nested Key).
3. Ràng buộc toàn vẹn(Integrity Constraint/Rule)
Đó là 1 quy tắc bất biến mà các thao tác trên CSDL phải tuân theo nhằm đảm bảo tính đúng đắn, nhất quán, an toàn và toàn vẹn dữ liệu.
CHƯƠNG II. CÁC THAO TÁC VỚI BẢNG
NỘI DUNG:
§2.1. Tạo lập cấu trúc bảng
1. Các tính chất (Properties) của cột
2. Thao tác tạo cấu trúc bảng.
3. Thiết lập khóa chính cho bảng
§2.2. Thiết lập mối liên hệ giữa các bảng
§2.3. Tạo bảng từ dữ liệu đã có (Import)
§2.4. Sử dụng chung tài nguyên với các CSDL khác
§2.5. Trích xuất dữ liệu ra file hoặc bảng ngoài
§2.1. Tạo lập cấu trúc bảng
. Các tính chất (Properties) của cột
Microsoft Access có các kiểu dữ liệu sau:
Kiểu văn bản với chiều dài cố định (Text). Trong kiểu này phải xác định độ rộng của cột – tính theo byte. Độ rộng tối đa của cột là 255 bytes. Giá trị luôn luôn được điền thêm khoảng trắng ở cuối để cho đủ số lượng đã khai báo.
Kiểu số (Number). Có 5 loại kiểu số theo kích thước lưu trữ. Số nguyên 1 byte (Byte) có giá trị từ 0 đến 255. Số nguyên 2 bytes (Integer) có giá trị từ –32768 đến +32767. Số nguyên 4 bytes (Long) có giá trị từ khoảng -2,1 tỷ đến +2,1 tỷ. Số thực độc hính xác đơn (Single) chiếm 4 bytes, có giá trị đảm bảo chỉ có 7 chữ số đầu là có nghĩa đúng đắn. Số thực độ chính xác gấp đôi (Double) đảm bảo 15 chữ số có ý nghĩa - đúng.
(tiếp theo)
Kiểu luận lý Yes/No (hoặc True/False hoặc On/Off).
Kiểu văn bản có chiều dài thay đổi (Memo). Giá trị có thể có kích thước tối đa 64K bytes.
Kiểu tiền tệ (Currency) với bản chất là kiểu số, nhưng khi hiển thị thì có ký hiệu tiền tệ $ ở phía trước.
Kiểu Ngày tháng (DateTime). Giá rị kiểu này phải có đầy đủ cả ngày, tháng và năm.
Kiểu đánh số tăng dần một cách tự động (AutoNumber) là số nguyên 4 bytes, tự động tăng 1 mỗi khi một bản ghi mới được bổ sung vào bảng.
Kiểu dữ liệu đa phương tiện (Object Linked Embedded - OLE), có thể là một bảng tính Excel, file Word, hình ảnh (Bitmap), âm thanh (Audio) hoặc phim (Movie).
(tiếp theo)
Ngoài các tính chất cơ bản của cột mà một thuộc tính của quan hệ cần có là Tên (Name), Kiểu giá trị (Type) và Kích thước (Size), cột của bảng cần được đặc tả chi tiết thêm một số tính chất sau:
Tiêu đề cột (Caption) – hiển thị khi nhập dạng bảng
Quy cách hiển thị (Format) – đó là một dãy các ký tự thể hiện quy cách hiển thị giá trị của field trên màn hình nhập dữ liệu, trong đó:
Đối với kiểu số: Standard – có dấu tách hàng ngàn, hàng triệu. Các giá trị bằng tiền hay các số lớn thì nên chọn dạng format này. Số 0 để hiện số 0 vô nghĩa.
Đối với kiểu văn bản: dấu “>” để hiện chữ in hoa; “<“ để hiện chữ nhỏ.
Với ngày tháng: ShortDate, Medium và LongDate…
(tiếp theo)
- Với kiểu lôgic: hiển thị bằng chữ (text) YesNo, TrueFalse, OnOff hay bằng Check box .
Quy cách nhập dữ liệu (Input Mask): Là một dãy ký tự có ý nghĩa như sau:
0 - Tại vị trí đó phải nhập một chữ số (bắt buộc).
9 - Nhập 1 chữ số (không bắt buộc).
# - 1 chữ số (hoặc dấu +/-) bất kỳ (không bắt buộc).
? - Một chữ cái bất kỳ (không bắt buộc)
a - Nhập 1 chữ cái/chữ số bất kỳ (không bắt buộc)
A - Nhập 1 chữ cái/chữ số (bắt buộc).
> - Đổi các chữ cái sau thành chữ in hoa.
< - Đổi các chữ cái sau thành chữ nhỏ.
& - Một ký tự bất kỳ, bắt buộc nhập
C - Một ký tự bất kỳ, không bắt buộc nhập.
(tiếp theo)
Giá trị mặc định (Default Value)
Quy tắc kiểm tra tính đúng đắn của dữ liệu nhập (Validation Rule RBTV về miền giá trị). Quy tắc có dạng:
OR | AND …
Ở đây là một trong các phép so sánh sau đây:
>, >=, <, <=, <>, IN, Between, Like.
Thông báo lỗi khi RBTV bị vi phạm (Validation Text)
Dữ liệu có bắt buộc phải được nhập không? (Required)
Allow Zero Length: Cho phép chuỗi có chiều dài bằng 0.
Cần được lập chỉ mục không (Indexed). Có 3 lựa chọn:
No – Không lập chỉ mục (mặc định)
Yes, No duplicates – lập chỉ mục nhưng không chứa gtrị lặp
Yes, Duplicates OK - lập chỉ mục cho cả giá trị lặp.
(tiếp theo)
. Thao tác tạo cấu trúc bảng.
Thao tác:
B0) Khởi động Microsoft Access (nếu chưa làm)
B1) Nếu chưa có CSDL thì tạo mới:
- Nếu mới khởi động MSA thì chọn Blank Microsoft Database OK.
Nếu đang trong MSA thì vào menu File chọn New OK.
Chọn thư mục lư trữ file CSDL tại mục Save In.
Đặt tên file CSDL tại mục File Name. Tên file CSDL mặc định là DB1, DB2, … Không cần đặt phần mở rộng cho file CSDL. Hãy sử dụng mặc định cho file CSDL là .mdb.
Màn hình tạo mới CSDL xuất hiện như trong hình sau:
Nếu đã có CSDL thì mở CSDL bởi mục FileOpen
(tiếp theo)
(tiếp theo)
B2) Chọn đối tượng Tables (nếu chưa làm)
B3) Chọn chức năng New (table). Có 5 khả năng tạo mới một bảng của CSDL:
1. Datasheet View : Có bảng để nhập dữ liệu luôn.
2. Design View: Tự thiết kế cấu trúc của bảng.
3. Table wizard: Tạo bảng từ các cấu trúc mẫu đã có sẵn.
4. Import Table: Tạo bảng từ dữ liệu cho sẵn.
5. Link Table: Tạo mối liên kết dữ liệu để dùng chung tài nguyên với các hệ CSDL khác.
B4) Lần lượt đặc tả chi tiết các cột của bảng (như hình sau).
B5) Thiết lập khóa chính cho bảng bằng cách:
- Nhấn + giữ phím Shift rồi bấm trỏ chuột vào thuộc tính khóa.
- Bấm trỏ chuột vào nút chức năng có hình chìa khóa ở trên.
B6) Đóng cửa sổ thiết kế và đặt tên cho bảng, rồi chọn OK
Màn hình đặc tả cấu trúc bảng (tiếp theo)
Chỉ dẫn (ToolsTips) ở dưới đáy màn hình mỗi khi con trỏ được đặt vào cột này
Tên cột
§2.2. Thiết lập mối liên hệ giữa các bảng
Thao tác: B0), B1) (nếu chưa làm)
B2) Vào Menu Tools, chọn chức năng Relationships. Màn hình xuất hiện như hình dưới đây:
(Tiếp theo)
B3) Chọn các bảng cần đưa vào Relationships bởi nút Add. Kết thúc chọn bởi nút Close. Màn hình như hình dưới đây:
(Tiếp theo)
B4) Kéo-Thả (Drag-drop) thuộc tính khóa chính vào thuộc tính khóa ngoại của bảng liên quan, rồi điều chỉnh mối quan hệ tương ứng giữa các thuộc tính khoá chính và khoá ngoại, như hình dưới đây:
(Tiếp theo)
Chọn kiểu liên kết thông qua tuỳ chọn (Join type). Ba loại liên kết tương ứng với 3 phép toán đại số quan hệ: Inner Join, Left Join, Right Join. Mặc định là Inner Join.
Bắt buộc kiểm tra ràng buộc toàn vẹn về khoá ngoại nếu đánh dấu vào mục Enforce Referential Integrity. Hai mục sau có thể được chọn:
Cascade Update Related Fields: Tự động cập nhật khóa ngoại
Cascade Delete Related Records: Tự động xóa lan truyền.
Chọn nút Create để tạo lập. Cancel để hủy bỏ.
B5) Đóng cửa sổ thiết kế và lưu lại các mối liên kết mới tạo.
** Lưu ý: Giữa 2 bảng chỉ thể hiện một mối liên hệ. Để thể hiện (các) mối liên hệ khác thì cần bổ sung lôgíc một trong 2 bảng đó vào lược đồ (Relationships). Tên của các bảng lôgíc này được ghép thêm số _1, _2… ở phía sau.
§2.3. Tạo bảng từ dữ liệu đã có (Import)
Nguồn dữ liệu để Import có thể là các Tables, Queries, Forms, Reports, Macros, Modules của file CSDL Microsoft Access, hoặc file Dbase, Foxpro, Excel, Text hoặc các bảng trong các CSDL được kết nối mở (Open DataBase Connectivity).
Thao tác: B0), B1), B2) (nếu chưa làm)
B3) Chọn chức năng NewImport Table
Chọn loại dữ liệu nguồn tại mục Files of Type
Xác định thư mục chứa các file dữ liệu thuộc loại trên tại mục Look In.
Xác định tên file (hoặc CSDL) dữ liệu nguồn tại mục: File Name.
Chọn chức năng Import.
Màn hình chọn file dữ liệu nguồn như trong hình cho trong trang sau.
(*) Nếu nguồn dữ liệu là file CSDL của Access thì chỉ cần chọn các Tables, Queries, Forms, Reports,Macros hay Modules rồi OK. Nếu là bảng hoặc file CSDL thì đánh dấu chọn rồi OK để hoàn tất.
(Tiếp theo)
Màn hình chọn dữ liệu nguồn để tạo bảng trong Microsoft Access.
(Tiếp theo)
Nếu nguồn dữ liệu là file CSDL Microsoft Access thì màn hình chọn đối tượng để Import có dạng:
B4)(Tiếptheo)
(*) Nếu nguồn dữ liệu là file văn bản (*.txt, *.cvs, *.tab hoặc *.asc) thì cần xác định quy cách lưu trữ của file là “Delimited” – Có ký tự làm dấu tách giữa các giá trị; hoặc “Fixed width” – nếu cột có độ rộng cố định.
B5) (Tiếp theo)
(*) Nếu nguồn dữ liệu là file văn bản (*.txt) hoặc Excel (*.xsl) thì cần chỉ rõ dòng đầu tiên có phải là dòng tiêu đề cột hay không? ( First Row Contains Field Names). Nếu là file *.txt thì cần xác định loại ký tự là dấu tách cột: (dấu Tabs, chấm phảy – Semicolon, dấu phảy – Commas…)
B6) (Tiếptheo)
Cách lưu trữ dữ liệu mới: In a New Table- Tạo bảng mới, hoặc In an Existing Table- Bổ sung dữ liệu vào bảng đã có.
B7) (Tiếp theo)
Sửa lại tên, kiểu giá trị và xác định các cột không cần giữ lại trong bảng đích: Do not Import Field – bỏ qua.
B8) (Tiếp theo)
Để Microsoft tự bổ sung thêm cột có tên là ID với kiểu giá trị là AutoNumber - tự động tăng 1 làm thuộc tính khóa chính (Let Access Add Primary Key), hoặc xác định một cột làm khoá chính (Choose My Own Primary Key) hoặc không chọn thuộc tính nào làm khóa (No Primary Key)
B9) (Tiếp theo)
Đặt lại tên cho bảng, rồi nhấn Finish để kết thúc.
(Tiếp theo)
(*) Ghi chú: Khi Import từ file *.txt hoặc *.xls, để đảm bảo việc chuyển đổi bảng mã tiếng Việt đúng đắn, cần chọn trang mã (Code Page) là Western European (Windows), thông qua nút chức năng bổ sung (Advanced).
(Tiếp theo)
Nếu việc Import thành công thì MSA sẽ có thông báo hoàn tất. Nếu việc Import không thành công thì có thông báo lỗi, và các dòng không Import được sẽ được lưu trong 1 bảng có tên với phần bổ sung là _ImportError. Lỗi sai thường gặp nhất là sai cách chuyển đổi dữ liệu sang dạng DateTime. MSA sử dụng cách biểu diễn ngày tháng của hệ điều hành Windows, do đó, nếu Windows dùng dạng mm/dd/yyyy và dữ liệu Import có dạng dd/mm/yyyy (ví dụï 25/01/2001) thì quá trình Import sẽ gây lỗi.
MSA thực hiện việc chuyển đổi dữ liệu khi Import từ file văn bản như sau:
Dãy chữ Text(255). Số nguyên Long Integer.
Số thực Double. xx/yy/zz DateTime.
Do đó, sau khi Import xong (thì) cần phải thực hiện chức năng Design để đặc tả lại cấu trúc của bảng.
§2.4. Sử dụng chung tài nguyên với CSDL khác
Nguồn dữ liệu để dùng chung (Link) phải là các dữ liệu có cấu trúc. Đó phải là (các) file hoặc bảng của (các) CSDL khác. Nguồn này có thể là từ Access, Dbase, Foxpro hoặc ODBC. File Excel không phải là một nguồn thích hợp cho việc dùng chung trong môi trường Access
Thao tác: B0), B1),B2) (Nếu chưa làm)
B3) Chọn NewLink Table
B4) Chọn các bảng dữ liệu để dùng chung
OK để hòan tất.
PLACEHOLDER
§2.5 Trích xuất dữ liệu ra file hoặc bảng ngoài
Thao tác: B0), B1, B2) ( nếu chưa làm)
B3) Chọn bảng cần trích xuất
B4) Nhắp chuột phải, chọn Export (hoặc =FileExport)
B4) Xác định lọai đích tại mục Files of Type; Thư mục lưu trữ tại Save In, và tên file tại File Name. SAVE để trích dữ liệu (như trong hình kế sau):
Nếu lọai dữ liệu đích là một bảng của file CSDL Access thì cho biết tên bảng đích và đồng thời xác định cách sao chép:
Dữ liệu và cấu trúc (Definition and Data): dũ liệu cùng cấu trúc bảng
Hoặc chỉ sao chép cấu trúc: (Definition Only).
OK để hòan tất.
(Hình trang sau:)
Export Data (Tiếp theo)
Chọn bảng. Nhắp chuột phải, chọn chức năng Export, (hoặc fileExport), màn hình xuất hiện như sau:
Export Data (Tiếp theo)
Chọn mục Export), màn hình xuất hiện như sau:
Export Data (Tiếp theo)
Chọn mục Export), màn hình xuất hiện như sau:
(Tiếp theo)
- Nếu Export trích ra bảng tính Excel thì chọn
(Tiếp theo)
Nếu Export trích ra bảng của một file văn bản thì :
chọn lọai dữ liệu nguồn là “Text file” tại mục “Save of Type” Next -> B5 , Chọn cách lưu trữ file Text là Delimited
CHƯƠNG III. TRUY VẤN CSDL (Queries)
NỘI DUNG:
§3.1. Truy vấn để tìm kiếm thông tin
1. Câu lệnh truy vấn đơn
2. Câu hỏi có câu hỏi con (SubQuery)
§3.2. Truy vấn để sửa đổi dữ liệu (Update)
§3.3. Truy vấn tổng hợp dữ liệu (Cross-Tab)
§3.4. Các lệnh truy vấn khác
1. Tạo/sửa cấu trúc bảng
2. Thiết lập ràng buộc toàn vẹn
§3.1. Truy vấn để tìm kiếm thông tin
Có 2 cách tạo 1 Query trong MSA: Câu lệnh SQL hoặc bằng công cụ Wizard kéo-thả (Drag-Drop) trên lưới (Grid). Có thể chuyển đổi qua lại giữa 2 cách này.
Cú pháp câu lệnh truy vấn (đã học):
SELECT [DISTINCT] [TOP n [PERCENT]]
[AS ], [AS ],…
FROM [[AS]],[[AS]], …
[WHERE <điều kiện chọn bản ghi để xử lý>]
[GROUP BY , … ]
[HAVING <điều kiện chọn kết quả cuối cùng>]
[ORDER BY[ASC/DESC], … ];
Dấu chấm phảy cuối câu là tùy chọn. Chữ hoa hay chữ thường là như nhau.
(Tiếp theo)
(*) DISTINCT : Chỉ giữ lại những dòng khác nhau.
(*) Cụm từ TOP n [PERCENT] luôn luôn phải được đi kèm với mệnh đề ORDER BY.
- TOP n : n dòng đầu tiên và những dòng có giá trị sắp xếp như dòng thứ n.
- TOP n PERCENT : n% (lấy cận trên) số dòng kết quả tìm được. Ví dụ, nếu n% = 1.2 thì lấy cận trên bằng 2.
(*) (i=1..n) có thể là tên bảng dữ liệu vật lý, Query hoặc phép kết 2 quan hệ theo cú pháp:
ON <điều kiện kết>
::= INNER JOIN / LEFT JOIN / RIGHT JOIN / OUTER JOIN.
(*) Nếu sau FROM là danh sách các bảng thì phải thể hiện mối liên hệ giữa các bảng đó trong mệnh đề WHERE.
(Tiếp theo)
(*) Ngoại trừ các biểu thức có chứa các hàm tích hợp các biểu thức còn lại sau SELECT đều phải có mặt trong mệnh đề GROUP BY.
(Tiếp theo)
Thao tác: B0), B1) (nếu chưa làm)
B2) Chọn đối tượng Queries (nếu chưa làm)
B3) Xác định nguồn dữ liệu cho Query (bảng hoặc query) bằng nút Add, và kết thúc bằng nút Close
B4) Lần lượt kéo-thả các Field từ các bảng vào lưới (GRID)
Thi hành câu lệnh bởi nút có hình dấu chấm than ! (Run)
Chuyển đổi sang câu lệnh SQL thông qua nút Design ở góc trái trên của của sổ thiết kế Query.
(Tiếp theo)
2. Câu hỏi có câu hỏi con (SubQuery)
Định nghĩa: Câu hỏi con là một câu hỏi mà kết quả của nó được dùng làm toán hạng của một phép so sánh trong biểu thức điều kiện của câu hỏi khác. Câu hỏi con phải được đặt trong cặp dấu ngoặc tròn.
(*) MSA chỉ cho phép 1 biểu thức sau SELECT trong câu truy vấn con. Do đó, nếu có nhiều biểu thức thì phải ghép chúng lại thành một thông qua phép nối ghép &.
(*) Các ví dụ minh họa:
Câu 1: Cho tên và danh sách nhân viên của từng phòng/ban
SELECT DeptName, E.*
FROM Department D, Employee E
WHERE D.Deptno=E.Deptno;
(Tiếp theo)
Câu 2: “Cho tên phòng và d.sách nhân viên có lương hơn 4000”
SELECT DeptName, E.*
FROM Department D, Employee E
WHERE D.Deptno=E.Deptno AND Salary > 4000;
Câu 3: “Cho biết người có lương cao nhất trong công ty”
SELECT * FROM Employee
WHERE Salary = (SELECT MAX(Salary) FROM Employee);
Câu 4: “Cho biết tên phòng của người lương cao nhất công ty”.
SELECT DeptName FROM Department WHERE Deptno IN
(SELECT * FROM Employee
WHERE Salary=(SELECT MAX(Salary) FROM Employee));
Câu 5: “Cho tên phòng có lương trung bình lớn hơn lương trung bình của các nhân viên trong phòng Smith”.
(Tiếp theo)
Tìm mã phòng của Smith (x)
Tìm lương trung bình của các NV có mã phòng=(x) (y)
Tính lương trung bình của các phòng, kết quả chỉ giữ lại những phòng nào có lương trung bình lớn hơn (y).
SELECT DeptName FROM Department D, Employee E
WHERE D.Deptno=E.Deptno
GROUP BY D.Deptno, DeptName
HAVING AVG(Salary) >
( SELECT AVG(Salary) FROM Employee
WHERE Deptno=
( SELECT Deptno FROM Employee
WHERE Name=‘Smith’
)
);
§3.2. Truy vấn để sửa đổi dữ liệu
1. Query tạo bảng (Make Table Query)
SELECT [DISTINCT] [TOP n [PERCENT]]
[AS ], [AS ],…
INTO
FROM [[AS]],[[AS]], …
[WHERE <điều kiện chọn bản ghi để xử lý>]
[GROUP BY , … ]
[HAVING <điều kiện chọn kết quả cuối cùng>]
[ORDER BY[ASC/DESC], … ];
Ví dụ: Tạo bảng Manager chứa danh sách các lãnh đạo phòng
SELECT * INTO Manager FROM Employee
WHERE Job=“Mngr”;
2. Query bổ sung thêm dữ liệu.
a. Thêm một bản ghi từ dữ liệu đã cho:
(Tiếp theo)
INSERT INTO [()]
VALUES();
Ví dụ: “Thêm NV mới tên là “Tony” MÃ SỐ 300 vào phòng số 40, làm nhân viên bán hàng với mức lương là 2,500$”
INSERT INTO Employee
VALUES (300, “Tony”, “Slsm”, 2500, NULL, 40, “M”);
Hoặc:
INSERT INTO Employee (Name, Empno, Job, Salary, Deptno)
VALUES (“Tony”, 300, “Slsm”, 2500, 40);
b. Bổ sung dữ liệu từ CSDL.
INSERT INTO [()]
;
(Tiếp theo)
Ví dụ: “Thêm vào bảng Manager các nhân viên có lương >4000”
INSERT INTO Manager
SELECT * FROM Employee
WHERE Salary>4000 AND Empno NOT IN
(SELECT Empno FROM Manager);
3. Query sửa dữ liệu:
UPDATE
SET = , =, …
[WHERE <điều kiện cập nhật>];
Ví dụ: a. Tăng lương 10% cho các nhân viên phụ trách phòng.
UPDATE Employee SET Salary= Salary*1.1
WHERE Job=‘Mngr’;
b. Tiền lương tối thiểu phải bằng mức thấp nhất của công việc.
UPDATE Employee e INNER JOJN Jobs v ON v.Job=e.Job
SET Salary= IIF(Salary < Minsalry, MinSalry, Salary);
(Tiếp theo)
4. Query xóa dữ liệu:
DELETE [] FROM
[WHERE <điều kiện xóa>];
(*) Nếu nguồn là query hoặc phép kết thì phải có thành phần để cho biết xóa bộ giá trị của bảng nào.
Ví dụ: a. “Xóa các nhân viên phụ trách các phòng ban”
DELETE FROM Employee
WHERE Job=‘Mngr’;
b. “Xóa các nhân viên có lương nhỏ hơn lương tối thiểu của c/v”
DELETE e.* FROM Jobs v INNER JOIN Employee e
ON (e.job=v.Job) WHERE Salary < Minsalry;
§3.3. Truy vấn tổng hợp dữ liệu (Cross-Tab)
Cú pháp:
TRANSFORM
SELECT
FROM
[WHERE <điều kiện chọn bản ghi để xử lý>]
GROUP BY
PIVOT [IN ()]
Diễn giải: …
Ví dụ: “Cho tên, tổng số n/v chia theo giới tính của các phòng”
Transform Count(*)
Select Deptname, Count(*) as Total
From Department d Inner Join Employee on d.deptno=e.deptno
Group By DeptName Pivot Sex IN (‘F’, ‘M’)
(Tiếp theo)
§3.4. Các câu lệnh truy vấn khác
1. Tạo cấu trúc bảng:
Create Table (
, , …, ,
[ConstraintPrimary Key ()]
[Constraint Foreign Key ()
References ()]
);
Một mô tả cột có dạng:
[()] [Not NULL] [Primary Key][Foreign Key References ()]
Ví dụ: a.Create Table ABC (aaa text(10) Primary Key,
bbb long, ccc DateTime, ddd Memo, eee Double);
(Tiếp theo)
b. Create Table BBC (aaa text(10), bbb long, Constraint PK Primary Key (aaa,bbb), Constraint FK Foreign Key (aaa) References ABC (aaa));
2. Sửa đổi cấu trúc bảng - Thiết lập khóa chính, RBTV:
Alter Table [Add Column <đặc tả cột>],
[Add Constraint Primary Key ()],
[Add Constraint Foreign Key () References ()];
Ví dụ: Alter Table BBC Add Column ccc DateTime;
(Tiếp theo)
3. Tạo chỉ mục:
CREATE [UNIQUE] INDEX ON ();
Ví dụ:
4. Các câu lệnh hủy bỏ:
Hủy (xóa) bỏ bảng: DROP Table;
Ví dụ:
Hủy bỏ chỉ mục: DROP INDEX ON ;
Ví dụ:
Hủy bỏ RBTV: DROP Constraint ON ;
Ví dụ:
CHƯƠNG IV. THIẾT KẾ GIAO DIỆN (Forms)
NỘI DUNG:
§4.1. Một số khái niệm – Cấu trúc tổng quát
1. Cấu trúc tổng quát của một Form
2. Các loại Form trong Microsoft Access
§4.2. Tạo Form bằng công cụ hỗ trợ (Wizard)
1. Tạo Form nhanh dạng Columnar, DataSheet
2. Tạo Form có SubForm
§4.3. Các thao tác sửa Form – Các hàm tích hợp
§4.4. Tự thiết kế Form (Form Design)
§4.1. Một số khái niệm – Cấu trúc tổng quát
Cấu trúc tổng quát của một Form
Một Form có thể có 5 phần:-Tiêu đề mẫu nhập (Form Header), phần này chỉ xuất hiện một lần đầu tiên trên trang đầu tiên.
(Tiếp theo)
- Phần tiêu đề trang (Page Header) sẽ xuất hiện giống nhau ở mỗi trang của Form nhập dữ liệu.
- Phần chi tiết (Detail) để trình bày nội dung một bản ghi.
Phần cuối trang (Page Footer) sẽ xuất hiện giống nhau ở mỗi trang của Form nhập dữ liệu. Nó thường được dùng làm phần hướng dẫn sử dụng giao diện, các nút chức năng tiện ích.
Phần cuối Form (Form Footer) chỉ xuất hiện ở trang cuối cùng của một Form có nhiều trang.
Thông thường, một Form chỉ có một trang nên các phần Form Header và Form Footer ít được sử dụng, hoặc dùng thay cho tiêu đề trang.
Các thành phần nằm trên các phần của Form được gọi chung là các đối tượng (Objects).
(Tiếp theo)
Cửa sổ chứa Form có thêm các thành phần khác (còn gọi là tính chất của Form: Tiêu đề cửa sổ Form (Caption); Các nút điều khiển cửa sổ (Control Box: Min, Max, Close); Các thanh cuốn Form theo chiều ngang và chiều dọc (Horizontal and Vertical Scroll Bar); Thanh chọn bản ghi hiện hành (Record Selector); Nguồn dữ liệu của Form (Record Source); Các nút di chuyển bản ghi (Navigation Buttons).
2. Các loại Form trong Microsoft Access
MSA có các loại Form sau:
Dạng bảng (DataSheet)
Các thông tin của 1 bản ghi hiển thị trên một hay nhiều dòng khác nhau (Columnar).
Form nhập với các Form con (Form with SubForm)
(Tiếp theo)
Với Form nhập dạng columnar có thể hiển thị dạng đơn (Single) hoặc nhiều Form như thế xếp liên tiếp nhau trên màn hình (Continuous).
Dạng Single Form
Dạng Continuous Form
(Tiếp theo)
Các đặc tính sau đây của Form là rất quan trọng:
Default View:
Scroll Bars:
Record Selector:
Navigation Button:
Dividing Line:
Auto Center:
Auto Resize:
Min, Max buttons:
Close Button:
Record Source:
On Form Load:
On Form Activate:
§4.2. Tạo Form bằng công cụ hỗ trợ (Wizard)
MSA có công cụ hỗ trợ để hướng dẫn từng bước trong việc tạo một Form nhanh chóng, gọi là Wizard.
1. Tạo Form nhanh dạng Columnar, DataSheet, Tabular
Thao tác: B0), B1) (nếu chưa làm)
B2) Chọn đối tượng Forms (nếu chưa làm).
B3) - Chọn NewAutoForm (Datasheet hoặc Tabular hoặc Columnar)
- Xác định nguồn dữ liệu cho Form tại Combo Box.
- Nhấn OK để hoàn tất.
Tên Form là tên bảng / query dữ liệu nguồn.
2. Tạo Form có SubForm
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) NewForm Wizard
B4) Lần lượt chọn các field từ các bảng cần hiển thị / nhập
B5) Chọn nguồn dữ liệu chính, dữ liệu tham khảo.
B6) Chọn cách hiển thị Form con
B7) Chọn phong cách (Style) cho Form: (nên chọn Standard)
B8) Đặt tên cho Form và SubForm
B9) Finish để kết thúc
(Next: đi tiếp bước sau. Back: quay lại bước trước).
Ví dụ: Tạo Form nhập dữ liệu cho bài tóan quản lý vũ khí như trong bài tập đã cho)
§4.3. Các thao tác sửa Form – Các hàm tích hợp
Xác định kích thước Form
Chọn (các) đối tượng
Thay đổi thuộc tính (Font, size, style, color, effect...)
Di chuyển các đối tượng đã chọn.
Thay đổi kích thước.
Gióng thẳng hàng: FormatAlign(left, right, top, bottom)…
Chia đều khoảng cách (hàng ngang / cột dọc).
Bổ sung thêm đối tượng mới (Tools Box)
Các hàm tích hợp Dxxx (, , )
(Các hàm DLookUp , DSum, DCount, DMin, DMax, DAvg….)
: là biểu thức cần tính.
: là nguồn dữ liệu (bảng/query/join)
: là điều kiện chọn bản ghi để xử lý .
§4.4. Tự thiết kế Form (Form Design)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) New Design View. OK
B4) Xác định kích thước Form (chiều cao và chiều rộng)
B5) Xác định nguồn dữ liệu cho Form tại Record Source.
B6) Lần lượt kéo-thả các field vào các vị trí thích hợp của Form.
B7) Bổ sung các đối tượng khác vào Form
B9) Đặt các thuộc tính cần thiết cho Form và các đối tượng khác trên Form. Trình bày Form sao cho cân đối.
B10) Đóng cửa sổ thiết kế và đặt tên cho Form.
* Nên tạo query để lấy dữ liệu nguồn cho Form)
CHƯƠNG V. THIẾT KẾ MẪU BÁO CÁO (Reports)
NỘI DUNG:
§5.1. Một số khái niệm
1. Cấu trúc tổng quát của 1 báo cáo (Report)
2. Các loại báo cáo trong Microsoft Access
§5.2. Tạo Report bằng công cụ hỗ trợ (Wizard)
1. Tạo Report nhanh (Auto Report)
2. Tạo Report có dòng tổng nhóm (SubTotals)
3. Tạo Report dạng phiếu (Label)
4. Tạo Report dạng biểu đồ (Chart)
§5.3. Tự thiết kế Report (Report Design)
§5.1. Một số khái niệm
Cấu trúc tổng quát của 1 báo cáo (Report)
Tương tự như Form, 1 báo cáo cũng có thể có 5 phần:
- Report Header: tiêu đề báo cáo, nó chỉ được in trên trang đầu tiên của báo cáo;
- Page Header: tiêu đề trang báo cáo được in giống nhau trên mỗi trang in. Thông thường là các tiêu đề cột – hoặc dòng chứa số thứ tự cột của biểu;
- Details: Phần để in nội dung của mỗi bản ghi dữ liệu nguồn;
- Page Footer: Phần cuối trang báo cáo. Thông thường dùng để in các chú thích trong trang cũng như đánh số thứ tự trang in.
- Report Footer: Tiêu đề cuối báo cáo. Thông thường dùng để in các thông tin xác nhận trách nhiệm và sở hữu số liệu của đơn vị như: ngày lập báo cáo, người lập báo cáo, người duyệt báo cáo (ký và ghi họ tên), và thủ trưởng đơn vị ký tên, đóng dấu.
(Tiếp theo)
2. Các loại báo cáo trong Microsoft Access.
Báo cáo dạng bảng Datasheet, mỗi bản ghi in trên 1 dòng.
Báo cáo dạng cột Columnar. Mỗi field in trên 1 dòng. Hai dạng này phục vụ cho các báo cáo nhanh tức thời, cần thông tin và số liệu hơn mặt pháp quy.
Báo cáo dạng tổng hợp có thể có các dòng tổng con. Đây là dạng thông dụng nhất trong các cơ quan, đơn vị.
Báo cáo dạng phiếu (Label). Mỗi bản ghi dữ liệu nguồn được in trên một phần của trang giấy in.
Báo cáo dạng biểu đồ (Chart) để phản ánh sự biến thiên của một dãy số (dạng line), hoặc mang tính so sánh (Column / Bar) hay tỷ trọng của một đại lượng trong tổng thể (Pie), ...
§5.2. Tạo Report bằng công cụ hỗ trợ(Wizard)
1. Tạo Report nhanh (Auto Report)
Thao tác:
B0), B1) (nếu chưa làm)
B2) Chọn đối tượng Report (nếu chưa làm)
B3) - New AutoReport: Tabular/Columnar
- Xác định bảng dữ liệu nguồn cho báo cáo.
- Nhấn OK để hoàn tất
B4) Đóng cửa sổ kết quả và đặt tên lại cho báo cáo
Tên mặc định của báo cáo là tên bảng dữ liệu nguồn.
2. Tạo Report có dòng tổng nhóm (SubTotals)
B0), B1), B2) (nếu chưa làm)
B3) New Report wizard. OK để đi tới bước tiếp theo
B4) Lần lượt chọn các fields từ các bảng cần in trên Report.
B5) Xác định bảng dữ liệu nào là chính.
(Tiếp theo)
B6) Bổ sung các cách phân nhóm các bản ghi. Nếu có nhóm thì có thể nhấn Grouping Options để thiết lập cách phân nhóm (Grouping Intervals). Nếu cột phân nhóm có kiểu văn bản thì có thể nhóm theo 1, 2, hay nhiều ký tự đầu tiên; nếu có kiểu số thì có thể nhóm theo 1, 5, 10, 50, 100,... hoặc kiểu DateTime thì nhóm theo tuần, tháng, quý, năm, v.v...
B7) Xác định việc sắp xếp thứ tự in theo cột nào.
(Tiếp theo)
B8) - Chọn hình thức in báo cáo (Report Layout). Có thể chọn Layout là Stepped (mỗi cấp phân nhóm thì lùi vào phía phải).
- Chọn hướng in (Orientation) là Portrait hoặc LandScape.
B9) Chọn kiểu in các chữ và nhóm trong báo cáo (Formal)
B10) Đặt tên cho Report, đồng thời là tiêu đề báo cáo.
Finish để kết thúc.
Ví dụ: Bài toán quản lý vũ khí, Công nợ, Kế toán, Thương binh
3. Tạo Report dạng phiếu (Label)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) - New Label Wizard.
- Xác định nguồn dữ liệu
- OK để đi tiếp bước sau.
B4) Xác định kích thước Label từ một số mẫu có saün.
(Tiếp theo)
Nếu muốn tạo kích thước mẫu mới thông qua chức năng Customize Edit. Và thiết lập các thông số lề trái, phải, trên, dưới, khoảng cách so với các Label lân cận, ...
B5)Xác định Font, kích thước và kiểu chữ trong Label.
B6) Xác định các field có saün cần in trên Label.
B7) Xác định thứ tự in các bản ghi (Sort Order...)
B8) Đặt tên cho Label vàFinish để kết thúc.
4. Tạo Report dạng biểu đồ (Chart)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) - New Chart Wizard.
- Xác định nguồn dữ liệu
- OK để đi tiếp bước sau.
(Tiếp theo)
B4) Xác định các field chứa dữ liệu để vẽ biểu đồ.
B5) Xác định loại biểu đồ (Line, Bar, Pie, Area)
B6) Xác định giá trị trục x, y bằng cách kéo-thả vào Chart
B7) Đặt tên cho biểu đồ và Finish để hoàn tất.
§5.3. Tự thiết kế Report (Report Design)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) New Design View.
B4) Xác định khổ giấy (Paper size), lề (Margins), hướng in (Orientation) thông qua File Page Setup
B5) Xác định nguồn dữ liệu cho Report thông qua thuộc tính Record Source của đối tượng Report.
B6) Bổ sung các thành phần phân nhóm để lấy tổng con (Sub Totals) View Sorting and Grouping
B7) Lần lượt kéo-thả các thuộc tính cần thiết vào Report
B8) Bổ sung các Control cần thiết khác
B9) Đặt thuộc tính cho các đối tượng trên Report. Trình bày Report sao cho cân đối.
B10) Đóng cửa sổ thiết kế và đặt tên cho Report.
CHƯƠNG VI. LỆNH VĨ MÔ (Macros)
NỘI DUNG:
§6.1. Khái niệm
§6.2. Hệ thống Macros của Microsoft
1. Nhóm hành động thao tác với Form/Report
2. Nhóm hành động
3. Nhóm hành động
4. Nhóm hành động
§6.3. Một số hành động (Action) thông dụng
Ứng dụng trong việc tạo Menu hệ thống
CHƯƠNG VII. LẬP TRÌNH VỚI ACCESS BASIC
NỘI DUNG:
§7.1. Khái niệm
§7.2. Các kiểu dữ liệu của Microsoft Access
1. Kiểu vô hướng (Scalar)
2. Kiểu mảng (Array)
3. Kiểu dữ liệu tự định nghĩa
4. Kiểu đối tượng truy nhập dữ liệu (D.A.O)
§7.3. Hệ thống lệnh các câu lệnh của Access
1. Khai báo biến (Declaration)
2. Rẽ nhánh chương trình (If, Select Case)
3. Các lệnh lặp (For, Do, While)
§7.4. Thủ tục và Hàm
§7.5. Xây dựng Ứng dụng bằng Access
§7. 2. Các kiểu dữ liệu của Microsoft Access
1. Kiểu vô hướng (Scalar)
2. Kiểu mảng (Array)
3. Kiểu dữ liệu tự định nghĩa (User-Defined)
4. Kiểu đối tượng truy nhập dữ liệu (D.A.O)
§7.3. Hệ thống lệnh các câu lệnh của Access
Khai báo biến (Declaration)
Cú pháp:
[Global/Private/Dim][()] [As ],
[()] [As ], ...
Ngữ nghĩa:
Từ khóa Global thể hiện việc khai báo biến là tổng thể, tức là dùng chung được cho toàn ứng dụng Access. Điều dễ hiểu là các biến thuộc loại này phải được khai báo trong các modules.
Từ khóa Private /Dim thể hiện việc khai báo biến là cục bộ, tức là chỉ có nghĩa trong phạm vi nó được khai báo, ngoài vùng khai báo biến không còn giá trị. Có thể là cục bộ trong hàm, cục bộ trong module chương trình của một Form/Report, hoặc trong modules các hàm tổng thể.
(Tiếp theo)
là một định danh (Identifier), là một dãy ký tự chữ cái và/hoặc chữ số, bắt đầu bằng chữ cái. Có thể có thêm 1 ký tự theo sau, thể hiện kiểu dữ liệu: % - số nguyên Integer, $ - chuỗi, ! – số thực single...
Nếu không khai báo tường minh kiểu cho biến thì biến có kiểu mặc định là biến thể (Variant).
Việc khai báo biến trong Visual Basic, nói chung, là không bắt buộc. Tuy nhiên, nên khai báo biến để dễ kiểm soát chương trình, và tận dụng được khả năng Visual của Basic.
Ví dụ: Dim i, j, k As Integer
Thì chỉ có k là thuộc kiểu số nguyên 2 bytes, còn i và j đều thuộc kiểu Variant.
Tên biến viết hoa hay thường là như nhau
(Tiếp theo)
2. Gán giá trị cho biến (Set)
Cú pháp:
[Set] =
Giá trị của biểu thức được tính toán và gán cho. Nếu kiểu giá trị của biểu thức là vô hướng (Scalar) và kiểu của biến cũng là vô hướng thì máy tự chuyển đổi kiểu cho phù hợp với kiểu lưu trữ của biến.
Nếu có kiểu đối tượng (Object) thì câu lệnh gán phải có từ khóa Set.
Ví dụ:
Dim MyDB As DAO.Database, MyTab As DAO.Tabledef
Dim nTabs As Integer ‘ Số lượng table trong CSDL.
Set MyDB = DBEngine.Workspaces(0).Databases(0)
Set MyTab = MyDB.Tabledefs(0)
nTabs = MyDB.Tabledefs.Count
(Tiếp theo)
3. Lệnh rẽ nhánh chương trình (If, Select Case)
a) Lệnh rẽ nhánh (IF).
Cú pháp của lệnh được đơn giản hóa như sau:
If <điều kiện> Then
[Else
]
End If
(*) Nếu sau Then chỉ có 1 câu lệnh thì có thể viết lệnh trên cùng 1 dòng với Then và không cần End If
Ví duï: If n <= 0 Then Exit Function
If Delta >= 0 then
x1 = (-b + Sqr(Delta)) / (2* a): x2 = (-b - sqr(Delta)) / (2* a)
Else : debug.print “Vô nghiệm”
End if
(Tiếp theo)
b) Lệnh chọn 1 trong nhiều khả năng (SELECT CASE).
Cú pháp:
Select Case ()
Case
Case
...
Case
[ Case Else
< các câu lệnh khác> ]
End Select
(Tiếp theo)
4. Các lệnh lặp (For, Do, While)
a. Lặp hữu hạn từ 0 đến nhiều lần For:
For = To [Step n]
Next []
Ngữ nghĩa: Nếu không có [Step n] thì mặc định là Step 1.
Ban đầu nhận . Chừng nào mà giá trị của còn nhỏ hơn hoặc bằng (với n>0) hay lớn hơn hoặc bằng (với n<0) thì còn được thực hiện; sau mỗi lần thực hiện thì giá trị của sẽ được cộng thêm với gia số n.
Ví dụ: Tính giá trị của n giai thừa (n! = 1.2.3...n)
Dim f As Double, i As Integer
f = 1
(Tiếp theo)
For i = 1 To n
f = f * i
Next i
Trong số các câu lệnh sau For, có thể có các lệnh Exit For để kết thúc bất thường (kết thúc sớm) vòng lặp.
b. Lặp vô hạn lần Do:
Dạng b1):
Do [While / Until <điều kiện>]
Loop
Hoặc dạng b2):
Do
Loop [While / Until <điều kiện>]
(Tiếp theo)
Ngữ nghĩa: Chừng nào <điều kiện> còn thỏa mãn (với từ kh
NỘI DUNG
Chương I. Một số khái niệm cơ bản
Chương II. Các thao tác với bảng (Tables)
Chương III. Truy vấn thông tin (Queries)
Chương IV. Thiết kế giao diện (Forms)
Chương V. Thiết kế báo cáo (Reports)
Chương VI. Các lệnh vĩ mô (Macros)
Chương VII. Lập trình trong Access (Modules)
CHƯƠNG I. MỘT SỐ KHÁI NIỆM CƠ BẢN
NỘI DUNG:
§1.1. CSDL & hệ quản trị CSDL
1. Cơ sở dữ liệu
2. Hệ quản trị cơ sở dữ liệu
3. Công cụ quản trị CSDL Microsoft Access
§1.2. Mô hình dữ liệu quan heä
1. Thuộc tính
2. Khóa (Khóa chính, khóa ngoại)
3. Ràng buộc toàn vẹn
§1.1. CSDL & hệ quản trị CSDL
1. Cơ sở dữ liệu (CSDL – Database) là một hệ thống thông tin có cấu trúc, được lưu trữ trên các thiết bị mang tin từ tính (thường là đĩa từ), phục vụ việc khai thác thông tin đồng thời của nhiều người sử dụng với nhiều mục đích khác nhau.
Các đặc tính quan trọng cơ bản nhất của Cơ sở dữ liệu được in màu và gạch chân.
2. Hệ quản trị cơ sở dữ liệu (DataBase Management System – DBMS) là một hệ thống chương trình quản trị CSDL đồng thời là công cụ giao tiếp giữa người sử dụng (NSD) với hệ thống cơ sở dữ liệu. Một hệ quản trị CSDL phải có các cơ chế:
Đảm bảo tính chất đầy đủ, không trùng lặp và không dư thừa thông tin.
(tiếp theo)
Đảm bảo tính nhất quán, an toàn và toàn vẹn dữ liệu.
Bảo mật dữ liệu.
Giải quyết tranh chấp dữ liệu.
Đảm bảo tính độc lập giữa dữ liệu và chương trình.
Tự sao lưu (BackUp) và phục hồi (Restore) khi có sự cố.
Ngôn ngữ truy nhập CSDL, cho phép người sử dụng và các chương trình ứng dụng khai thác thông tin trong CSDL. Ngôn ngữ này được chia thành 4 lĩnh vực (hay phạm trù – Categoria):
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL), cho phép tạo các cấu trúc dữ liệu lưu trữ.
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML), cho phép cập nhật (thêm, xóa, sửa) dữ liệu.
Ngôn ngữ truy vấn dữ liệu (Strutured Query Language – SQL).
Ngôn ngữ kiểm soát dữ liệu (Data Control Language – DCL)
(tiếp theo)
3. Công cụ quản trị CSDL Microsoft Access.
Microsoft Access là một công cụ quản trị CSDL, cho phép xây dựng các ứng dụng CSDL theo mô hình dữ liệu quan hệ trên một môi trường gọn nhẹ, đơn giản, dễ thao tác, nhưng vẫn đảm bảo được các tính chất quan trọng đã nêu của một hệ quản trị CSDL. Mỗi ứng dụng CSDL trên môi trường Access là một file trên đĩa từ có phần mở rộng mặc định là .mdb, gồm 6 đối tượng: các bảng (Tables Relation – quan hệ theo lý thuyết CSDL quan hệ), Các câu truy vấn (Queries), Các giao diện nhập liệu (Forms), Các báo cáo (Reports), Các lệnh vĩ mô (Macros) và các Modules chương trình. Mỗi đối tượng đều có các chức năng: New – Tạo đối tượng mới, Design – Sửa lại đối tượng đã có, và Open – Mở (hoặc thực hiện) đối tượng đã chọn.
§1.2. Mô hình dữ liệu quan hệ
Thuộc tính (Attribute):
Thuộc tính là một tính chất của đối tượng cần được phản ảnh trong CSDL phục vụ cho việc khai thác thông tin về sau này.
Ví dụ: Về con người, các đặc tính sau đây cần được lưu trữ:
Họ tên, Giới tính, Ngày sinh…
Thuộc tính được đặc trưng bởi:
a. Tên gọi: Tên của thuộc tính là một dãy ký tự bất kỳ bắt đầu bằng ký tự khác khoảng trắng (space). Tuy nhiên, nên đặt tên thuộc tính bằng chữ cái Latin, và đặt tên một cách gợi nhớ. Nếu tên có chứa các ký tự đặc biệt thì khi sử dụng phải đặt nó trong cặp dấu ngoặc vuông [ ].
Ví duï: HoTen, GioiTinh, NgaySinh, +++, ---, ***, ///
Tuy nhiên, 4 tên gọi sau, khi sử dụng phải đặt trong ngoặc vuông: [+++], [---], [***], [///]
(tiếp theo)
b. Kiểu giá trị:
Mỗi công cụ quản trị CSDL có các kiểu dữ liệu khác nhau. Tuy nhiên đều có chung các kiểu dữ liệu cơ bản sau:
- Ký tự: (Text, String, Char, ..)
- Kiểu số: (Number, Decimal, Float, …)
Kiểu ngày tháng: (Date/Time) phải có đầy đủ cả ngày, tháng và năm.
Kiểu luận lý: (Logical, Boolean, YesNo, …)
Kiểu dữ liệu đa phương tiện: (OLE) bao gồm hình ảnh (Bitmap), âm thanh (Audio) hoặc/và phim (Movie)
c. Miền giá trị:
Miền giá trị (Domain) đảm bảo tính đúng đắn của dữ liệu. Bởi nếu mới chỉ xác định có kiểu dữ liệu, ví dụ, thuộc tính chiều cao CCVC là số nguyên, thì có thể nhập giá trị 50cm! Điều này là không thể chấp nhận được.
(tiếp theo)
2. Khóa (Key - Khóa chính, khóa ngoại, khoá lồng)
Định nghĩa 1: Là tổ hợp các thuộc tính mà giá trị của chúng xác định duy nhất một bộ giá trị. Theo định nghĩa này, nếu thêm (các) thuộc tính vào một khóa thì tổ hợp mới cũng sẽ là khóa. Định nghĩa này chưa chặt chẽ.
Định nghĩa 2: Cho R(U) là quan hệ định nghĩa trên tập thuộc tính U, và K U. K là khóa của R nếu và chỉ nếu:
K xác định duy nhất một bộ giá trị. (thỏa đ/n 1)
K là tập con nhỏ nhất.
Định nghĩa 3: Một quan hệ có thể có nhiều khóa theo đ/n 2. Các khóa đó được gọi là khóa chỉ định (Candidate Key).
Định nghĩa 4: Một khóa chỉ định tiện lợi nhất cho việc sử dụng được chọn làm khóa chính (Primary Key).
Quy ước: Khóa chính trong quan hệ (thì) được gạch chân.
Không được phép sửa đổi giá trị của thuộc tính khóa chính.
(tiếp theo)
Định nghĩa 5: R(U), S(V) là 2 quan hệ và K1 U là khóa của R. Xét K2 V. Nếu:
K1 và K2 có cùng số lượng và ý nghĩa của các thuộc tính.
rTR thì tồn tại từ 0 đến nhiều sTS s/c r.K1=s.K2; ngược lại, sTS ! rTR sao cho r.K1=s.K2
Khi đó, K2 của S được gọi là khoá ngoại (Foreign Key) khi tham chiếu tới quan hệ R.
Định nghĩa 6: R(U), S(V) là các quan hệ, K1 U là khóa của R, K2 V là khóa ngoại khi tham chiếu R, và K3 K2. Nếu K3 là các thuộc tính khóa của S thì K3 được gọi là khóa lồng (Nested Key).
3. Ràng buộc toàn vẹn(Integrity Constraint/Rule)
Đó là 1 quy tắc bất biến mà các thao tác trên CSDL phải tuân theo nhằm đảm bảo tính đúng đắn, nhất quán, an toàn và toàn vẹn dữ liệu.
CHƯƠNG II. CÁC THAO TÁC VỚI BẢNG
NỘI DUNG:
§2.1. Tạo lập cấu trúc bảng
1. Các tính chất (Properties) của cột
2. Thao tác tạo cấu trúc bảng.
3. Thiết lập khóa chính cho bảng
§2.2. Thiết lập mối liên hệ giữa các bảng
§2.3. Tạo bảng từ dữ liệu đã có (Import)
§2.4. Sử dụng chung tài nguyên với các CSDL khác
§2.5. Trích xuất dữ liệu ra file hoặc bảng ngoài
§2.1. Tạo lập cấu trúc bảng
. Các tính chất (Properties) của cột
Microsoft Access có các kiểu dữ liệu sau:
Kiểu văn bản với chiều dài cố định (Text). Trong kiểu này phải xác định độ rộng của cột – tính theo byte. Độ rộng tối đa của cột là 255 bytes. Giá trị luôn luôn được điền thêm khoảng trắng ở cuối để cho đủ số lượng đã khai báo.
Kiểu số (Number). Có 5 loại kiểu số theo kích thước lưu trữ. Số nguyên 1 byte (Byte) có giá trị từ 0 đến 255. Số nguyên 2 bytes (Integer) có giá trị từ –32768 đến +32767. Số nguyên 4 bytes (Long) có giá trị từ khoảng -2,1 tỷ đến +2,1 tỷ. Số thực độc hính xác đơn (Single) chiếm 4 bytes, có giá trị đảm bảo chỉ có 7 chữ số đầu là có nghĩa đúng đắn. Số thực độ chính xác gấp đôi (Double) đảm bảo 15 chữ số có ý nghĩa - đúng.
(tiếp theo)
Kiểu luận lý Yes/No (hoặc True/False hoặc On/Off).
Kiểu văn bản có chiều dài thay đổi (Memo). Giá trị có thể có kích thước tối đa 64K bytes.
Kiểu tiền tệ (Currency) với bản chất là kiểu số, nhưng khi hiển thị thì có ký hiệu tiền tệ $ ở phía trước.
Kiểu Ngày tháng (DateTime). Giá rị kiểu này phải có đầy đủ cả ngày, tháng và năm.
Kiểu đánh số tăng dần một cách tự động (AutoNumber) là số nguyên 4 bytes, tự động tăng 1 mỗi khi một bản ghi mới được bổ sung vào bảng.
Kiểu dữ liệu đa phương tiện (Object Linked Embedded - OLE), có thể là một bảng tính Excel, file Word, hình ảnh (Bitmap), âm thanh (Audio) hoặc phim (Movie).
(tiếp theo)
Ngoài các tính chất cơ bản của cột mà một thuộc tính của quan hệ cần có là Tên (Name), Kiểu giá trị (Type) và Kích thước (Size), cột của bảng cần được đặc tả chi tiết thêm một số tính chất sau:
Tiêu đề cột (Caption) – hiển thị khi nhập dạng bảng
Quy cách hiển thị (Format) – đó là một dãy các ký tự thể hiện quy cách hiển thị giá trị của field trên màn hình nhập dữ liệu, trong đó:
Đối với kiểu số: Standard – có dấu tách hàng ngàn, hàng triệu. Các giá trị bằng tiền hay các số lớn thì nên chọn dạng format này. Số 0 để hiện số 0 vô nghĩa.
Đối với kiểu văn bản: dấu “>” để hiện chữ in hoa; “<“ để hiện chữ nhỏ.
Với ngày tháng: ShortDate, Medium và LongDate…
(tiếp theo)
- Với kiểu lôgic: hiển thị bằng chữ (text) YesNo, TrueFalse, OnOff hay bằng Check box .
Quy cách nhập dữ liệu (Input Mask): Là một dãy ký tự có ý nghĩa như sau:
0 - Tại vị trí đó phải nhập một chữ số (bắt buộc).
9 - Nhập 1 chữ số (không bắt buộc).
# - 1 chữ số (hoặc dấu +/-) bất kỳ (không bắt buộc).
? - Một chữ cái bất kỳ (không bắt buộc)
a - Nhập 1 chữ cái/chữ số bất kỳ (không bắt buộc)
A - Nhập 1 chữ cái/chữ số (bắt buộc).
> - Đổi các chữ cái sau thành chữ in hoa.
< - Đổi các chữ cái sau thành chữ nhỏ.
& - Một ký tự bất kỳ, bắt buộc nhập
C - Một ký tự bất kỳ, không bắt buộc nhập.
(tiếp theo)
Giá trị mặc định (Default Value)
Quy tắc kiểm tra tính đúng đắn của dữ liệu nhập (Validation Rule RBTV về miền giá trị). Quy tắc có dạng:
Ở đây
>, >=, <, <=, <>, IN, Between, Like.
Thông báo lỗi khi RBTV bị vi phạm (Validation Text)
Dữ liệu có bắt buộc phải được nhập không? (Required)
Allow Zero Length: Cho phép chuỗi có chiều dài bằng 0.
Cần được lập chỉ mục không (Indexed). Có 3 lựa chọn:
No – Không lập chỉ mục (mặc định)
Yes, No duplicates – lập chỉ mục nhưng không chứa gtrị lặp
Yes, Duplicates OK - lập chỉ mục cho cả giá trị lặp.
(tiếp theo)
. Thao tác tạo cấu trúc bảng.
Thao tác:
B0) Khởi động Microsoft Access (nếu chưa làm)
B1) Nếu chưa có CSDL thì tạo mới:
- Nếu mới khởi động MSA thì chọn Blank Microsoft Database OK.
Nếu đang trong MSA thì vào menu File chọn New OK.
Chọn thư mục lư trữ file CSDL tại mục Save In.
Đặt tên file CSDL tại mục File Name. Tên file CSDL mặc định là DB1, DB2, … Không cần đặt phần mở rộng cho file CSDL. Hãy sử dụng mặc định cho file CSDL là .mdb.
Màn hình tạo mới CSDL xuất hiện như trong hình sau:
Nếu đã có CSDL thì mở CSDL bởi mục FileOpen
(tiếp theo)
(tiếp theo)
B2) Chọn đối tượng Tables (nếu chưa làm)
B3) Chọn chức năng New (table). Có 5 khả năng tạo mới một bảng của CSDL:
1. Datasheet View : Có bảng để nhập dữ liệu luôn.
2. Design View: Tự thiết kế cấu trúc của bảng.
3. Table wizard: Tạo bảng từ các cấu trúc mẫu đã có sẵn.
4. Import Table: Tạo bảng từ dữ liệu cho sẵn.
5. Link Table: Tạo mối liên kết dữ liệu để dùng chung tài nguyên với các hệ CSDL khác.
B4) Lần lượt đặc tả chi tiết các cột của bảng (như hình sau).
B5) Thiết lập khóa chính cho bảng bằng cách:
- Nhấn + giữ phím Shift rồi bấm trỏ chuột vào thuộc tính khóa.
- Bấm trỏ chuột vào nút chức năng có hình chìa khóa ở trên.
B6) Đóng cửa sổ thiết kế và đặt tên cho bảng, rồi chọn OK
Màn hình đặc tả cấu trúc bảng (tiếp theo)
Chỉ dẫn (ToolsTips) ở dưới đáy màn hình mỗi khi con trỏ được đặt vào cột này
Tên cột
§2.2. Thiết lập mối liên hệ giữa các bảng
Thao tác: B0), B1) (nếu chưa làm)
B2) Vào Menu Tools, chọn chức năng Relationships. Màn hình xuất hiện như hình dưới đây:
(Tiếp theo)
B3) Chọn các bảng cần đưa vào Relationships bởi nút Add. Kết thúc chọn bởi nút Close. Màn hình như hình dưới đây:
(Tiếp theo)
B4) Kéo-Thả (Drag-drop) thuộc tính khóa chính vào thuộc tính khóa ngoại của bảng liên quan, rồi điều chỉnh mối quan hệ tương ứng giữa các thuộc tính khoá chính và khoá ngoại, như hình dưới đây:
(Tiếp theo)
Chọn kiểu liên kết thông qua tuỳ chọn (Join type). Ba loại liên kết tương ứng với 3 phép toán đại số quan hệ: Inner Join, Left Join, Right Join. Mặc định là Inner Join.
Bắt buộc kiểm tra ràng buộc toàn vẹn về khoá ngoại nếu đánh dấu vào mục Enforce Referential Integrity. Hai mục sau có thể được chọn:
Cascade Update Related Fields: Tự động cập nhật khóa ngoại
Cascade Delete Related Records: Tự động xóa lan truyền.
Chọn nút Create để tạo lập. Cancel để hủy bỏ.
B5) Đóng cửa sổ thiết kế và lưu lại các mối liên kết mới tạo.
** Lưu ý: Giữa 2 bảng chỉ thể hiện một mối liên hệ. Để thể hiện (các) mối liên hệ khác thì cần bổ sung lôgíc một trong 2 bảng đó vào lược đồ (Relationships). Tên của các bảng lôgíc này được ghép thêm số _1, _2… ở phía sau.
§2.3. Tạo bảng từ dữ liệu đã có (Import)
Nguồn dữ liệu để Import có thể là các Tables, Queries, Forms, Reports, Macros, Modules của file CSDL Microsoft Access, hoặc file Dbase, Foxpro, Excel, Text hoặc các bảng trong các CSDL được kết nối mở (Open DataBase Connectivity).
Thao tác: B0), B1), B2) (nếu chưa làm)
B3) Chọn chức năng NewImport Table
Chọn loại dữ liệu nguồn tại mục Files of Type
Xác định thư mục chứa các file dữ liệu thuộc loại trên tại mục Look In.
Xác định tên file (hoặc CSDL) dữ liệu nguồn tại mục: File Name.
Chọn chức năng Import.
Màn hình chọn file dữ liệu nguồn như trong hình cho trong trang sau.
(*) Nếu nguồn dữ liệu là file CSDL của Access thì chỉ cần chọn các Tables, Queries, Forms, Reports,Macros hay Modules rồi OK. Nếu là bảng hoặc file CSDL thì đánh dấu chọn rồi OK để hoàn tất.
(Tiếp theo)
Màn hình chọn dữ liệu nguồn để tạo bảng trong Microsoft Access.
(Tiếp theo)
Nếu nguồn dữ liệu là file CSDL Microsoft Access thì màn hình chọn đối tượng để Import có dạng:
B4)(Tiếptheo)
(*) Nếu nguồn dữ liệu là file văn bản (*.txt, *.cvs, *.tab hoặc *.asc) thì cần xác định quy cách lưu trữ của file là “Delimited” – Có ký tự làm dấu tách giữa các giá trị; hoặc “Fixed width” – nếu cột có độ rộng cố định.
B5) (Tiếp theo)
(*) Nếu nguồn dữ liệu là file văn bản (*.txt) hoặc Excel (*.xsl) thì cần chỉ rõ dòng đầu tiên có phải là dòng tiêu đề cột hay không? ( First Row Contains Field Names). Nếu là file *.txt thì cần xác định loại ký tự là dấu tách cột: (dấu Tabs, chấm phảy – Semicolon, dấu phảy – Commas…)
B6) (Tiếptheo)
Cách lưu trữ dữ liệu mới: In a New Table- Tạo bảng mới, hoặc In an Existing Table- Bổ sung dữ liệu vào bảng đã có.
B7) (Tiếp theo)
Sửa lại tên, kiểu giá trị và xác định các cột không cần giữ lại trong bảng đích: Do not Import Field – bỏ qua.
B8) (Tiếp theo)
Để Microsoft tự bổ sung thêm cột có tên là ID với kiểu giá trị là AutoNumber - tự động tăng 1 làm thuộc tính khóa chính (Let Access Add Primary Key), hoặc xác định một cột làm khoá chính (Choose My Own Primary Key) hoặc không chọn thuộc tính nào làm khóa (No Primary Key)
B9) (Tiếp theo)
Đặt lại tên cho bảng, rồi nhấn Finish để kết thúc.
(Tiếp theo)
(*) Ghi chú: Khi Import từ file *.txt hoặc *.xls, để đảm bảo việc chuyển đổi bảng mã tiếng Việt đúng đắn, cần chọn trang mã (Code Page) là Western European (Windows), thông qua nút chức năng bổ sung (Advanced).
(Tiếp theo)
Nếu việc Import thành công thì MSA sẽ có thông báo hoàn tất. Nếu việc Import không thành công thì có thông báo lỗi, và các dòng không Import được sẽ được lưu trong 1 bảng có tên với phần bổ sung là _ImportError. Lỗi sai thường gặp nhất là sai cách chuyển đổi dữ liệu sang dạng DateTime. MSA sử dụng cách biểu diễn ngày tháng của hệ điều hành Windows, do đó, nếu Windows dùng dạng mm/dd/yyyy và dữ liệu Import có dạng dd/mm/yyyy (ví dụï 25/01/2001) thì quá trình Import sẽ gây lỗi.
MSA thực hiện việc chuyển đổi dữ liệu khi Import từ file văn bản như sau:
Dãy chữ Text(255). Số nguyên Long Integer.
Số thực Double. xx/yy/zz DateTime.
Do đó, sau khi Import xong (thì) cần phải thực hiện chức năng Design để đặc tả lại cấu trúc của bảng.
§2.4. Sử dụng chung tài nguyên với CSDL khác
Nguồn dữ liệu để dùng chung (Link) phải là các dữ liệu có cấu trúc. Đó phải là (các) file hoặc bảng của (các) CSDL khác. Nguồn này có thể là từ Access, Dbase, Foxpro hoặc ODBC. File Excel không phải là một nguồn thích hợp cho việc dùng chung trong môi trường Access
Thao tác: B0), B1),B2) (Nếu chưa làm)
B3) Chọn NewLink Table
B4) Chọn các bảng dữ liệu để dùng chung
OK để hòan tất.
PLACEHOLDER
§2.5 Trích xuất dữ liệu ra file hoặc bảng ngoài
Thao tác: B0), B1, B2) ( nếu chưa làm)
B3) Chọn bảng cần trích xuất
B4) Nhắp chuột phải, chọn Export (hoặc =FileExport)
B4) Xác định lọai đích tại mục Files of Type; Thư mục lưu trữ tại Save In, và tên file tại File Name. SAVE để trích dữ liệu (như trong hình kế sau):
Nếu lọai dữ liệu đích là một bảng của file CSDL Access thì cho biết tên bảng đích và đồng thời xác định cách sao chép:
Dữ liệu và cấu trúc (Definition and Data): dũ liệu cùng cấu trúc bảng
Hoặc chỉ sao chép cấu trúc: (Definition Only).
OK để hòan tất.
(Hình trang sau:)
Export Data (Tiếp theo)
Chọn bảng. Nhắp chuột phải, chọn chức năng Export, (hoặc fileExport), màn hình xuất hiện như sau:
Export Data (Tiếp theo)
Chọn mục Export), màn hình xuất hiện như sau:
Export Data (Tiếp theo)
Chọn mục Export), màn hình xuất hiện như sau:
(Tiếp theo)
- Nếu Export trích ra bảng tính Excel thì chọn
(Tiếp theo)
Nếu Export trích ra bảng của một file văn bản thì :
chọn lọai dữ liệu nguồn là “Text file” tại mục “Save of Type” Next -> B5 , Chọn cách lưu trữ file Text là Delimited
CHƯƠNG III. TRUY VẤN CSDL (Queries)
NỘI DUNG:
§3.1. Truy vấn để tìm kiếm thông tin
1. Câu lệnh truy vấn đơn
2. Câu hỏi có câu hỏi con (SubQuery)
§3.2. Truy vấn để sửa đổi dữ liệu (Update)
§3.3. Truy vấn tổng hợp dữ liệu (Cross-Tab)
§3.4. Các lệnh truy vấn khác
1. Tạo/sửa cấu trúc bảng
2. Thiết lập ràng buộc toàn vẹn
§3.1. Truy vấn để tìm kiếm thông tin
Có 2 cách tạo 1 Query trong MSA: Câu lệnh SQL hoặc bằng công cụ Wizard kéo-thả (Drag-Drop) trên lưới (Grid). Có thể chuyển đổi qua lại giữa 2 cách này.
Cú pháp câu lệnh truy vấn (đã học):
SELECT [DISTINCT] [TOP n [PERCENT]]
FROM [[AS]],[[AS]], …
[WHERE <điều kiện chọn bản ghi để xử lý>]
[GROUP BY
[HAVING <điều kiện chọn kết quả cuối cùng>]
[ORDER BY
Dấu chấm phảy cuối câu là tùy chọn. Chữ hoa hay chữ thường là như nhau.
(Tiếp theo)
(*) DISTINCT : Chỉ giữ lại những dòng khác nhau.
(*) Cụm từ TOP n [PERCENT] luôn luôn phải được đi kèm với mệnh đề ORDER BY.
- TOP n : n dòng đầu tiên và những dòng có giá trị sắp xếp như dòng thứ n.
- TOP n PERCENT : n% (lấy cận trên) số dòng kết quả tìm được. Ví dụ, nếu n% = 1.2 thì lấy cận trên bằng 2.
(*) (i=1..n) có thể là tên bảng dữ liệu vật lý, Query hoặc phép kết 2 quan hệ theo cú pháp:
(*) Nếu sau FROM là danh sách các bảng thì phải thể hiện mối liên hệ giữa các bảng đó trong mệnh đề WHERE.
(Tiếp theo)
(*) Ngoại trừ các biểu thức có chứa các hàm tích hợp các biểu thức còn lại sau SELECT đều phải có mặt trong mệnh đề GROUP BY.
(Tiếp theo)
Thao tác: B0), B1) (nếu chưa làm)
B2) Chọn đối tượng Queries (nếu chưa làm)
B3) Xác định nguồn dữ liệu cho Query (bảng hoặc query) bằng nút Add, và kết thúc bằng nút Close
B4) Lần lượt kéo-thả các Field từ các bảng vào lưới (GRID)
Thi hành câu lệnh bởi nút có hình dấu chấm than ! (Run)
Chuyển đổi sang câu lệnh SQL thông qua nút Design ở góc trái trên của của sổ thiết kế Query.
(Tiếp theo)
2. Câu hỏi có câu hỏi con (SubQuery)
Định nghĩa: Câu hỏi con là một câu hỏi mà kết quả của nó được dùng làm toán hạng của một phép so sánh trong biểu thức điều kiện của câu hỏi khác. Câu hỏi con phải được đặt trong cặp dấu ngoặc tròn.
(*) MSA chỉ cho phép 1 biểu thức sau SELECT trong câu truy vấn con. Do đó, nếu có nhiều biểu thức thì phải ghép chúng lại thành một thông qua phép nối ghép &.
(*) Các ví dụ minh họa:
Câu 1: Cho tên và danh sách nhân viên của từng phòng/ban
SELECT DeptName, E.*
FROM Department D, Employee E
WHERE D.Deptno=E.Deptno;
(Tiếp theo)
Câu 2: “Cho tên phòng và d.sách nhân viên có lương hơn 4000”
SELECT DeptName, E.*
FROM Department D, Employee E
WHERE D.Deptno=E.Deptno AND Salary > 4000;
Câu 3: “Cho biết người có lương cao nhất trong công ty”
SELECT * FROM Employee
WHERE Salary = (SELECT MAX(Salary) FROM Employee);
Câu 4: “Cho biết tên phòng của người lương cao nhất công ty”.
SELECT DeptName FROM Department WHERE Deptno IN
(SELECT * FROM Employee
WHERE Salary=(SELECT MAX(Salary) FROM Employee));
Câu 5: “Cho tên phòng có lương trung bình lớn hơn lương trung bình của các nhân viên trong phòng Smith”.
(Tiếp theo)
Tìm mã phòng của Smith (x)
Tìm lương trung bình của các NV có mã phòng=(x) (y)
Tính lương trung bình của các phòng, kết quả chỉ giữ lại những phòng nào có lương trung bình lớn hơn (y).
SELECT DeptName FROM Department D, Employee E
WHERE D.Deptno=E.Deptno
GROUP BY D.Deptno, DeptName
HAVING AVG(Salary) >
( SELECT AVG(Salary) FROM Employee
WHERE Deptno=
( SELECT Deptno FROM Employee
WHERE Name=‘Smith’
)
);
§3.2. Truy vấn để sửa đổi dữ liệu
1. Query tạo bảng (Make Table Query)
SELECT [DISTINCT] [TOP n [PERCENT]]
INTO
FROM [[AS]],[[AS]], …
[WHERE <điều kiện chọn bản ghi để xử lý>]
[GROUP BY
[HAVING <điều kiện chọn kết quả cuối cùng>]
[ORDER BY
Ví dụ: Tạo bảng Manager chứa danh sách các lãnh đạo phòng
SELECT * INTO Manager FROM Employee
WHERE Job=“Mngr”;
2. Query bổ sung thêm dữ liệu.
a. Thêm một bản ghi từ dữ liệu đã cho:
(Tiếp theo)
INSERT INTO
VALUES(
Ví dụ: “Thêm NV mới tên là “Tony” MÃ SỐ 300 vào phòng số 40, làm nhân viên bán hàng với mức lương là 2,500$”
INSERT INTO Employee
VALUES (300, “Tony”, “Slsm”, 2500, NULL, 40, “M”);
Hoặc:
INSERT INTO Employee (Name, Empno, Job, Salary, Deptno)
VALUES (“Tony”, 300, “Slsm”, 2500, 40);
b. Bổ sung dữ liệu từ CSDL.
INSERT INTO
(Tiếp theo)
Ví dụ: “Thêm vào bảng Manager các nhân viên có lương >4000”
INSERT INTO Manager
SELECT * FROM Employee
WHERE Salary>4000 AND Empno NOT IN
(SELECT Empno FROM Manager);
3. Query sửa dữ liệu:
UPDATE
SET
[WHERE <điều kiện cập nhật>];
Ví dụ: a. Tăng lương 10% cho các nhân viên phụ trách phòng.
UPDATE Employee SET Salary= Salary*1.1
WHERE Job=‘Mngr’;
b. Tiền lương tối thiểu phải bằng mức thấp nhất của công việc.
UPDATE Employee e INNER JOJN Jobs v ON v.Job=e.Job
SET Salary= IIF(Salary < Minsalry, MinSalry, Salary);
(Tiếp theo)
4. Query xóa dữ liệu:
DELETE [
[WHERE <điều kiện xóa>];
(*) Nếu nguồn là query hoặc phép kết thì phải có thành phần
Ví dụ: a. “Xóa các nhân viên phụ trách các phòng ban”
DELETE FROM Employee
WHERE Job=‘Mngr’;
b. “Xóa các nhân viên có lương nhỏ hơn lương tối thiểu của c/v”
DELETE e.* FROM Jobs v INNER JOIN Employee e
ON (e.job=v.Job) WHERE Salary < Minsalry;
§3.3. Truy vấn tổng hợp dữ liệu (Cross-Tab)
Cú pháp:
TRANSFORM
SELECT
FROM
[WHERE <điều kiện chọn bản ghi để xử lý>]
GROUP BY
PIVOT
Diễn giải: …
Ví dụ: “Cho tên, tổng số n/v chia theo giới tính của các phòng”
Transform Count(*)
Select Deptname, Count(*) as Total
From Department d Inner Join Employee on d.deptno=e.deptno
Group By DeptName Pivot Sex IN (‘F’, ‘M’)
(Tiếp theo)
§3.4. Các câu lệnh truy vấn khác
1. Tạo cấu trúc bảng:
Create Table
[Constraint
[Constraint
References (
);
Một mô tả cột có dạng:
Ví dụ: a.Create Table ABC (aaa text(10) Primary Key,
bbb long, ccc DateTime, ddd Memo, eee Double);
(Tiếp theo)
b. Create Table BBC (aaa text(10), bbb long, Constraint PK Primary Key (aaa,bbb), Constraint FK Foreign Key (aaa) References ABC (aaa));
2. Sửa đổi cấu trúc bảng - Thiết lập khóa chính, RBTV:
Alter Table [Add Column <đặc tả cột>],
[Add Constraint
[Add Constraint
Ví dụ: Alter Table BBC Add Column ccc DateTime;
(Tiếp theo)
3. Tạo chỉ mục:
CREATE [UNIQUE] INDEX
Ví dụ:
4. Các câu lệnh hủy bỏ:
Hủy (xóa) bỏ bảng: DROP Table
Ví dụ:
Hủy bỏ chỉ mục: DROP INDEX
Ví dụ:
Hủy bỏ RBTV: DROP Constraint
Ví dụ:
CHƯƠNG IV. THIẾT KẾ GIAO DIỆN (Forms)
NỘI DUNG:
§4.1. Một số khái niệm – Cấu trúc tổng quát
1. Cấu trúc tổng quát của một Form
2. Các loại Form trong Microsoft Access
§4.2. Tạo Form bằng công cụ hỗ trợ (Wizard)
1. Tạo Form nhanh dạng Columnar, DataSheet
2. Tạo Form có SubForm
§4.3. Các thao tác sửa Form – Các hàm tích hợp
§4.4. Tự thiết kế Form (Form Design)
§4.1. Một số khái niệm – Cấu trúc tổng quát
Cấu trúc tổng quát của một Form
Một Form có thể có 5 phần:-Tiêu đề mẫu nhập (Form Header), phần này chỉ xuất hiện một lần đầu tiên trên trang đầu tiên.
(Tiếp theo)
- Phần tiêu đề trang (Page Header) sẽ xuất hiện giống nhau ở mỗi trang của Form nhập dữ liệu.
- Phần chi tiết (Detail) để trình bày nội dung một bản ghi.
Phần cuối trang (Page Footer) sẽ xuất hiện giống nhau ở mỗi trang của Form nhập dữ liệu. Nó thường được dùng làm phần hướng dẫn sử dụng giao diện, các nút chức năng tiện ích.
Phần cuối Form (Form Footer) chỉ xuất hiện ở trang cuối cùng của một Form có nhiều trang.
Thông thường, một Form chỉ có một trang nên các phần Form Header và Form Footer ít được sử dụng, hoặc dùng thay cho tiêu đề trang.
Các thành phần nằm trên các phần của Form được gọi chung là các đối tượng (Objects).
(Tiếp theo)
Cửa sổ chứa Form có thêm các thành phần khác (còn gọi là tính chất của Form: Tiêu đề cửa sổ Form (Caption); Các nút điều khiển cửa sổ (Control Box: Min, Max, Close); Các thanh cuốn Form theo chiều ngang và chiều dọc (Horizontal and Vertical Scroll Bar); Thanh chọn bản ghi hiện hành (Record Selector); Nguồn dữ liệu của Form (Record Source); Các nút di chuyển bản ghi (Navigation Buttons).
2. Các loại Form trong Microsoft Access
MSA có các loại Form sau:
Dạng bảng (DataSheet)
Các thông tin của 1 bản ghi hiển thị trên một hay nhiều dòng khác nhau (Columnar).
Form nhập với các Form con (Form with SubForm)
(Tiếp theo)
Với Form nhập dạng columnar có thể hiển thị dạng đơn (Single) hoặc nhiều Form như thế xếp liên tiếp nhau trên màn hình (Continuous).
Dạng Single Form
Dạng Continuous Form
(Tiếp theo)
Các đặc tính sau đây của Form là rất quan trọng:
Default View:
Scroll Bars:
Record Selector:
Navigation Button:
Dividing Line:
Auto Center:
Auto Resize:
Min, Max buttons:
Close Button:
Record Source:
On Form Load:
On Form Activate:
§4.2. Tạo Form bằng công cụ hỗ trợ (Wizard)
MSA có công cụ hỗ trợ để hướng dẫn từng bước trong việc tạo một Form nhanh chóng, gọi là Wizard.
1. Tạo Form nhanh dạng Columnar, DataSheet, Tabular
Thao tác: B0), B1) (nếu chưa làm)
B2) Chọn đối tượng Forms (nếu chưa làm).
B3) - Chọn NewAutoForm (Datasheet hoặc Tabular hoặc Columnar)
- Xác định nguồn dữ liệu cho Form tại Combo Box.
- Nhấn OK để hoàn tất.
Tên Form là tên bảng / query dữ liệu nguồn.
2. Tạo Form có SubForm
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) NewForm Wizard
B4) Lần lượt chọn các field từ các bảng cần hiển thị / nhập
B5) Chọn nguồn dữ liệu chính, dữ liệu tham khảo.
B6) Chọn cách hiển thị Form con
B7) Chọn phong cách (Style) cho Form: (nên chọn Standard)
B8) Đặt tên cho Form và SubForm
B9) Finish để kết thúc
(Next: đi tiếp bước sau. Back: quay lại bước trước).
Ví dụ: Tạo Form nhập dữ liệu cho bài tóan quản lý vũ khí như trong bài tập đã cho)
§4.3. Các thao tác sửa Form – Các hàm tích hợp
Xác định kích thước Form
Chọn (các) đối tượng
Thay đổi thuộc tính (Font, size, style, color, effect...)
Di chuyển các đối tượng đã chọn.
Thay đổi kích thước.
Gióng thẳng hàng: FormatAlign(left, right, top, bottom)…
Chia đều khoảng cách (hàng ngang / cột dọc).
Bổ sung thêm đối tượng mới (Tools Box)
Các hàm tích hợp Dxxx (
(Các hàm DLookUp , DSum, DCount, DMin, DMax, DAvg….)
§4.4. Tự thiết kế Form (Form Design)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) New Design View. OK
B4) Xác định kích thước Form (chiều cao và chiều rộng)
B5) Xác định nguồn dữ liệu cho Form tại Record Source.
B6) Lần lượt kéo-thả các field vào các vị trí thích hợp của Form.
B7) Bổ sung các đối tượng khác vào Form
B9) Đặt các thuộc tính cần thiết cho Form và các đối tượng khác trên Form. Trình bày Form sao cho cân đối.
B10) Đóng cửa sổ thiết kế và đặt tên cho Form.
* Nên tạo query để lấy dữ liệu nguồn cho Form)
CHƯƠNG V. THIẾT KẾ MẪU BÁO CÁO (Reports)
NỘI DUNG:
§5.1. Một số khái niệm
1. Cấu trúc tổng quát của 1 báo cáo (Report)
2. Các loại báo cáo trong Microsoft Access
§5.2. Tạo Report bằng công cụ hỗ trợ (Wizard)
1. Tạo Report nhanh (Auto Report)
2. Tạo Report có dòng tổng nhóm (SubTotals)
3. Tạo Report dạng phiếu (Label)
4. Tạo Report dạng biểu đồ (Chart)
§5.3. Tự thiết kế Report (Report Design)
§5.1. Một số khái niệm
Cấu trúc tổng quát của 1 báo cáo (Report)
Tương tự như Form, 1 báo cáo cũng có thể có 5 phần:
- Report Header: tiêu đề báo cáo, nó chỉ được in trên trang đầu tiên của báo cáo;
- Page Header: tiêu đề trang báo cáo được in giống nhau trên mỗi trang in. Thông thường là các tiêu đề cột – hoặc dòng chứa số thứ tự cột của biểu;
- Details: Phần để in nội dung của mỗi bản ghi dữ liệu nguồn;
- Page Footer: Phần cuối trang báo cáo. Thông thường dùng để in các chú thích trong trang cũng như đánh số thứ tự trang in.
- Report Footer: Tiêu đề cuối báo cáo. Thông thường dùng để in các thông tin xác nhận trách nhiệm và sở hữu số liệu của đơn vị như: ngày lập báo cáo, người lập báo cáo, người duyệt báo cáo (ký và ghi họ tên), và thủ trưởng đơn vị ký tên, đóng dấu.
(Tiếp theo)
2. Các loại báo cáo trong Microsoft Access.
Báo cáo dạng bảng Datasheet, mỗi bản ghi in trên 1 dòng.
Báo cáo dạng cột Columnar. Mỗi field in trên 1 dòng. Hai dạng này phục vụ cho các báo cáo nhanh tức thời, cần thông tin và số liệu hơn mặt pháp quy.
Báo cáo dạng tổng hợp có thể có các dòng tổng con. Đây là dạng thông dụng nhất trong các cơ quan, đơn vị.
Báo cáo dạng phiếu (Label). Mỗi bản ghi dữ liệu nguồn được in trên một phần của trang giấy in.
Báo cáo dạng biểu đồ (Chart) để phản ánh sự biến thiên của một dãy số (dạng line), hoặc mang tính so sánh (Column / Bar) hay tỷ trọng của một đại lượng trong tổng thể (Pie), ...
§5.2. Tạo Report bằng công cụ hỗ trợ(Wizard)
1. Tạo Report nhanh (Auto Report)
Thao tác:
B0), B1) (nếu chưa làm)
B2) Chọn đối tượng Report (nếu chưa làm)
B3) - New AutoReport: Tabular/Columnar
- Xác định bảng dữ liệu nguồn cho báo cáo.
- Nhấn OK để hoàn tất
B4) Đóng cửa sổ kết quả và đặt tên lại cho báo cáo
Tên mặc định của báo cáo là tên bảng dữ liệu nguồn.
2. Tạo Report có dòng tổng nhóm (SubTotals)
B0), B1), B2) (nếu chưa làm)
B3) New Report wizard. OK để đi tới bước tiếp theo
B4) Lần lượt chọn các fields từ các bảng cần in trên Report.
B5) Xác định bảng dữ liệu nào là chính.
(Tiếp theo)
B6) Bổ sung các cách phân nhóm các bản ghi. Nếu có nhóm thì có thể nhấn Grouping Options để thiết lập cách phân nhóm (Grouping Intervals). Nếu cột phân nhóm có kiểu văn bản thì có thể nhóm theo 1, 2, hay nhiều ký tự đầu tiên; nếu có kiểu số thì có thể nhóm theo 1, 5, 10, 50, 100,... hoặc kiểu DateTime thì nhóm theo tuần, tháng, quý, năm, v.v...
B7) Xác định việc sắp xếp thứ tự in theo cột nào.
(Tiếp theo)
B8) - Chọn hình thức in báo cáo (Report Layout). Có thể chọn Layout là Stepped (mỗi cấp phân nhóm thì lùi vào phía phải).
- Chọn hướng in (Orientation) là Portrait hoặc LandScape.
B9) Chọn kiểu in các chữ và nhóm trong báo cáo (Formal)
B10) Đặt tên cho Report, đồng thời là tiêu đề báo cáo.
Finish để kết thúc.
Ví dụ: Bài toán quản lý vũ khí, Công nợ, Kế toán, Thương binh
3. Tạo Report dạng phiếu (Label)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) - New Label Wizard.
- Xác định nguồn dữ liệu
- OK để đi tiếp bước sau.
B4) Xác định kích thước Label từ một số mẫu có saün.
(Tiếp theo)
Nếu muốn tạo kích thước mẫu mới thông qua chức năng Customize Edit. Và thiết lập các thông số lề trái, phải, trên, dưới, khoảng cách so với các Label lân cận, ...
B5)Xác định Font, kích thước và kiểu chữ trong Label.
B6) Xác định các field có saün cần in trên Label.
B7) Xác định thứ tự in các bản ghi (Sort Order...)
B8) Đặt tên cho Label vàFinish để kết thúc.
4. Tạo Report dạng biểu đồ (Chart)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) - New Chart Wizard.
- Xác định nguồn dữ liệu
- OK để đi tiếp bước sau.
(Tiếp theo)
B4) Xác định các field chứa dữ liệu để vẽ biểu đồ.
B5) Xác định loại biểu đồ (Line, Bar, Pie, Area)
B6) Xác định giá trị trục x, y bằng cách kéo-thả vào Chart
B7) Đặt tên cho biểu đồ và Finish để hoàn tất.
§5.3. Tự thiết kế Report (Report Design)
Thao tác:
B0), B1), B2) (nếu chưa làm)
B3) New Design View.
B4) Xác định khổ giấy (Paper size), lề (Margins), hướng in (Orientation) thông qua File Page Setup
B5) Xác định nguồn dữ liệu cho Report thông qua thuộc tính Record Source của đối tượng Report.
B6) Bổ sung các thành phần phân nhóm để lấy tổng con (Sub Totals) View Sorting and Grouping
B7) Lần lượt kéo-thả các thuộc tính cần thiết vào Report
B8) Bổ sung các Control cần thiết khác
B9) Đặt thuộc tính cho các đối tượng trên Report. Trình bày Report sao cho cân đối.
B10) Đóng cửa sổ thiết kế và đặt tên cho Report.
CHƯƠNG VI. LỆNH VĨ MÔ (Macros)
NỘI DUNG:
§6.1. Khái niệm
§6.2. Hệ thống Macros của Microsoft
1. Nhóm hành động thao tác với Form/Report
2. Nhóm hành động
3. Nhóm hành động
4. Nhóm hành động
§6.3. Một số hành động (Action) thông dụng
Ứng dụng trong việc tạo Menu hệ thống
CHƯƠNG VII. LẬP TRÌNH VỚI ACCESS BASIC
NỘI DUNG:
§7.1. Khái niệm
§7.2. Các kiểu dữ liệu của Microsoft Access
1. Kiểu vô hướng (Scalar)
2. Kiểu mảng (Array)
3. Kiểu dữ liệu tự định nghĩa
4. Kiểu đối tượng truy nhập dữ liệu (D.A.O)
§7.3. Hệ thống lệnh các câu lệnh của Access
1. Khai báo biến (Declaration)
2. Rẽ nhánh chương trình (If, Select Case)
3. Các lệnh lặp (For, Do, While)
§7.4. Thủ tục và Hàm
§7.5. Xây dựng Ứng dụng bằng Access
§7. 2. Các kiểu dữ liệu của Microsoft Access
1. Kiểu vô hướng (Scalar)
2. Kiểu mảng (Array)
3. Kiểu dữ liệu tự định nghĩa (User-Defined)
4. Kiểu đối tượng truy nhập dữ liệu (D.A.O)
§7.3. Hệ thống lệnh các câu lệnh của Access
Khai báo biến (Declaration)
Cú pháp:
[Global/Private/Dim]
Ngữ nghĩa:
Từ khóa Global thể hiện việc khai báo biến là tổng thể, tức là dùng chung được cho toàn ứng dụng Access. Điều dễ hiểu là các biến thuộc loại này phải được khai báo trong các modules.
Từ khóa Private /Dim thể hiện việc khai báo biến là cục bộ, tức là chỉ có nghĩa trong phạm vi nó được khai báo, ngoài vùng khai báo biến không còn giá trị. Có thể là cục bộ trong hàm, cục bộ trong module chương trình của một Form/Report, hoặc trong modules các hàm tổng thể.
(Tiếp theo)
Nếu không khai báo tường minh kiểu cho biến thì biến có kiểu mặc định là biến thể (Variant).
Việc khai báo biến trong Visual Basic, nói chung, là không bắt buộc. Tuy nhiên, nên khai báo biến để dễ kiểm soát chương trình, và tận dụng được khả năng Visual của Basic.
Ví dụ: Dim i, j, k As Integer
Thì chỉ có k là thuộc kiểu số nguyên 2 bytes, còn i và j đều thuộc kiểu Variant.
Tên biến viết hoa hay thường là như nhau
(Tiếp theo)
2. Gán giá trị cho biến (Set)
Cú pháp:
[Set]
Giá trị của biểu thức được tính toán và gán cho
Nếu
Ví dụ:
Dim MyDB As DAO.Database, MyTab As DAO.Tabledef
Dim nTabs As Integer ‘ Số lượng table trong CSDL.
Set MyDB = DBEngine.Workspaces(0).Databases(0)
Set MyTab = MyDB.Tabledefs(0)
nTabs = MyDB.Tabledefs.Count
(Tiếp theo)
3. Lệnh rẽ nhánh chương trình (If, Select Case)
a) Lệnh rẽ nhánh (IF).
Cú pháp của lệnh được đơn giản hóa như sau:
If <điều kiện> Then
[Else
End If
(*) Nếu sau Then chỉ có 1 câu lệnh thì có thể viết lệnh trên cùng 1 dòng với Then và không cần End If
Ví duï: If n <= 0 Then Exit Function
If Delta >= 0 then
x1 = (-b + Sqr(Delta)) / (2* a): x2 = (-b - sqr(Delta)) / (2* a)
Else : debug.print “Vô nghiệm”
End if
(Tiếp theo)
b) Lệnh chọn 1 trong nhiều khả năng (SELECT CASE).
Cú pháp:
Select Case (
Case
Case
...
Case
[ Case Else
< các câu lệnh khác> ]
End Select
(Tiếp theo)
4. Các lệnh lặp (For, Do, While)
a. Lặp hữu hạn từ 0 đến nhiều lần For:
For
Next [
Ngữ nghĩa: Nếu không có [Step n] thì mặc định là Step 1.
Ban đầu
Ví dụ: Tính giá trị của n giai thừa (n! = 1.2.3...n)
Dim f As Double, i As Integer
f = 1
(Tiếp theo)
For i = 1 To n
f = f * i
Next i
Trong số các câu lệnh sau For, có thể có các lệnh Exit For để kết thúc bất thường (kết thúc sớm) vòng lặp.
b. Lặp vô hạn lần Do:
Dạng b1):
Do [While / Until <điều kiện>]
Loop
Hoặc dạng b2):
Do
Loop [While / Until <điều kiện>]
(Tiếp theo)
Ngữ nghĩa: Chừng nào <điều kiện> còn thỏa mãn (với từ kh
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Lý Minh Thuận
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)