Đôi lời về access! -...

130
TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI ELEC Trang 1 Đôi lời về Access! Microsoft Access: Access 2003, AccessXP, v.v.. là công c ụ quản trị cơ sở dữ liệu (CSDL) quan h ệ mạnh, được đánh giá rất cao hiện nay v ì: thứ nhất l à dễ học, thứ 2 l à rất phổ dụng (trên 90% người làm Tin bi ết sử dụng nó - điều tra năm2006 ) và thứ 3 là có nhi ều cấp độ ph ù hợp với nhiều bậc khai thác khác nhau, v.v.. Tin học ứng dụng bao gồm 4 vấn đề được phân chia th ành 4 học phần: Học phần 1: Những khái niệm cơ bản, hệ điều h ành Windows và Internet Học phần 2: Hệ soạn thảo Word v à trình diễn PowerPoint Học phần 3: Bảng tính điện tử Excel Học phần 4: Quản trị CSDL Access Học 3 học phần đầu là để: Biết cách sử dụng được máy vi tính thông qua hệ điều h ành Windows; Bi ết cách soạn thảo các văn bản có chất l ượng thông qua Word; Biết cách thiết kế các trang tr ình di ễn kết hợp với máy chiếu để tr ình bày tr ước đám đông thông qua PowerPoint; Bi ết cách tổ chức dữ liệu v à xử lý các công việc tính toán thông qua Excel. Vậy còn Access dùng để làm gì? Xin t ạm thời nói vắn tắt ngay (bạn sẽ h ình dung ra nó sau khi h ọc ít bài đầu): Là để tạo ra một hệ thống thông tin (th ường l à các tệp) có mối quan hệ với nhau, c ùng mô t ả một công việc, đồng thời xử lý chúng theo những yêu cầu đặt ra tr ên nên của Quản trị CSDL Access có lập tr ình hoặc không. Đã có rất nhiều sách viết về Access với nhiều cấp độ khác nhau mang mầu sắc bi ên dịch, tây, ta đủ thứ, bạn đọc tha hồ tham khảo theo ý thích của m ình. Nhưng nếu bạn chưa biết gì về quản trị cơ sở dữ liệu Access th ì nên tham kh ảo giáo tr ình này bởi vì mục đích của cuốn sách n ày là: 1. Tạo cho người học biết cách thiết kế một c ơ sở dữ liệu trong công việc của m ình. 2. Biết sử dụng những tính năng c ơ bản của Access để xử lý hệ thống CSDL đó. 3. Biết xử lý tự động thông qua lập tr ình trong Access. Thường thì khi gặp một vấn đề mới người học hay hỏi: 1. Nội dung mới n ày là gì? (đối tượng được nghi ên cứu) 2. Dùng nó để làm gì? (ứng dụng của đối tượng đó) 3. Hiểu và ứng dụng nó như thế nào? (chế ngự đối tượng đó) Giáo trình này s ẽ trả lời thoả đáng các câu h ỏi đó. Ngoài ra giáo trình c ũng đề cập đến một vấn đề có tính s ư phạm trong việc viết các giáo trình Tin h ọc ứng dụng. GS. H. Peter đ ã từng nói: Đi từ quả táo rơi dẫn đến định luật hấp dẫn nhẹ nh àng và dễ hiểu hơn là đi ngược lại ”. Theo tinh th ần đó, các khái ni ệm trong giáo tr ình như: Quan hệ, Phụ thuộc h àm, Truy v ấn, Form, Report, Module, v.v... đều được mô tả bằng các ví dụ cụ thể, để các bạn có thể tự học tr ên máy tính ngay c ả khi không có giảng vi ên hướng dẫn. Nội dung trong giáo tr ình này chạy được trên mọi phi ên bản của Access đ ã có, đặc biệt là Access 2003, Access XP, v.v.. Vì Access ch ứa đượng rất nhiều tính năng, nhất l à về lập tr ình, do v ậy việc chọn lọc nội dung trong quyển sách n ày không th ể tránh khỏi thiếu sót về trật tự, liều l ượng và cung cách th ể hiện nội dung, mong các bạn góp ý v à lưỡng thứ, để quyển sau cập nhật được tốt hơn. Chúc các b ạn thành đạt! Hà nội ngày 28/12/2007

Upload: duongtuong

Post on 04-May-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 1

Đôi lời về Access!Microsoft Access: Access 2003, AccessXP, v.v.. là công c ụ quản trị cơ sở dữ liệu(CSDL) quan hệ mạnh, được đánh giá rất cao hiện nay v ì: thứ nhất là dễ học, thứ 2 làrất phổ dụng (trên 90% người làm Tin biết sử dụng nó - điều tra năm2006) và thứ 3 làcó nhiều cấp độ phù hợp với nhiều bậc khai thác khác nhau, v.v..

Tin học ứng dụng bao gồm 4 vấn đề được phân chia thành 4 học phần:Học phần 1: Những khái niệm cơ bản, hệ điều hành Windows và InternetHọc phần 2: Hệ soạn thảo Word và trình diễn PowerPointHọc phần 3: Bảng tính điện tử ExcelHọc phần 4: Quản trị CSDL Access

Học 3 học phần đầu là để: Biết cách sử dụng được máy vi tính thông qua hệ điều h ànhWindows; Biết cách soạn thảo các văn bản có chất l ượng thông qua Word; Biết cáchthiết kế các trang trình diễn kết hợp với máy chiếu để tr ình bày trước đám đông thôngqua PowerPoint; Biết cách tổ chức dữ liệu và xử lý các công việc tính toán thông quaExcel. Vậy còn Access dùng để làm gì? Xin tạm thời nói vắn tắt ngay (bạn sẽ h ìnhdung ra nó sau khi học ít bài đầu): Là để tạo ra một hệ thống thông tin (th ường là cáctệp) có mối quan hệ với nhau, c ùng mô tả một công việc, đồng thời xử lý chúng theonhững yêu cầu đặt ra trên nên của Quản trị CSDL Access có lập tr ình hoặc không.

Đã có rất nhiều sách viết về Access với nhiều cấp độ khác nhau mang mầu sắc bi êndịch, tây, ta đủ thứ, bạn đọc tha hồ tham khảo theo ý thích của m ình. Nhưng nếu bạnchưa biết gì về quản trị cơ sở dữ liệu Access th ì nên tham khảo giáo trình này bởi vìmục đích của cuốn sách này là:

1. Tạo cho người học biết cách thiết kế một cơ sở dữ liệu trong công việc của m ình.2. Biết sử dụng những tính năng cơ bản của Access để xử lý hệ thống CSDL đó.3. Biết xử lý tự động thông qua lập tr ình trong Access.Thường thì khi gặp một vấn đề mới người học hay hỏi:1. Nội dung mới này là gì? (đối tượng được nghiên cứu)2. Dùng nó để làm gì? (ứng dụng của đối tượng đó)3. Hiểu và ứng dụng nó như thế nào? (chế ngự đối tượng đó) Giáo trình này sẽ trả lời thoả đáng các câu hỏi đó.

Ngoài ra giáo trình cũng đề cập đến một vấn đề có tính s ư phạm trong việc viếtcác giáo trình Tin học ứng dụng. GS. H. Peter đã từng nói: “Đi từ quả táo rơi dẫn đếnđịnh luật hấp dẫn nhẹ nhàng và dễ hiểu hơn là đi ngược lại”. Theo tinh thần đó, cáckhái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm, Truy vấn, Form, Report,Module, v.v... đều được mô tả bằng các ví dụ cụ thể, để các bạn có thể tự học tr ên máytính ngay cả khi không có giảng viên hướng dẫn.

Nội dung trong giáo tr ình này chạy được trên mọi phiên bản của Access đã có, đặcbiệt là Access 2003, Access XP, v.v..Vì Access chứa đượng rất nhiều tính năng, nhất l à về lập trình, do vậy việc chọn lọcnội dung trong quyển sách này không thể tránh khỏi thiếu sót về trật tự, liều l ượng vàcung cách thể hiện nội dung, mong các bạn góp ý v à lưỡng thứ, để quyển sau cập nhậtđược tốt hơn.

Chúc các bạn thành đạt! Hà nội ngày 28/12/2007

Page 2: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 2

Chương 1: Làm quen với Access1.1 Thế nào là một CSDLMột CSDL là một tập các tệp được tổ chức cho một mục đích cụ thể n ào đó, một bộ phận lớnvà rất quan trọng trong tập các tệp n ày là tệp bảng. Tệp bảng là tệp có cấu trúc hai chiều: dòngvà cột. Người ta còn gọi dòng là bản ghi (Record), cột còn gọi là trường (Field). Ví dụ: để làmcông việc tuyển sinh Khối A, ta tổ chức 3 tệp bảng d ùng cho công tác tuyển sinh như sau:Tệp thứ nhất có tên KhoiA(Khối AK) có dạng sau:

STT SBD Họ tên Ngày sinh Địa chỉ1 A0001 Hoàng Xuân Nam 11/04/1986 12 Hai Bà Trưng Hà Nội2 A0002 Hồ Duy Anh 22/04/1988 20 Tràng Thi Hà Nội3 A0003 Lê Văn Thảo 18/03/1989 Yên thành, Nghệ an

… … … … …... … … … …

4389 A4389 Hoàng Nam Thắng 14/12/1989 Tỉnh gia, Thanh hoáTệp thứ 2 có tên DoiTuong (đối tượng) có dạng:

SBD Khu vực Ưu tiênA0001 1 2A0002 2 1A0003 2 9… … …… … …A4389 3 3

Tệp thứ 3 có tên DiemThi (điểm thi) có dạng sau:SBD Điểm toán Điểm lý Điểm hoá Tổng điểm

A0001 6.50 3.40 7.50A0002 7.20 5.10 6.12A0003 2.00 4.30 8.00… …… … …… …… … …A4389 9.00 8.50 6.40

Một hệ thống gồm 3 tệp trên dùng để giải quyết vấn đề tuyển sinh M (tất nhiên là chưa đủ)được gọi là một CSDL, tất nhiên còn những tệp khác nữa, ta sẽ nói sau.

1.2 Thế nào là một CSDL quan hệ?Hãy quan sát 3 tệp trên, tuy về hình thức là 3 tệp riêng lẻ, nhưng giữa chúng có mối quan hệchặt chẽ. Giả sử một thí sinh đưa cho chúng ta một số báo danh (SBD) và yêu cầu chúng ta inra giúp họ thông tin về: Họ tên, Khu vực, Ưu tiên, Điểm toán, Điểm lý và Điểm hoá, thìchúng ta phải làm như thế nào?Rõ ràng chúng ta phải bám vào số báo danh (SBD) của tệp KhoiA (giả sử A0003) để lấy ra:Lê Văn Thảo và tiếp tục xem số báo danh đó trong tệp DoiTuong để lấy ra Khu vực là 2 vàuu Tien là 9, cuối cùng lại tiếp tục căn cứa vào số báo danh đó trong tệp DiemThi để lấy rađiểm toán là: 2.00, Điểm lý là: 4.30 và Điểm hoá là: 8.00. Như vậy nhờ có mối quan hệ giữacác tệp thông qua SBD mà ta giải quyết được vấn đề trên. Ta nói rằng 3 tệp trên (hay nói tổngquát là CSDL trên) là một CSDL quan hệ (hiện thời ta tạm hiểu “quan hệ” đ ơn giản như thế

Page 3: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 3

đã). Cơ sở dữ liệu quan hệ có thuật ngữ tiếng Anh l à Relational Database. Phần mềm nhờ nómà ta khai thác, xử lý, tổ chức các CSDL quan hệ, đ ược gọi là Quản trị CSDL (RelationalDatabase Management=RDM), và vì tính phong phú c ủa nó nên nhiều khi người ta cũng gọi làhệ quản trị CSDL (RDMS). Access l à một hệ quản trị CSDL quan hệ rất mạnh.

1.3 Các đối tượng trong AccessTrong Access bao gồm một số đối tượng cơ bản như sau:1.3.1 Bảng (Table)Là đối tượng dùng để lưu dữ liệu. Một bảng bao gồm cột (hay c òn gọi là trường = Fields) vàhàng (hay còn gọi là bản ghi=Record). Hãy quan sát bảng sau:STT Họ tên Ngày sinh Con Lương Giới tính Tiểu sử ?nh1 Lê Văn Lan 11/10/76 2 $1400 Nam … ….2 Hồ Thị Hoa 12/04/70 1 $1640 Nữ … ….3 Lê Anh Thu 01/02/79 0 $1300 Nam … ….

Bảng trên có 8 trường bao gồm: STT, Họ tên v.v.. (là tên trường), sau đây là một số quy định:1. Tên trườngĐể có thể lưu tệp vào đĩa, tên tệp cũng như tên trường phải được tạo ra theo quy tắc sau: Tên có thể chứa các ký tự chữ cái, chữ số, dấu cách v à các ký tự đặc biệt. Trừ ký tự dấu

chấm ( . ), dấu than (!), mở móc ([ ) v à đóng ( ]) Tên không được bắt đầu bằng dấu cách.Ta có thể viết lại cho đúng tên Trường của bảng trên như sau:STT HoTen NgaySinh Con Luong GioiTinh TieuSu Anh1 Lê Văn Lan 11/10/76 2 $1400 Nam … ….2 Hồ Thị Hoa 12/04/70 1 $1640 Nữ … ….3 Lê Anh Thu 01/02/79 0 $1300 Nam … ….

2. Kiểu trườngở trên ta thấy: Trường STT có kiểu là số thứ tự nguyên dương (AutoNumber): 1, 2, 3.. Trường HoTen có kiểu là văn bản (Text): Lê Văn Tài, Hồ Thị Lan v.v.. Trường NgaySinh có kiểu là ngày /giờ (Date/Time): 19/03/77 v.v.. Trường Con có kiểu số (Number): 2, 1, 0, v.v.. Trường Luong có kiểu số, đặc trưng cho tiền tệ (Currency): $1400, $1640, $1300, v.v.. Trường GioiTinh có kiểu Logic (Yes/No-đúng/sai): Khi nhập vào sẽ có một dấu kiểm

ứng với đúng và không kiểm ứng với sai (bạn cũng có thể khai bao kiểu Text, vídụ:Nam/ nu).

Trường TieuSu có kiểu Memo (ghi nhớ tiểu sử của đ ương sự, có thể rất dài, thực chất làvăn bản).

Trường Anh có kiểu là hình ảnh, đồ thị, bảng tính hoặc đối t ượng khác trong môi trườngWindows có hỗ trợ OLE (nhúng và nối kết đối tượng).

3. Thuộc tính trườngTrường còn có những thuộc tính sau:

a. Field Size: Độ dài của trường; dùng để xác định độ dài (số ký tự) tối đa của trường Textvà Number

b. Format: Định dạng; dùng để xác định cung cách hiển thị dạn g số tiền tệ về việc sử dụngdấu phẩy, dấu chấm, dấu %, dạng dấu phẩy động hay ký tự tiền tệ nh ư thế nào, ví dụ:$123, 345.56, 123.56%, 123.56E+02 v.v ..

Page 4: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 4

c. Decimal Places: xác định số chữ số thập phân, có thể chọn tự động hay 0,1,2,3,4, 5.. chữsố sau dấu phẩy thập thân.

d. Input Mask: khuôn nạ nhập liệu. Ví dụ như dùng khuôn nạ … /…/… để nhập ngàytháng năm, v.v...

e. Caption: Tiêu đề, có thể nhập vào một tên trường đầy đủ để về sau gắn vào nhãn trênbiểu mẫu và các tiêu đề đầu của báo cáo.

f. Default Value: Giá trị mặc định. Dùng để quy định một giá trị mặc định cho các loại dữliệu trừ loại Counter, Memo và OLE Object. Nếu không quy định lại th ì giá trị mặc địnhcủa số là 0; của Memo và text là Null.

g. Validation Rule: Quy tắc hợp lệ. Dùng để kiểm tra dữ liệu nhập vào. Ví dụ ta đặt biểuthức: <500 có nghĩa khi nhập liệu các số chỉ đ ược phép nhỏ hơn 500; hay đặt “Hà nội”OR “Đà nẵng" OR “Huế” để kiểm tra dữ liệu nhập vào có phải là một trong 3 thànhphố đó hay không.

h. Validation Text: Hãy gõ vào đây một thông báo, để khi nhập dữ liệu, nếu không thoảmãn điều kiện của Validation Rule thì sẽ hiển thị thông báo đó.

i. Required: Nếu thiết lập thuộc tính này là Yes thì trường này không được phép có giá trịNull.

j. Allow Zero Length: Đối với trường Text hoặc Memo, thuộc tính n ày cho phép có thểđặt giá trị của trường bằng một xâu ký tự có độ d ài bằng Zero hay bằng không (“ “). Xâucó độ dài Zero và giá trị Null không giống nhau.

k. Indexd: Nếu đặt giá trị là Yes thì trường đó được tạo chỉ mục để t ìm kiếm nhanh hơn.Muốn gỡ bỏ hãy đặt lại No.

1.3.2 Truy vấn (Query)Là đối tượng trích rút từ bảng theo những điều kiện nhất định, Query cũng l à tệp có dạngbảng.1.3.3 Biểu mẫu (Form)Là đối tượng được thiết kế để nhập hoặc hiển thị dữ liệu1.3.4 Báo cáo (Report)Là đối tượng được thiết kế để định quy cách, tính toán, in v à tổng hợp dữ liệu được chọn.1.3.5 MacroLà đối tượng định nghĩa một hoặc nhiều h ành động (thao tác) mà Access sẽ thực hiện một lầnkhi chạy.1.3.6 ModuleLà đối tượng chứa các thủ tục được lập trình bằng Access Basic để xử lý tự động.Chú ý: Bạn sẽ làm quen với Table, Query, Form, Report, Macro v à Module ở những phần sau.

1.4 Khởi động AccessCung cách khởi động Access cũng giống như khởi động Word, nếu sử dụng nút Start thì: Khởi động Windows Kích vào nút Start Di chuyển trỏ chuột đến Program, một Menu con xuất hiện Nếu thấy Microsoft Access, hãy kích vào nó, nếu không hãy di chuyển trỏ chuột đến

Microsoft Office, một Menu con nữa xuất hiện và kích vào Microsoft Access.1.5 Thoát khỏi Access.

1. Từ thanh MENU chọn File/Exit hoặc2. kích nút Close: trên thanh tiêu đề hoặc3. Gõ Alt + F4

Page 5: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 5

Chương 2: Thiết kế và cài đặt một CSDL

2.1 Thiết kế các bảng và xác định mối quan hệBảng là đối tượng đầu tiên cần phải tạo trước khi tạo ra những đối tượng khác, do vậy việcthiết kế các bảng trong một CSDL phải bảo đảm một số quy tắc nhất định để CSDL có tínhhợp lý trong lưu trữ và xữ lý về sau. Ta hãy tuần tự xét một số yếu tố sau.2.1.1 Đặt vấn đềTrong một xí nghiệp, hàng ngày người ta xuất vật tư theo phiếu xuất kho sau:

Phiếu xuất khoPhiếu xuất Ngày xuất Người nhận hàng Địa chỉ Mã vật tư 1 Mã vật tư 2P1 02/03/07 Lê Thị Nhung 35 Tràng Thi M1 M2P2 12/03/07 Lê Thị Nhung 35 Tràng Thi M2P3 15/03/07 Lê Anh Quân 13 Hàng bài M1 M2P4 22/03/07 Lê Thị Nhung 35 Tràng Thi M1Ta thấy cấu trúc bảng trên có những điều không hợp lý như sau: Cùng một người nhận vật tư, nhưng ở phiếu khác thì ta phải ghi lặp lại tên và địa chỉ của

họ. Nếu có thêm vật tư M3, M4, v.v.. thì cấu trúc trên bị thiếu cột, nghĩa là cấu trúc trên

không phù hợp nữa, mặt khác rất lãng phí để ghi tên trường mã vật tư.Cho nên vấn đề đặt ra là phải thiết kế lại bảng đó sao cho hợp lý h ơn. Thật ra để thiết kế cácbảng có liên quan với nhau một cách tốt nhất trong một CSDL l à kiến thức sâu sắc của lýthuyết về CSDL (đại số quan hệ) , nhưng ở đây ta chỉ dùng trực giác để xây dựng một cáchtương đối, đáp ứng nhu cầu ứng dụng ngay của Access m à thôi.2.1.2 Một số quy tắc về xây dựng CSDLQuy tắc 1: Mỗi trường trong bảng phải mô tả một loại thông tin duy nhất.Ta thấy ba trường (mã vật tư 1, mã vật tư 2) của bảng trên, cùng mô tả một loại thông tin làmã vật tư. Do đó ta nên tổ chức một cột Mã Vật Tư chứa đựng cho mọi loại vật tư, cụ thể tasửa lại bảng trên thành bảng sau:

Phiếu xuất khoSố phiếu Ngày xuất Người nhận Địa chỉ người nhận Mã vật tư

P1 02/03/07 Lê Thị Nhung 35 Tràng thi M1P1 02/03/07 Lê Thị Nhung 35 Tràng thi M2P2 12/03/07 Lê Thị Nhung 35 Tràng thi M2P3 15/03/07 Lê Anh Quân 13 Hàng bài M1P3 15/03/07 Lê Anh Quân 13 Hàng bài M2P4 22/03/07 Lê Thị Nhung 35 Tràng thi M1

Đến đây ta thấy “được cái nọ” (giảm số trường) thì lại “mất cái kia” (thêm bản ghi), quá trìnhnào mà chẳng như vậy! Nhưng ở đây rồi ta sẽ thấy “được” nhiều hơn, hiện tại “được” là giảmsố trường còn nhiều bản ghi thì ta sẽ cải tiến sau.Quy tắc 2: Mỗi bản ghi có một số trường tối thiểu, nhờ nó mà không có các bản ghi trùngnhau. (số trường tối thiểu đó gọi là khoá cơ bản)Ví dụ một bảng bao gồm: Họ tên, Ngày sinh, khối thi. Với bảng này tất sẽ có thí sinh trùngtên, trùng ngày sinh và cả trùng khối thi, do đó không hợp với quy tắc 2. Nhưng nếu thêmtrường STT hoặc trường Mã thí sinh là có thể phù hợp với Quy tắc 2.

Page 6: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 6

Mã thí sinh Họ tên Ngày sinh Thi khối00001 Lê Thị Dung 12/03/1976 A00002 Hoàng Lan Phương 11/11/1978 B00003 Lê Thị Dung 12/03/1976 A

Nhờ trường (Mã thí sinh) mà bản ghi 1 và 3 là khác nhau. Ta gọi trường Mã thí sinh là trườngkhoá. Bảng phiếu xuất kho ở trên khoá cơ bản là gì? Rõ ràng là trường Số phiếu và Mã vật tư.Quy tắc 3: (Các trường trong bảng phải đầy đủ v à liên quan đến khoá cơ bản hay còngọi là liên quan đến chủ thể của bảng (điều này được gọi là phụ thuộc hàm)Theo quy tắc trên có nghĩa là phải đạt 2 yêu cầu: Yêu cầu thứ nhất là phải đầy đủ các trường, ví dụ bảng phiếu xuất kho có khoá c ơ bản là

(Số phiếu và Mã vật tư) phải là của ai? (Họ tên), ngày nào xuất (Ngày xuất) v.v.. nếu thiếumột trong những trường đó thì chủ thể (xuất kho) không có ý nghĩa.

Yêu cầu thứ hai là các trường đó phải liên quan đến khoá cơ bản, ví dụ ta không nên thêmtrường (bậc lương người nhận) vì điều đó không liên quan đến chủ thể xuất kho (ta gọi làkhông phụ thuộc hàm), vì vậy mà bảng trên nên tách thành 2 bảng sau:

Phiếu khoSố phiếu Ngày xuất Người nhận Địa chỉ

P1 02/03/07 Lê Thị Nhung 35 Tràng thiP2 12/03/07 Lê Thị Nhung 35 Tràng thiP3 15/03/07 Lê Anh Quân 13 Hàng bàP4 22/03/07 Lê Thị Nhung 35 Tràng thi

Vật tưSố phiếu Mã vật tưP1 M1P1 M2P2 M2P3 M1P3 M2P4 M1

Quy tắc 4: Có thể thay đổi được một trường bất kỳ (trừ các khoá cơ bản) mà không ảnhhưởng đến mọi trường khác.Ở bảng Phiếu kho, nếu ở dòng 1 ta “vô tình” gõ tên người nhận là Lê Anh Quân (đáng lý là

Lê Thị Nhung) thì sẽ dẫn đến thêm một sai lầm nữa ở trường Địa chỉ vì Lê Anh Quân không ở35 Tràng Thi. Thực ra Địa chỉ là phụ thuộc hàm vào Người nhận. Do đó nên tách bảng Phiếukho thành 2 bảng: Phiếu và Địa chỉ như sau:

PhiếuSố phiếu Ngày xuấtN Người nhậnP1 02/03/07 Lê Thị NhungP2 12/03/07 Lê Thị NhungP3 15/03/07 Lê Anh QuânP4 22/03/07 Lê Thị Nhung

Người nhậnNgười nhận Địa chỉLê Thị Hoa 35 Tràng thiLê Anh Quân 13 Hàng bài

Page 7: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 7

Ta kiện toàn bảng Người nhận thật chính xác, sau đó nếu có nhỡ v ào “Lê Anh Quân” thay vịtrí “Lê Thị Nhung“ ở bảng Phiếu thì địa chỉ Lê Anh Quân vẫn không thay đổi.2.1.3 Các bảng được xây dựng (trong một chủ thể) phải có mối quan hệNếu ta thiết kế tốt th ì các bảng đó sẽ có mối quan hệ, nhờ mối quan hệ đó m à ta lần ra kết quảkhi có yêu cầu. Ví dụ ở bảng Phiếu, Vật tư và Địa chỉ, nếu có yêu cầu là hãy xem số phiếuP3 xuất vào ngày nào, ai nhận, họ ở đâu và có những mặt hàng nào? Bước 1: Tìm P3 ở bảng Phiếu biết được ngày xuất là: 15/03/99 và người nhận là: Lê Anh

Quân Bước 2: Tìm Lê Anh Quân ở bảng Người nhận để biết địa chỉ là: 13 Hàng bài Bước 3: Tìm P3 ở bảng Vật tư để biết mặt hàng là: M, M2Như vậy bảng kết quả (truy vấn hay vấn tin) sau:

Vấn tinSố phiếu Ngày xuất Người nhận Địa chỉ Mã vật tưP3 15/03/07 Lê Anh Quân 13 Hàng bài M1P3 15/03/07 Lê Anh Quân 13 Hàng bài M2

Nhờ các trường: Số phiếu, Người nhận mà ta tìm ra kết quả bảng Vấn tin trên, ta nói rằng haitrường đó là khoá liên kết ngoài (Foreign key)2.1.3.1 Quan hệ 1:nQuan hệ 1: n là quan hệ mà mỗi bản ghi bất kỳ trong bảng thứ nhất có quan hệ với nhiều bảnghi trong bảng thứ hai. Ví dụ bảng Phiếu và bảng Vật tư là quan hệ 1: n, nghĩa là một phiếuxuất kho có thể có nhiều vật tư; hay bảng Người nhận và bảng Phiếu là quan hệ 1: n bởi vìmột người nhận hàng có thể xuất hiệu trong nhiều phiếu.2.1.3.2 Quan hệ 1:1Quan hệ 1: 1 là quan hệ mỗi bản ghi bất kỳ trong bảng thứ nhất có quan hệ với 1 bản ghi trongbảng thứ 2. Ví dụ ta không muốn bảng Người nhận xuất hiện trường Đạo đức của họ, nên tatổ chức các bảng Người nhận là Người nhận 1 và Đạo đức như sau: (Bảng Đạo đức giữ “bímật” chẳng hạn)

Người nhận 1Mã người nhận Người nhận Địa chỉ

00001 Lê Thị Nhung 35 Tràng thi00002 Lê Anh Quân 13 Hàng bài

Đạo đứcMã người nhận Đạo đức00001 Tốt00002 Có tiền án

Hai bảng trên có quan hệ 1:1

2.2 Cài đặt một bảng lên đĩa thông qua AccessGiả sử có một cưả hàng một ngày (ngày 14/12/07 chẳng hạn) có bản thống kê bán hàng trongngày đó như sau:

Ngày Mã mặthàng

Tên hàng Đơn giá(đồng)

Số lượng Tổng tiềntrong ngày

Đã thanhtoán

14/04/07 M1 Radio 1000000 2 15000000 10000000M2 Tủ lạnh 4000000 1M3 Ti vi 3000000 3

Ta xây dựng một bảng cho 3 ngày bán hàng như sau:

Page 8: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 8

Bán hàngSTT Ngày

thángMã Mặt

hàngTên hàng Đơn giá Số

lượngTổng tiền

trong ngàyĐã thanh

toán1 14/12/07 M1 Radio 1000000 2 15000000 100000002 14/12/07 M2 Tủ lạnh 4000000 1 15000000 100000003 14/12/07 M3 Ti vi 3000000 3 15000000 100000004 15/12/07 M1 Radio 1000000 1 6000000 40000005 15/12/07 M2 Tủ lạnh 4000000 1 6000000 40000006 16/12/07 M2 Tủ lạnh 4000000 2 17000000 70000007 16/12/07 M3 Ti vi 3000000 3 17000000 7000000

Ta thấy khoá cơ bản là STT. Như đã phân tích ở trên, ta không lưu bảng này mà tách thành 4bảng sau:Bảng thứ nhất có tên là Số lượngB: Tên tệp là SoLuong

Số lượngSTT Ngày tháng Mã mặt hàng Số lượng (Cái)1 14/12/07 M1 22 14/12/07 M2 13 14/12/07 M3 34 15/12/07 M1 15 15/12/07 M2 16 16/12/07 M2 27 16/12/07 M3 3

Khoá cơ bản là Số thứ tự (STT)Bảng thứ 2 có tên là Doanh sốB: Tên tệp là DoanhSo

Doanh sốNgày tháng Tổng tiền trong ngày Đã thanh toán14/12/07 15000000 1000000015/12/07 6000000 400000016/12/07 17000000 7000000

Khoá cơ bản là Ngày thángBảng thứ 3 có tên Loại hàng tên tệp là: LoaiHang

Loại hàngMã mặt hàng Tên hàngM1 RadioM2 Tủ lạnhM3 Ti viKhoá cơ bản là Mã mặt hàngBảng thứ 4 có tên DơnGia

Đơn giáTên hàng Đơn giáRadio 1000000Tủ lạnh 4000000Ti vi 3000000Khoá cơ bản là: Tên hàngSau khi thiết kế các bảng có mối quan hệ trong một CSDL nh ư trên, việc tiếp theo là cài chúnglên đĩa thông qua Access như thế nào? sau đây là trình tự các bước:Bước 1: Khởi động Access, giao diện sau xuất hiện:

Page 9: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 9

Chọn Create a new file, ta có hộp thoại:

Bước 2: Chọn Bank DatabaseGõ tên CSDL ở File Name là BanHang và chọn Create sau đó hộp thoại có dạng:

Hãy chọn tables và New, sau đó hộp thoại sau xuất hiện:

Page 10: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 10

Ta thấy trên hộp thoại xuất hiện các thành phần: Datasheet View : Trưng diện bảng dữ liệu Design View : Tạo cấu trúc bảng Table Wizard : Tạo từ tệp có sẵn Inport Table : Tạo từ việc Import Link Table : Tạo từ liên kếtNhiệm vụ của chúng ta là tạo cấu trúc bốn bảng: SoLuong, DoanhSo, LoaiHang v à DonGia.Do đó hãy chọn Design View ta có:

Ở dòng 1 ứng với cột Field Name gõ vào: Stt và gõ Enter hoặc gõ mũi tên phải, sau đó ở cộtData Type hãy kích vào mũi tên xuống để chọn kiểu dữ liệu, ở đây ta chọn Autonumber (vìdữ liệu là 1, 2, 3.v.v..), như hình sau:

Page 11: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 11

Tiếp tục ở dòng 2 ứng với cột Field Name gõ vào tên trường: Ngay_Thang và gõ mũi tênphải, sau đó kích vào mũi tên xuống để chọn kiểu dữ liệu, ở đây ta chọn Date/Time. Tiếp đếnchọn Format và chọn Short Date (kiểu ngày / tháng / năm), không chọn Input Mask (vì dữliệu Date /Time đã được chuẩn hoá không cần khuôn nhập liệu), không chọn các mục sau đó.Ở dòng 3 ứng với cột Field Name gõ vào tên trường: Ma_Mat_Hang và gõ Enter hoặc mũitên phải, sau đó kích vào mũi tên xuống để chọn kiểu dữ liệu, ở đây ta chọn Text, tiếp đếnchọn Field Size để gõ vào độ dài (ở đây ta chọn Interger).Ở dòng 4 ứng với mũi tên phải gõ vào tên trường: So_Luong và gõ Enter hoặc mũi tên phải,sau đó kích vào mũi tên xuống để chọn kiểu dữ liệu, ở đây ta chọn Number, tiếp đến chọnField Size để gõ vào độ dài (ở đây ta chọn Interger). Sau khi đưa xong các chọn File /Close vàAccess hỏi:

Hãy chọn Yes và gõ tên tệp: SoLuong vào Table Name như h ình sau:

Hãy chọn OK để kết thúc. Như vậy ta đã tạo xong cấu trúc cho bảng SoLuong. Hãy chọnFile/Close để tạo cấu trúc cho bảng DoanhSo, sau đó lại tiếp tục cho bảng LoaiHang vàDongia. Sau khi gõ xong cấu trúc 4 tệp trên ta có hình sau:

Việc tiếp theo là nạp dữ liệu vào cấu trúc các bảng trên, giả sử ta nạp dữ liệu cho bảngSoluong:Chọn bảng Coluong và chọn Open, ta có:

Page 12: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 12

Gõ ngày tháng vào trường Ngay_Thang, gõ M1 vào trường Ma_Mat_Hang và gõ mũi tênphải, con trỏ chuyển sang trường So_Luong, gõ vào 2 và Enter, lại tiếp tục như vậy cho đếnhết. Gõ xong ta có:

Để kết thúc hãy chọn § ile/Close, sau đó mở bảng khác để vào dữ liệu như trên.

2.3 Thiết lập mối quan hệBốn bảng trên (DoanhSo, Soluong, Loaihang và DonGia) có các trư ờng: Ngay_Thang (của DoanhSo) quan hệ với Ngay _Thang (của SoLuong) Ma_Mat_Hang (của SoLuong) quan hệ với Ma_Mat_Hang (của LoaiLang) Ten_Hang (của LoaiHang) quan hệ với Ten _Hang (của DonGia) Ta thiết lập các mối quan hệ đó để về sau d ùng đến như sau: Kích vào nút (nút Relationships) trên thanh công c ụ sau đó ta có hộp thoại:

Sau đó thao tác: Chọn tệp DoanhSo và kích Add Chọn tệp SoLuong và kích Add Chọn tệp LoaiHang và kích Add Chọn tệp DonGia và kích Add Cuối cùng kích vào Close và ta có hộp thoại:

Page 13: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 13

Hãy thiết kế mối quan hệ bằng cách: Kích vào trường Ngay_Thang (của DoanhSo) kéo vào trường Ngay_Thang (của SoLuong)

sau đó hộp thoại sau hiện ra:

Hãy chọn Create. Kích vào trường Ma_Mat_Hang (của SoLuong) kéo v ào trường của Ma_Mat_Hang (của

LoaiHang) và chọn Create Kích vào trường Ten _Hang (của LoaiHang) kéo vào trường Ten _Hang (của DonGia) và

chọn Create, cuối cùng ta có hình ảnh:

Muốn xoá mối quan hệ, hãy kích vào đường quan hệ và gõ phím Delete.

2.4 In một bảngĐể in một bảng ta thao tác sau:

Chọn bảng (giả sử ta chọn bảng SoLuong) và chọn Open, ta có hộp thoại:

Page 14: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 14

Chọn File/Page Setup, chọn Margins để cài đặt lề (trên, dưới, traí, phải) chọn Page đểchọn hướng in và kích cỡ giấy.

Chọn File/Print ta có hộp thoại in như sau:

Hãy chọn những thông số in thích hợp (All hoặc từ trang nào đến trang nào v.v..) cuối cùngchọn OK để in.Câu hỏi và bài tập (chương 1,2)

1. CSDL là gì?2. Khoá cơ bản là gì?3. Nêu những nguyên tắc thiết kế CSDL?4. Access có những đối tượng nào?5. Một bảng bao gồm những yếu tố nào?6. Trường có những thuộc tính nào, cho biết một số thuộc tính?7. Hãy khởi động Access?8. Hãy tự thiết kế 2 bảng sau:Bảng 1B: có tên Lop bao gồm:Mã sinh viên, Họ đệm, Tên, Ngày sinhBảng 2B: có tên Diem bao gồm:Mã sinh viên, Điểm toán, Điểm lý, Điểm hoáHãy tạo cấu trúc bảng và nạp dữ liệu cho bảng9. Thiết kế mối quan hệ 2 bảng ở bài 810. Hãy bỏ mối quan hệ ở bài 911. Với câu 8 hãy thêm một bảng Đạo đức gồm: Mã sinh viên, Hạnh kiểm. Hãy thiết lập

mối quan hệ giữa 3 bảng đó.

Page 15: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 15

Chương 3: Sửa cấu trúc và sửa dữ liệu bảng Một bảng dù thiết kế cẩn thận đến đâu, sau một thời gian ta vẫn thấy cần có sự thay đổi về

cấu trúc cũng như dữ liệu của bảng, ví dụ như: Đổi tên trường Thêm, bớt một số trường Thay đổi kiểu trường Thay đổi độ dài trường Thay đổi vị trí các trường Chèn thêm bản ghi Xoá bớt bản ghi Cập nhật dữ liệu mới v.v...Sau đây chúng ta nói về cung cách sửa cấu trúc và sửa dữ liệu của tệp bảng đó.

3.1 Sửa cấu trúc bảng Hãy mở bảng (giả sử bảng SoLuong) ở dạng Design, sau đó ta có hình ảnh sau:

3.1.1 Thay đổi tên trường Kích vào tên trường cần sửa, để đưa trỏ text đến đó Sau đó gõ tên trường mới vào3.1.2 Chèn thêm trường Kích vào tên trường cần sửa, để đưa trỏ text đến đó Chọn Insert/Rows, sau đó dòng đó trống Gõ tên trường cần chèn vào, đồng thời xác định kiểu và độ dài trường luôn.3.1.3 Xoá tên trường Chọn trường bằng cách kích chuột vào đầu dòng đó (khi trỏ chuột biến thành mũi tên

phải), hoặc đưa trỏ text về trường đó Chọn Edit/Delete Rows, sau đó hộp thoại hiện ra:

Page 16: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 16

Nếu định xoá thật hãy kích vào Yes, nếu không kích vào No3.1.4 Thay đổi kiểu dữ liệu trườngKhi dữ liệu từ một kiểu này được thay đổi thành kiểu dữ liệu khác, Access sẽ xử lý theo cácnguyên tắc sau:

1. Chuyển từ text sang các kiểu sau : Memo: Access sẽ xoá các chỉ mục của trường text Number: văn bản phải chỉ chứa các ký số, dấu thập phân và dấu phân cách hợp lệ Date/Time: Văn bản có dạng ngày mà máy có thể nhận dạng được, ví dụ 12-Dec-

97 7:23PM v.v.. Currency: Văn bản chỉ chứa các số và dấu phân cách hợp lệ. Counter: Không thể được nếu trường đã có dữ liệu Yes/No: Văn bản phải là một trong các giá trị sau: Yes, No, True, False, On, Off

2. Chuyển từ Memo sang kiểu sau: Text: Access sẽ cắt bỏ phần văn bản dài quá 255 ký tự Number: Văn bản Memo phải chỉ chứa các số và dấu phân cách hợp lệ Date/Time: Văn bản Memo phải chứa các giá trị có thể nhận dạng đ ược, ví dụ: 9-

Nov-96 11:23PM Currency: Văn bản Memo chỉ chứa các số và dấu phân cách hợp lệ, ví dụ $

1,234,340.50 Counter: Không đổi được nếu trường đã có dữ liệu Yes/No: Văn bản phải là một trong các giá trị sau: Yes, No, True, False, On, Off

3. Chuyển từ Number sang các kiểu sau : Text: Không hạn chế Memo: Không hạn chế Date/Time: Số phải nằm trong vùng hợp lệ Currency: Không hạn chế Counter: Không được nếu trường đang chứa dữ liệu Yes/No: Giá trị Null hoặc Zero chuyển thành No, còn giá trị khác thành yes.

4. Chuyển từ Date/Time sang các kiểu sau: Text: Không hạn chế Memo: Không hạn chế Number: Không hạn chế Currency: Không hạn chế Counter: Không được nếu trường đang chứa dữ liệu Yes/No: 12 : 00 : 00 AM hoặc Null đổi thành No, các giá trị khác thành Yes

5. Chuyển từ Currency sang các kiểu sau: Text: Không hạn chế Memo: Không hạn chế Number: Được nhưng phải phù hợp với độ lớn Date/Time: Phải phù hợp với độ lớn Counter: Không được, nếu trường đang chứa dữ liệu Yes/No: Zero và null sẽ bằng No, còn lại bằng Yes

6. Chuyển từ Counter sang các kiểu sau: Text: Không hạn chế Memo: Không hạn chế Number: Không hạn chế

Page 17: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 17

Date/Time: Giá trị phải trong khoảng phù hợp Counter: Không hạn chế Yes/No: Tất cả để bằng Yes

7. Chuyển từ Yes /No sang các kiểu sau: Text: chuyển thành chữ “Yes” hoặc “No” Memo: chuyển thành chữ “Yes” hoặc “No” Number: No=0; Yes=1 Date/Time: No=12:00 00AM; Yes=12/29/1899 Currency: No=0; Yes=$1 Counter: Không chuyển được

8. Thay đổi độ dài dữ liệuTrường văn bản có độ dài cực đại là 255, nhưng cũng có thể ngắn 1 ký tự. Nếu độ d ài củatrường văn bản không được quy định thì Access sẽ gán độ dài mặc định là 50, khi đã quy địnhđộ dài cho trường thì không được phép nhập vào độ dài lớn hơn. Độ dài của trường số thì theokiểu số nào: Byte, Integer v.v..

9. Lỗi chuyển đổiKhi lưu cất một bảng đã sữa đổi, Access có thể thông báo lỗi n ếu quá trình chuyển đổi có gâylỗi, ví dụ chuyển từ Integer sang Byte, nếu số nguy ên >255 thì sẽ gây lỗi, tuỳ ý định cuả ta màkích vào Yes hay Cancel của hộp thoại thông báo lỗi.3.1.5 Tách một bảngSau khi làm việc một thời gian ta nhận thấy có một số tr ường thực ra không dùng đến hoặc ítdùng đến, nếu ta tách thành một bảng mới không có các trường đó thì có khi xử lý bảng nhanhhơn, việc làm đó có thể thực hiện đơn giản bằng cách: Sao thêm một bảng mới từ bảng cần tách Mở bảng mới ở chế độ Design và xoá đi những trường không cần đến Thiết lập lại các quan hệ nếu cần

3.2 Thao tác và sữa dữ liệu trong bảngĐể làm việc với bảng trước hết ta hãy mở bảng đó bằng cách: Mở CSDL Kích đúp vào bảng cần làm việc, sau đó bảng xuất hiện ở dạng Datasheet:

3.2.1 Một số thao tác1. Di chuyển trong bảngởëgóc dưới bên trái cửa sổ Datasheet là hộp số hiệu bản ghi. Hãy kích chuột vào đó và gõ vàomột số hiệu bản ghi (ở trên ta đã gõ số 6) để đưa con trỏ bản ghi về bản ghi đó, phía bên phảihộp số hiệu bản ghi là tổng số bản ghi (ở trên là số 7-bảy bản ghi):

Page 18: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 18

Một số phím gõ tắt hay dùng như sau:PgUp : Lên một trangPgDn : Xuống một trangCtrl + PgUp : Sang trái một trangCrtl + PgDn : Sang phải một trangTab : Trường tiếp theoShift + Tab : Trường đứng trướcHome : Trường đầu tiên của bản ghi hiện thờiEnd : Trường cuối cùng của bản ghi hiện thời

: lên một bản ghi : Xuống một bản ghi

Ctrl + : Về bản ghi đầu tiênCrtl + : Về bản ghi cuối cùngCrtl + Home : Về đầu giá trị của trườngCrtl + End : Về cuối giá trị cảu trường2. Thay đổi chiều cao hàng

Chọn hàng cần thay đổi Chọn Format/Row Height sau đó ta có hộp thoại:

Gõ số đó vào Row Height và chọn OK3. Thay đổi độ rộng cột

Chọn cột cần thay đổi Chọn Format/Column Width :

Gõ số đo vào Column Width và chọn OK4. Giấu và hiện các cột

Chọn cột cần giấu Chọn Format/Hide Columns

Page 19: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 19

Muốn hiện lại hãy chọn Format/Unhide Columns sau đó:

Đặt dấu kiểm vào tên trường cần hiện lại (Mat_Vat_Tu) v à chọn Close5. Cố định các cột trên màn hìnhMột bảng có thể có rất nhiều cột, nhiều khi ta muốn cố định một số cột trên màn hình để quansát trong khi vẫn cứ dịch trái, phải mà các cột đó vẫn còn. Ta thao tác như sau:

Chọn các cột đó Chọn Format/Freeze Columns Muốn không cố định nữa hãy chọn Format/Unfreeze All Columns

6. Chọn phông chữ Chọn chữ cần đặt lại phông Chọn Format/Font Chọn Font, Font Style, Size và OK

3.2.2 Sửa đổi dữ liệu trong bảng1. Thêm một bản ghi

Chọn Insert/New Record sau đó con trỏ bản ghi trở về cuối bảng Gõ bản ghi mới vào

2. Xoá bản ghi Chọn bản ghi cần xoá Chọn Edit/Delete Record sau đó hộp thoại hiện ra và xác nhận Yes nếu định xoá, hoặc

No nếu không xoá3. Sửa dữ liệuDịch trỏ Text đến dữ liệu cần sửa v à sửa lại4. Thay thế dữ liệuKhi sữa giống nhau trong nhiều bản ghi ta n ên chọn chế độ thay thế dữ liệu.

Chọn ô đầu tiên của trường cần sữa và chọn tiếp Edit /Replace sau đó ta có hộp thoại:

Gõ nội dung cần tìm vào Find What: (giả sử M3g) Gõ nội dung cần thay thế vào Replace With: (giả sử M7) Chọn Replace All (nếu muốn thay thế tất cả) và chọn Close

3.2.3 Sắp xếp dữ liệu1. Sắp xếp đơn giản một trường ta làm như sau:

Page 20: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 20

Chọn trường cần sắp xếp

Kích vào nút trên thanh công cụ nếu muốn sắp xếp tăng dần

Kích vào nút trên thanh công cụ nếu muốn sắp xếp giảm dần2. Sắp xếp theo nhiều trường

Chọn Records/Filter/Advanced Filter/Sort như hình sau:

Sau đó ta có hộp thoại:

Mở danh sách trường ở dòng Field

Đặt chế độ sắp xếp ở dòng Sort

Chọn Filter/Apply Filter/Sort như hình sau:

3.2.4 Tìm kiếm và lọc dữ liệu1. Tìm kiếmĐể tiến hành tìm kiếm đơn giản trên một trường cụ thể ta thao tác như sau:

Chọn trường đó Chọn Edit/Find sau đó ta có hộp thoại:

Page 21: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 21

Gõ dữ liệu cần tìm vào Find What, giả sử gõ vào M2 có thể dùng ký tự * thay chomột nhóm ký tự hoặc? thay cho một ký tự bất kỳ

Chọn All vào Search nếu định tìm tất cả Chọn Whole Field vào Match nếu nội dung trọn một trường Chọn Find First để tìm dữ liệu từ đầu bảng v.v.. cuối cùng chọn Close

2. Lọc dữ liệuGả sử ta có bảng sau:

Ta lọc ra những thành phần (và có thể sắp xếp luôn) có Ma_Mat_Hang bằng M2. ta thao tácnhư sau: Chọn Records/Filter/ Advanced Filter/Sort sau đó ta có hộp thoại sau:

Đặt tên trường Ma _Mat_Hang vào dòng Field Đặt Ascending hoặc Descending vào dòng Sort Đặt =”M2”: vào cột Ma_Mat_Hang ứng với dòng Criteria như hình sau:

Page 22: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 22

Chọn Filter/Apply Filter/Sort , sau đó ta có:

Câu hỏi và bài tập chương 31. Sửa những gì thì được gọi là sửa cấu trúc bảng, cho ví dụ2. Hãy tạo bảng có tên khối A với các trường sau:Hodem (Text, 25)Ten (Text, 7)NgaySinh (Date/Time)GioiTinh (Yes/No)Toan (Number)Ly (Number)Hoa (Number) Hãy tạo cấu trúc và nạp 10 bản ghi Hãy đổi tên trường Hodem thành Holot Hãy thêm trường Tong (Number) Hãy chuyển kiểu của NgaySinh (Date/Time) th ành kiểu Number Hãy tạo một bảng khác chỉ chứa Toan, Ly, Hoa, Tong Cũng với bảng của câu hỏi 2: Hãy xếp giảm dần theo điểm toán Hãy xếp tăng dần theo điểm lý Hãy lọc ra những thí sinh có điểm Toán <=3 Hãy lọc ra những thí sinh có điểm Lý <=4 Hãy tìm những thí sinh có điểm Toán là 73. Cũng với bảng của câu hỏi 2: Hãy thực hiện các thao tác: chèn thêm bản ghi, xoá bản ghi, thay thế dữ liệu v à đặt lại

Font cho dữ liệu

Page 23: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 23

Chương 4: Trích rút dữ liệu bằng các truy vấn4.1 Đặt vấn đềĐể đơn giản ta vẫn dùng 4 bảng đã nói ở phần trước như sau:Số LượngSTT Ngày tháng Mã mặt hàng Số lưọng1 14/12/07 M1 22 14/12/07 M2 13 14/12/07 M3 34 15/12/07 M1 15 15/12/07 M2 16 16/12/07 M2 27 16/12/07 M3 3Doanh SốNgày tháng Tổng tiền trong ngày Đã thanh toán14/12/07 15000000 1000000015/12/07 6000000 400000016/12/07 17000000 7000000Loại HàngMã mặt hàng Tên hàngM1 RadioM2 Tủ lạnhM3 Ti viĐơn giáTên hàng Đơn giáRadio 1000000Tủ lạnh 4000000Ti vi 3000000Mặc dù đã làm một số việc với bảng như: Hiện bảng, sửa bảng, xếp bảng, lọc ra những bảnghi theo một chuẩn nào đó v.v.. Nhưng còn nhiều vấn đề nữa thực sự cần thiết ví dụ nh ư: Hiện (và tạo thành bảng mới) những bản ghi (của bảng SoLuong) có m ã mặt hàng là M2? Hiện những bản ghi (DoanhSo) có tổng tiền tro ng ngày từ 15 triệụ trở lên? Lấy những thông tin liên quan đến 4 bảng trên ứng với ngày 14/12/07? Những người nào có mua mặt hàng Radio? Và còn nhiều yêu sách nữa v.v..Những việc làm trên được gọi là truy vấn (Query). Trong Access cho phép ta tạo ra các truyvấn một cách nhanh chóng và đa dạng.

4.2 Truy vấn trong một bảng Mở CSDL BanHang.mdb (ta vẫn trung thành với CSDL này mặc dù nó đơn giản, chính

nhờ đơn giản mà dễ truyền tải nội dung) Chọn Queries và chọn New sau đó hộp thoại hiện ra:

Page 24: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 24

Bước đầu hãy chọn Design View và chọn OK, một hộp thoại khác xuất hiện, h ãy chọnbảng SoLuong rồi kích vào Add và chọn Close, hộp thoại Query1 ra đời như sau:

Đến đây bạn cần làm tiếp những việc: Ở dòng Field: hãy đưa các tên trường cần hiển thị (kích và chọn) Ở dòng Table: sẽ cho biết tên bảng Ở dòng Sort: Nếu định sắp xếp hãy đưa Ascending hoặc Descending vào Ở dòng Show: Nếu định hiện trường đó hãy xác định dấu kiểm Ở dòng Criteria: Đưa vào tiêu chuẩn tìm kiếm Ở dòng Or: Đưa vào tiêu chuẩn tìm kiếm ứng với phép toán Logic ORVí dụ: Để hiển thị những bản ghi có Ma_Mat_Hang=”M2” hoặc Ma_Mat_Hang=”M3”, h ìnhsau:

Page 25: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 25

Hãy chọn Query/Run và ta có kết quả:

Hãy kích vào nút Close trên thanh tiêu đề Query1 và đưa tên Query vào (giả sử ta gõ tênQuery là: QuerySoLuong) hộp thoại quay về:

Như vậy ta đã tạo được một Query có tên QuerySoLuong (thực chất cũng là một bảng).

Page 26: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 26

4.2.1 Một số phép toán dùng để nhập các tiêu chuẩnTrên dòng Criteria nếu ứng với hai cột đều có ti êu chuẩn, điều đó tương đương với phépAnd. Ví dụ: Hiện những bản ghi (bảng SoLuong) có Ma _Mat_Hang=”M2” v à số lượng là 2,hãy gõ vào như hình sau:

Còn nếu: Hiện những bản ghi có Ma _M at_Hang=”M2” và số lượng là 2 hoặc 1, ta gõ vàonhư hình sau:

1. Các toán tử so sánh gồm:= : Bằng> : Lớn hơn< : Nhỏ hơn>= : Lớn hơn hoặc bằng<= : Nhỏ hơn hoặc bằng<> : Khác2. Các toán tử BETWEEN, IN và LIKEBETWEEN: Dùng để quy định một khoảng giá trị, ví dụ Between 10 and 20 tương đươngcách viết >= 10 and <=20

Page 27: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 27

IN: Dùng để quy định một danh sách các giá trị, ví dụ IN (12, 3, 45) tương đương 12 or 3 or45, hay IN(“(Ha noi”, “Hai phong”, “Da nang”) tương đương “Ha noi” OR “Hai phong” OR“Da nang”LIKE: Dùng để tìm một nhóm ký tự trong một trường văn bản. Cụ thể dấu * dùng để chỉ mộtxâu ký tự có độ dài bất kỳ, dấu ? dùng để chỉ 1 ký tự. Ví dụ hiển thị những bản ghi m à tên mặthàng có chữ cái đầu là T, ta viết: LIKE T*. (Ti vi, Tủ lạnh - bảng DonGia)Ở LIKE còn có thể kèm theo:

Dấu # chỉ một ký tự số ở một vị trrí Dấu! để chỉ sự loại trừ [0-9] để chọn mọi ký tự số [a-z] để chọn mọi ký tự chữ cái

Ví dụ:LIKE “?[a-z]*”: Ký tự đầu bất kỳ, ký tự thứ hai là chữ cái, sau đó là một nhóm ký tự bất kỳ.LIKE “[!0-9]a[a-z]”: Ký tự đầu không phải số, ký tự thứ 2 l à a, ký tự thứ 3 là chữ cái.3. Sử dụng dữ liệu ngày giờ:Các giá trị ngày và giờ luôn phải đặt trong dấu #, ví dụ:# April 23, 2007##3/24/07##6:23PM# (6 giờ 23 chiều)#18:23# (đều là 6h23 chiều)Một số hàm cần nhớ: Day(ngay): Trả lại giá trị ngày trong Date Month(ngay): Trả lại giá trị tháng trong Date Year(ngay): Trả lại giá trị năm trong Date Weekday(ngay): Trả lại giá trị thứ ứng với Date (thứ 1=Chủ nhật) Date(ngay): Trả lại ngày hệ thống.Sau đây là một ví dụ: (ứng với bảng SoLuong). Hiện những bản ghi có Ma_Mat_Hang là“M1” ứng với ngày 14, ta thao tác như sau:

1. Ta định nghĩa thêm một trường mới, giả sử trường có tên là Tinh_Toan (Tính toán).Gõ vào tên trường (Tinh_Toan) và dấu hai chấm, sau đó gõ tiếp hàmDay([Ngay_Thang]) vào sau dấu hai chấm. (Tên trường để trong đấu ngoặc [])

2. Gõ tiêu chuẩn G (=14) vào dòng Criteria ứng với trường Tính_Toán3. Gõ tiêu chuẩn (=”M1”) vào dòng Criteria ứng với trường Ma_Mat_Hang, như hình

sau:

Page 28: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 28

4. Chọn Query /Run ta có kết quả:

Các hàm khác thiết kế tương tự.4.2.2 Tính toánMột số phép toán cần nhớ:+ : Phép cộng;- : Phép trừ;* : Phép nhân;/ : Phép chia\ : Làm tròn hai biểu thức trước khi chia, kết quả cũng làm tròn thành số nguyên;^ : Phép mũ (ab = a^b)Mod: Làm tròn hai biểu thức thành các số nguyên, sau đó lấy số dư của biểu thức thứ nhấtchia cho biểu thức thứ hai& : Ghép nối các xâu văn bảnGiả sử ta có bảng KhốiA nằm trong CSDL Tuyen_sinh.mdb như sau:

Page 29: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 29

Ta có thể tạo thêm một trường Tong_Diem (Tổng điểm) để cộng các điểm Toán, Lý, Hoá.Hãy gõ như sau:

Chọn Query/Run để xem kết quả:

Page 30: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 30

4.2.3 Sử dụng Expression BuilderAccess có trình tiện ích Expression Builder dùng để xây dựng một biểu thức phức tạp, giả sửta phải tính tổng điểm của Toán, Lý, Hoá (tuy ví dụ n ày không phức tạp, nhưng để chúng ta dễhiểu cách thao tác) bằng tr ình tiện ích trên, ta làm như sau: Tạo một truy vấn từ bảng KhoiA, giả sử truy vấn sau:

Đưa trỏ chuột vào trường có tên Tong _Diem và hai chấm (:). Chọn Expression Buildertrên thanh công cụ, sau đó hộp thoại hiện ra:

Page 31: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 31

Kích đúp vào Tables và kích vào bảng KhoiA ta có hộp thoại:

Đến đây ta làm tiếp: Chọn DiemToan và chọn Paste Chọn dấu + Chọn DiemLy và chọn Paste Chọn dấu + Chọn DiemHoa và chọn PasteSau đó hộp thoại có hình sau:

Page 32: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 32

Chọn tiếp OK ta có:

Chọn Query/Run ta có kết quả:

Page 33: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 33

4.2.4 Truy vấn theo nhómCó lúc ta chỉ muốn biết tổng số theo từng nhóm dữ liệu. Ví dụ ta muốn biết trong ng ày14/12/07 (bảng SoLuong) số lượng các mặt hàng bán ra là bao nhiêu? Hay số lượng ứng vớimặt hàng M1 bán ra trong các ngày là bao nhiêu? v.v.. Rõ ràng ta ph ải tính tổng theo nhóm.Để tính toán người ta thường dùng các hàm sau: Sum: Tính tổng mỗi trường trong mỗi nhóm. Avg: Tính tổng trung bình của trường trong mỗi nhóm. Min: Tìm giá trị nhỏ nhất của trường trong mỗi nhóm Max: Tìm giá trị lớn nhất của trường trong mỗi nhóm Count: Cho biết số bản ghi của trường trong nhómSau đây là ví dụ về truy vấn theo nhóm; Ta trở lại bảng SoLuong như sau:

1. Nhóm theo ngày thángCâu hỏi: Trong 3 ngày 14, 15, 16 tháng 12 năm 2007 s ố lượng bán ra trong mỗi ngày là baonhiêu (bằng mắt ta biết ngay 14/12/2007 l à 6 cái, 15/12/2007 là 2 cái và 16/12/2007 là 5 cái).Ta tạo truy vấn như sau: Tạo truy vấn ứng với bảng SoLuong:

Page 34: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 34

Kích vào nút trên thanh công cụ hoặc chọn View/Totals, ta có hộp thoại sau:

Ta thấy xuất hiện thêm dòng Total, hãy đưa trường Ngay_Thang vào cột thứ nhất ở dòngField và Group By vào dòng Total. Hãy đưa So_Luong vào cột thứ hai ở dòng Field và Sumvào dòng Total, như hình sau:

Page 35: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 35

Chọn Query/Run hoặc kích vào nút trên thanh công cụ, kết quả như sau:

2. Nhóm theo mã hàngCâu hỏi: ứng với mỗi mã mặt hàng (M1, M2, M3) thì số lượng là bao nhiêu? Tạo truy vấn theo nhóm ứng với bảng SoLuong Đưa vào tên trường Ma _Mat_Hang ở cột thứ nhất ứng với d òng Field Đưa vào tên Group By ở cột thứ nhất ứng với dòng Total Đưa vào tên trường So_Luong ở cột thứ hai ứng với dòng Field Đưa vào tên Sum ở cột thứ hai ứng với dòng TotalTa có hình như sau:

Page 36: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 36

Chọn Query/Run ta có kết quả:

3. Nhóm theo một yếu tố nào đó nhưng có điều kiệnCâu hỏi: Nhóm theo ngày nhưng chỉ với mặt hàng M1 hoặc M2Ta đưa vào truy vấn như sau: Đưa vào tên trường Ngay_Thang ở cột thứ nhất ứng với dòng Field Đưa vào thông số Group By ở cột thứ nhất ứng với dòng Total Đưa vào tên trường So_Luong ở cột thứ hai ứng với dòng Field Đưa vào tên Sum ở cột thứ hai ứng với dòng Total Đưa vào tên trường Ma_Mat_Hang ở cột thứ 3 ứng với dòng Field Đưa vào từ Where ở dòng Total ứng với cột Ma_Mat_Hang Ứng với cột Ma_Mat_Hang ở dòng Criteria gõ =”M1” Ứng với cột Ma_Mat_Hang ở dòng or gõ =”M2”Như hình sau:

Page 37: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 37

Chọn Query/Run ta có:

4. Dùng hàm CountCâu hỏi: ứng với mỗi ngày có bao nhiêu mặt hàng?Tạo truy vấn như hình sau:

Chọn Query/Run ta có:

Page 38: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 38

5. Tạo truy vấn theo hỏi đápCâu hỏi: Số lượng bán ra trong mỗi ngày (ngày nào sẽ hỏi sau) là bao nhiêu?Ta thao tác như sau: Tạo truy vấn theo nhóm ứng với bang So_luong Đưa vào tên trường Ngay_Thang ở cột thứ nhất ứng với dòng Field Đưa vào tên Group By ở cột thứ nhất ứng với dòng Total Đưa vào tên trường So_Luong ở cột thứ hai ứng với dòng Field Đưa vào tên Sum ở cột thứ hai ứng với dòng Total Đưa vào cột thứ nhất ở dòng Criteria tham số: [Bạn hỏi ngày nào?]Hãy xem hình sau:

Chọn Query/Run ta có hộp thoại:

Hãy gõ vào ngày cần hỏi, giả sử gõ vào 12/14/07 và chọn OK ta có:

Page 39: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 39

4.2.5 Truy vấn CrosstabAccess hỗ trợ một loại truy vấn theo nhóm đặc biệt gọi l à Crosstab. Để hiểu loại truy vấn nàychúng ta nên xuất phát từ bảng sau:Giả sử ta có bảng với tên Mua_Hang như sau:

Ta muốn truy vấn thành dạng sau:Ho_Ten_Nguoi_Mua Bia Ruou Nuoc NgotHoang Thi Lan 500000 600000 400000Le Quynh Hoa 750000 300000 250000

Nghĩa là chuyển tên mặt hàng (Bia, Ruou, v.v..) thành cột và tiền mỗi loại nước giải khátthành hàng ứng với tên người mua và cột loại hàng tương ứng.Để làm được điều đó bạn hãy thao tác như sau: Mở truy vấn với bảng Mua_Hang, sau đó vẫn chọn Design View và OK Chọn tiếp Query/Crosstab Query , ta có hộp thoại:

Hộp thoại truy vấn có thêm dòng Crosstab, hãy đưa các thông số vào như sau:1. Ở cột thứ nhất: ứng với dòng Field đưa vào tên trường: Ho_Ten_Nguoi_Mua. ứng với dòng Total đưa vào thông số: Group By.

Page 40: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 40

ứng với dòng Crosstab đưa vào thông số: Row Heading2. Ở cột thứ hai: ứng vớt dòng Field đưa vào tên trường: So_Tien ứng với dòng Total đưa vào hàm: Sum ứ ng với dòng Crostab đưa vào thông số: Value

3. ở cột thứ ba: ứng với dòng Field đưa vào thông số Format([Loai_Hang]) ứng với dòng Total đưa vào thông số: Group By ứng với dòng Crosstab đưa vào thông số: Colunmn Heading

Hãy xem hình ảnh đưa vào như sau:

Chạy truy vấn này (chọn Query/Run) ta có kết quả:

Giải thích: Hàm Format ([Loai_Hang]) sẽ tạo các tên cột ứng với loại hàng, ở trên tên ngầm định

của cột là Exprl: hoặc tự đặt trước khi gõ hàm Format() Ở cột thứ nhất ta chọn Row Heading ứng với dòng Crosstab bởi vì ta định họ tên người

mua vẫn phân bố theo dòng. Ở cột thứ hai ta chọn Sum ứng với Total (thực ra trong trường hợp này chưa phải tính

tổng, vì có một giá trị) và Value ứng với dòng Crosstab bởi vì ta định biến giá trị (tiền) đóphân bố theo dòng.

Ở cột thứ ba chọn Column Heading ứng với dòng Crosstab bởi vì ta định biến tên mặthàng đóng vai trò cột nhờ hàm Format([Loai_Hang]).

Một số ví dụ khác:

Page 41: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 41

Ví dụ 1: cho bảng người mua hàng sau:STT Họ tên người mua Tên hàng Số lượng (cái) Đơn giá1 Hoàng Thị Dung Radio 10 10000002 Hoàng Thị Dung Tủ Lạnh 5 40000003 Hoàng Thị Dung Ti vi 20 35000004 Lê Thuý Hương Radio 5 10000005 Lê Thuý Hương Tủ Lạnh 10 40000006 Lê Thuý Hương Ti vi 4 35000007 Nguyễn Văn Thanh Ti vi 10 3500000

Ta tạo một truy vấn Crosstab (theo tên người mua) nhưng đồng thời phải tính tổng tiền củatừng loại hàng. Hãy tạo với tên bảng là Vat_tu như sau:

Hãy tạo một truy vấn Crosstab và gõ vào như sau:

Chạy truy vấn này ta có kết quả:

Page 42: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 42

Giải thích: ở cột hai (hộp thoại truy vấn) ta tạo th êm một trường có tên TongTien:TongTien=SoLuong*DonGia đồng thời dùng cột này làm giá trị (Value)Ví dụ 2: Cho bảng xuất gạo theo tháng sau:

Tạo một truy vấn Crosstab như sau:

Chạy truy vấn trên và kết quả:

4.3 Truy vấn trên nhiều bảngCho đến lúc này ta mới chỉ làm việc trên một bảng duy nhất. Với kiến thức đó ta có thể dễdàng xây dựng các truy vấn dựa trên quan hệ nhiều bảng và đặt chúng vào một cửa sổ riêng.Để dễ nắm bắt kiến thức mới ta vẫn l àm việc với CSDL BanHang.mdb với 4 bảng đã nói ởtrên như sau:

SoLuong

Page 43: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 43

Doanh_So

LoaiHang

DonGia

Ta quy định cách viết: DoanhSo.Ngay_Thang (là trường Ngay_Thang của bảng DoanhSo).Như vậy:DoanhSo.Ngay_Thang .....>SoLuong.Ngay_Thang

SoLuong.Ma_Mat_Hang .....> LoaiHang.Ma_Mat_Hang

LoaiHang.Ten_Hang .....> DonGia.Ten_HangVí dụ 1: Giả sử ta yêu cầu đưa ra một truy vấn gồm có các trường:DoanhSo.Ngay_ThangLoaiHang.Ten_HangSoLuong.So_LuongDonGia.Don_Gia và

Page 44: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 44

Tong: (để tính tiền: Don_Gia*So_Luong)Ta thiết lập một truy vấn có h ình ảnh như sau:

Chạy truy vấn này ta có kết qủa:

Ví dụ 2: Tạo một truy vấn bao gồm: Ngay_Thang, Ma_Mat_Hang, Ten_ Hang, So_Luong,Don_Gia, nhưng chỉ với mã mặt hàng là M1.Truy vấn như hình sau:

Chạy truy vấn ta có:

Page 45: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 45

Ví dụ 3: Giả sử có 3 bảng sau:SoLuong

LoaiHang

DonGia

Hãy tạo một truy vấn tổng (Group By) có th êm một cột để tính tổng tiền.Ta tạo một truy vấn theo nhóm như sau:

Page 46: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 46

Chạy truy vấn này ta có kết quả:

4.4 Sử dụng phương tiện truy vấn Query Wizard1. Truy vấn dùng Simple Query WizardTạo một truy vấn này bằng cách như sau: Mở CSDL BanHang.mdb Chọn Insert /Query ta có hộp thoại:

Chọn Simple Query Wizard và OK ta có:

Page 47: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 47

Chọn bảng ở Tables/Queries (giả sử bảng SoLuong - Như hình trên) Chọn trường ở Available Fields và kích vào mũi tên phải >, nếu chọn tất cả các trường

hãy kích vào >> giả sử ta chọn được như sau:

Nếu không vừa ý, ta lại đưa trường về chỗ cũ bằng cách kích v ào < hoặc << Nếu đồng ý hãy kích vào Next ta có hộp thoại tiếp:

Page 48: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 48

Hãy chọn 1 trong 3 chức năng trên: giả sử ta chọn Open the query to view information(mở truy vấn), kích tiếp vào Finish, sau đó ta có hộp thoại:

Còn nếu chọn Modify Query Design (sửa truy vấn) ta có hộp thoại:

Page 49: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 49

Có thể thêm điều kiện cho truy vấn đó, hoặc l àm những vấn đề khác nếu cần, sau đó bạn chạytruy vấn và bạn sẽ có kết quả.2. Truy vấn bằng cách chọn Crosstab Query Wizard Mở CSDL, chọn Insert/Query sau đó hộp thoại New Query hiện ra Chọn Crosstab Query Wizard và chọn OK ta có hộp thoại:

Chọn bảng SoLuong và kích vào Next ta có hộp thoại:

Chọn trường Ngay_Thang và kích Next ta có hộp thoại:

Page 50: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 50

Chọn trường Ma_Mat_Hang và kích Next ta có hộp thoại:

Chọn trường So_Luong, chọn hàm Sum như hình sau:

Page 51: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 51

Kích Next ta có hộp thoại:

Chọn View the Query và kích vào Finsh ta có kết quả:

Page 52: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 52

4.5 Sửa đổi dữ liệu bằng các truy vấn1. Thay thế trườngVí dụ 1: Giả sử bạn phát hiện cửa hàng bên cạnh giảm giá tất cả các mặt hàng 12%, để kinhdoanh có hiệu quả, bạn cũng phải giảm giá, giả sử bạn giảm tất cả các mặt hàng 10%, nghĩa làtrường Don_Gia được giảm 10% cho tất cả các mặt hàng. Việc làm đó được gọi thay thế nộidung trường Don_gia bằng nội dung mới. Hãy thao tác để đạt được kết quả đó như sau: Tạo một truy vấn ứng với bảng DonGia sau đó chọn Query/Update Query ta có hộp

thoại:

Ta nhận thấy có thêm dòng Update To, hãy đưa vào như hình sau:

Hãy chạy truy vấn và Access hỏi:

Page 53: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 53

Nếu xác nhận Yes thì trường đó được cập nhập và kết quả bảng Don_gia mới là:

Ví dụ 2: Giả sử ta có bảng sau (Ban_gao), h ãy giảm giá gạo (trường Don_gia) loại 1 đi 5%

Tạo truy vấn cho bảng này và chọn Query/Update Query và đưa vào các thông số nhưsau:

Chạy truy vấn này và ta có kết quả mới của bảng Ban_gao như sau:

Page 54: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 54

2. Xoá bản ghiGiả sử ta có bảng sau:

KhoiA

Hãy xoá đi những thí sinh có điểm Hoá không quá 4. Ta thao tác nh ư sau: Tạo truy vấn với bảng KhoiAChọn Query/Delete Query sau đó đưa vào thông số như hộp thoại sau:

Chạy truy vấn Access hỏi:

Page 55: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 55

Xác nhận Yes, Access sẽ xoá đi hai bản ghi, kết quả còn lại như sau:

3. Ghép các bản ghi từ một bảng khácGiả sử ta muốn ghép bảng KhoiA và bảng KhoiA1 trong CSDL Tuyen_sinh.mdbBảng KhoiA có dạng như sau:

Bảng KhoiA1 có dạng:

Ta làm như sau: Tạo truy vấn ứng với bảng KhoiA Đưa vào các tên trường cần nối như sau (giả sử ta đưa tất cả các trường):

Page 56: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 56

Chọn Query/Append Query ta có hộp thoại:

Gõ tên bảng cần nối vào (ở đây KhoiA1) và chọn OK ta có hộp thoại:

Chạy truy vấn này, hộp thoại hiện ra:

Page 57: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 57

Hãy xác nhận Yes để Access ghép vào Mở bảng KhoiA1 ta có:

Chú ý: trước khi ghép cần mở khoá của trường nếu trước đó đã có khoá cơ bản4. Tạo một bảng mới bằng một truy vấnGiả sử bảng KhoiA1 sau:

Hãy tạo một bảng mới chỉ chứa SBD, Toan, Ly, Hoa, ta thao tác nh ư sau:

Page 58: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 58

Tạo truy vấn từ bảng KhoiA1 và đặt các thông số như sau:

Chọn Query/Make-Table Query ta có hộp thoại:

Gõ vào tên bảng mới ở Table Name (ở đây là KhoiAMoi) chọn tiếp OKChạy truy vấn này và ta và xác nhận Yes ở hình sau::

Két quả là bảng KhoiAMoi có dạng:

Page 59: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 59

Chú ý: Ta cũng có thể thêm điều kiện ví như: Chỉ tạo thành bảng mới với những thí sinh cóđiểm Toán từ 8 trở lên v.v.. (nghĩa là tạo thành bảng mới có điều kiện)Bài tập1. Hãy tạo một CSDL có bảng sau:

STT Ho Dem Ten Toan Ly Hoa1 Hồ Van Thanh 5 6 72 Lê Thi Hoà 7.5 3 63 Trần Lê Hùng 7 8 44 Hoàng Thị Loan 6 8 85 Hồ Huy Trung 8 5 36 Nguyễn Hoàng Quân 8 3 47 Đỗ Hoa Quỳnh 5 2 78 Lê Anh Quân 7 8 5

a. Tạo truy vấn điều kiện Toan>=7b. Tạo một truy vấn điều kiện Toan>=7 và Ly >=6c. Tạo truy vấn điều kiện Toan>=7 và Ly >=6 và Hoa >=5d. Tạo truy vấn điều kiện Ten có chữ Q đứng đầue. Tạo truy vấn điều kiện Dem là thị hoặc Dem có chữ cái H đứng đầuf. Chèn thêm một trường có tên NgaySinh vào cột thứ hai và vào ngày sinh cho từng thí

sinh, giả sử như sau:STT NgaySinh Ho Dem Ten Toan Ly Hoa1 4/12/77 Hồ Van Thanh 5 6 72 6/23/78 Lê Thi Hoà 7.5 3 63 8/24/79 Trần Lê Hùng 7 8 44 1/12/80 Hoàng Thị Loan 6 8 85 3/1/77 Hồ Huy Trung 8 5 36 12/1/75 Nguyễn Hoàng Quân 8 3 47 3/4/78 Đỗ Hoa Quỳnh 5 2 78 4/23/79 Lê Anh Quân 7 8 5g. Tạo một truy vấn điều kiện Ngày sinh >9

Page 60: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 60

h. Tạo một truy vấn điều kiện Tháng sinh >=7i. Tạo một truy vấn điều kiện Năm sinh >=1978j. Thêm một trường có tên TongDiem để tính tổng Toan + Ly + Hoak. Tạo một truy vấn điều kiện TongDiem >=16

2. Hãy tạo CSDL có chứa bảng sau:Stt NgayThang MaMatHang ChatLuong SoLuong1 12/14/07 M1 Loại 1 22 12/14/07 M2 Loại 1 13 12/14/07 M3 Loại 2 34 12/15/07 M1 Loại 1 15 12/15/07 M2 Loại 2 16 12/16/07 M2 Loại 3 27 12/16/07 M3 Loại 2 3a. Hãy truy vấn tổng (Group By) theo NgayThang và tính tổng SoLuongb. Hãy truy vấn tổng (Group By) theo MaMatHang và tính tổng SoLuongc. Hãy truy vấn tổng (Group By) theo ChatLuong và tính tổng SoLuongd. Hãy truy vấn Crosstab ứng với NgayThang (Rows Heading), MaMatHang (Column

Heading) và SoLuong (Value).e. Tương tự lấy MaMatHang làm Rows Heading, ChatLuong làm Column Heading và

SoLuong làm Value.3. Tạo CSDL chứa 3 bảng sau:

So_luongStt NgayThang MaMatHang SoLuong1 12/14/07 M1 22 12/14/07 M2 13 12/14/07 M3 34 12/15/07 M1 15 12/15/07 M2 16 12/16/07 M2 27 12/16/07 M3 3

Loai_hangMaMatHang TenHangM1 RadioM2 Tủ lạnhM3 Ti vi

Don_giaTenHang DonGiaRadio 1100000Ti Vi 3300000Tủ lạnh 4400000

a. Hãy thiết lập mối quan hệ: So_luong.MaMatHang với Loai _hang.MaMatHang Loai_hang.TenHang với Don _gia.Tenhang

Page 61: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 61

b. Hãy hiện mối quan hệ đóc. Hãy tạo một truy vấn trên cả 3 bảng đó với đầy đủ các trườngd. Hãy tạo một truy vấn trên cả 3 bảng đó với đầy đủ các trường nhưng chỉ với mặt hàng

Ti vi.e. Hãy tạo một truy vấn trên cả 3 bảng đó với đầy đủ các trường nhưng chỉ với mã mặt

hàng M2.f. Hãy tạo một truy vấn trên cả 3 bảng đó với đầy đủ các trường nhưng chỉ với ngày 14

4. Cho bảng So _luong trên hãy dùng truy vấn Simple Query Wizard ứng với tất cả cáctrường, điều kiện mã mặt hàng là M1 hoặc M2.5. Hãy sữ dụng bảng ở câu 4 hãy dùng truy vấn Crosstab Query Wizard ứng với NgayThang(Rows Heading), MaMatHang (Column Heading) và SoLuong (Sum, Value)6. Tạo CSDL chứa bảng sau:

DiemThiStt TongDiem DoiTuong1 15 12 16.5 23 18 34 15 35 16 2

a. Hãy tăng 3 điểm cho những SBD có DoiTuong =1b. Hãy tăng 2 điểm cho những SBD có DoiTuong =2c. Hãy tăng 14% điểm cho toàn bộd. Xoá những bản ghi (sau khi đã thực hiện a,b,c) mà TongDiem <=18e. Cho bảng sau:

DiemThi1Sbd TongDiem DoiTuong101 15 1102 16.5 1103 18 3104 15 2105 16 2

Hãy ghép bảng DiemThi vào bảng DiemThi1f. Từ bảng DiemThi hãy tạo một bảng mới có ten DiemDo với điều kiện TongDiem>=16

Page 62: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 62

Chương 5: Sử dụng biểu mẫu5.1 Công dụng và khái quát về biểu mẫuBiểu mẫu (Form) là phương tiện giao dịên cơ bản giữa người dùng và Access, thông tin trongbiểu mẫu được lấy từ bảng, có thể thiết kế các biểu mẫu cho nhiều mục đích khác nhau: Hiển thị và chỉnh sửa dữ liệu: Đây là công việc thông dụng nhất của biểu mẫu. Sử dụng

biểu mẫu để thay đổi, bổ sung, xoá dữ liệu th ì dễ dàng hơn. Nhập các dữ liệu: Có thể thiết kế biểu mẫu dùng để nhập dữ liệu mới vào CSDL hoặc để

cung cấp dữ liệu cho việc tự động hoá tính toán. Và còn nhiều mục đích khác.Ví dụ về một số dạng biểu mẫu.

1. Biểu mẫu có dạng Columnar (cột):

2. Biểu mẫu có dạng Tabular (bảng):

3. Biểu mẫu có dạng Datasheet (bảng tính):

Page 63: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 63

4. Biểu mẫu có dạng Justified:

Kiểu này chỉ hiện ra 1 dòng, bạn phải dùng mũi tên để hiển thị những dòng còn lại.

5.2 Tạo một biểu mẫu từ một bảng đã có bằng Form Wizard5 Mở cửa sổ Database (Ban_hang.mdb) chọn Form v à New ta có hộp thoại: :

Chọn Form Wizard, chọn bảng (So_luong) theo h ình sau:

Page 64: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 64

Và chọn OK ta có:

Đến đây bạn có thể chọn trường cần đưa lên Form bằng nút > hoặc chọn tất cả bằngnút >> sau đó chọn Next ta có:

Page 65: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 65

Hãy chọn 1 trong 6 kiểu Form: Columnar, Tabular, Datasheet, Justified, Pivot Table,PivotChart. Giả sử ta chọn Columnar và chọn Next ta có:

Page 66: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 66

Hãy chọn một kiểu nền của Form ở cột phía bên phải. Giả sử ta chọn kiểu Blends vàchọn Next ta có hộp thoại:

Chọn chế độ Open the Form to view or enter information và Finish ta có:

Chọn File/Save để cất Form này.Đến đây ta có thể dịch chuyển trong Form để chỉnh sửa dữ liệu.Còn nếu chọn Modify the form’s design thì ta có thể sửa lại cấu trúc Form trước khi mở lạiđể sửa hoặc xem dữ liệu. Sửa cấu trúc Form bao gồm cả xác định Font cho Form.

5.3 Di chuyển trong biểu mẫuDùng các phím sau để di chuyển trong biểu mẫu:Tab (hoặc mũi tên): chuyển đến trường tiếp theoShift + Tab (hoặc mũi tên xuống): chuyển đến trường đứng trướcHome: chuyển đến trường đầu tiên của bản ghi hiện thờiCtrl + Mũi tên lên: chuyển đến trường hiện thời của bản ghi đầu tiênCrtl +Mũi tên xuống: chuyển đến trường hiện thời của bản ghi cuối c ùng

Page 67: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 67

Ctrl + Home: chuyển đén trường đầu tiên của bản ghi đầu tiênCtrl + End: Chuyển đến trường cuối cùng của bản ghi cuối cùng

5.4 Sửa cấu trúc của biểu mẫu5.4.1 Thanh công cụ ở chế độ định dạngKhi mở Form ở chế độ Design ta thấy xuất hiện thanh công cụ chuẩn v à thanh định dạng.a. Thanh công cụ chuẩn

1. View: khi kích vào mũi tên xuống ta thấy xuất hiện: Design View, Form View v à DatasheetView, tương đương chọn View/Form View2. Save: dùng để lưu biểu mẫu hiện hành, hoặc chọn File/Save3. File Search: Tìm File4. Print: dùng để in biểu mẫu hoặc xác lập máy in, t ương đương File/Print5. Print Preview: dùng để xem trước khi in (File/Print Preview)6. Cut: để cắt các đối tượng đưa chúng vào Clipboard (Edit/Cut)7. Copy: để chép các đối tượng đưa chúng vào Clipboard (Edit/Copy)8. Paste: để dán nội dung của Clipboard (Edit/Paste)9. Format Painter: chép định dạng từ đối tượng đã lựa sang đối tượng khác10. Undo: lấy lại lệnh trước đó (Edit/Undo)11. Redo: lấy lại lệnh sau đó (Edit/Redo)12. Insert Hyperlink: dùng để chèn một liên kết trên Internet (Insert/Hyperlink)13. Field list: hiển thị danh sách các trường (View/Field List)14. Toolbox: hiển thị hoặc đóng hộp công cụ (View/Toolbox)15. Autoformat: chọn một số biểu mẫu định sẵn (Format/AutoFormat)16. Code: mở cửa sổ hiệu chỉnh cho mã VBA (View/Code)17. Properties: mở cửa sổ Properties (View/Properties)18. Build: hiển thị Build Wizard cho đối tượng đã lựa nếu Access có bộ xây dựng đó19. Database Window: hiển thị cửa sổ Database (Window/ 1 Database)20. New Object Table: kích vào mũi tên xuống để chọn một đối tượng mới.21. Office Assistant: hiển thị trợ giúp (Help/ Microsoft Access Help)b. Thanh định dạng ở chế độ Form Design

Page 68: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 68

1. Object: dùng để xác định các đối tượng như trường, nhãn trường (muốn chọn bạn phải kíchvào mũi tên xuống)2. Font: dùng để chọn Font3. Font Size: dùng để chọn kích cỡ Font4. Bold: dùng để chọn chữ đậm5. Italic: dùng để đặt chữ nghiêng6. Underline: dùng để gạch chân7. Align Left: dóng thẳng hàng bên phải8. Center: dóng thẳng hàng giữa9. Align Right: dóng thẳng hàng bên phải10. Fill/Back Color: kích vào mũi tên để hiện bảng mầu, sau đó dùng màu để tô mầu hoặc tạomàu nền11. Font/Fore Color: màu chữ12. Line/Border Color: màu đường hoặc viền13. Line/Border Width: bề rộng của đường hoặc viền14. Special effect: Flat: tạo hiệu ứng bề mặt5.4.2 Ví dụ về định dạngVí dụ 1: Tạo một biểu mẫu, sau đó định dạng nh ư sau:

1. Font: .Vn Teknical, Font Size=112. Viền của trường màu đỏ và bề dày lớn3. Màu chữ xanh4. Màu nền vàng

Ta thao tác như sau:Tạo một Form (KhoiA) sau đó chọn Modify the form’s design , ta có hình sau:

Page 69: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 69

Chọn các trường ở bên phải, bằng cách ấn giữ Shift đồng thời kích vào các trường ta có:

Chọn Font .Vn Teknical và kích cỡ Font 11 ta cóC:

Với công cụ 10,11,12, 13 của thanh định dạng, bạn h ãy đặt màu nền, chữ, viền, ...

Page 70: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 70

Ta có thể định dạng cho tên trường ở phía trái cũng tương tựVí dụ 2: Cho biểu mẫu sau:

Hãy đưa về dạng:

Hãy thao tác như sau:Đưa con trỏ chuột vào trường Toan, ấn, ta thấy trỏ chuột có h ình bàn tay, hãy kéo đến vị trímới. Với trường Ly, Hoa cũng làm tương tựKéo giãn các dòng và đặt Font, kích cỡ Font, màu nền, màu chữ, viền v.v..

5.5 LọcGiả sử ta chỉ hiển thị những thí sinh có điểm Toan <= 6 để sửa, ta thao tác nh ư sau:Mở biểu mẫu KhoiAChọn Records/Filter/dvanced Filter Sort , đưa vào các thông số như hình sau:

Page 71: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 71

Chọn Filter/Apply Filter SortSau đó dữ liệu của Form chỉ còn lại những bản ghi thoả mãn điều kiện trên, hình sau còn 3 bảnghi đạt thoả mãn Toan <= 6.

5.6 Thiết kế biểu mẫu bằng Design viewĐể thiết kế một biểu mẫu bằng Design view, trước hết ta tìm hiểu hộp công cụ, ta sẽ dùng nótrong việc thiết kế về sau.5.6.1 Hộp công cụChọn View /Toolbox ta có hộp công cụ sau:

Page 72: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 72

1. Select Objects: Chọn đối tượng2. Label: Dùng để tạo một hộp để chứa văn bản h ướng dẫn hoặc tính toán3. Option Group: Tạo một khung có kích thước điều chỉnh được4. Option Button: Tạo một nút tròn để chọn lựa về sau5. Combo Box: Tạo hộp Combo có hộp văn bản hiệu chỉnh đ ược6. Command Button: Tạo nút lệnh mà khi kích sẽ thi hành một nhiệm vụ7. Unbound Objects Freme: Bổ sung vào biểu mẫu một đối tượng OLE8. Page Break: Cho máy in biết bắt đầu một trang mới9. Subform/Subreport: Bổ sung một biểu mẫu con vào biểu mẫu chính10. Rectangle: Tạo một hình chữ nhật11. Control Wizads: Bật và tắt Control Wizard12. Text Box: Tạo một hộp văn bản13. Toggle Button: Tạo một nút thay đổi từ On sang Off14. Check Box: Tạo một hộp kiểm15. List Box: Tạo một hộp liệt kê qua đó ta có thể lựa một giá trị16. Image: Hiển thị đồ hoạ trên báo biểu17. Bound Objects Freme: Hiển thị nội dung một trường OLE18. Tab Control: Chèn một điều khiển Tab19. Line: Vẽ một đường thẳng20. More Controls: Kích vào nút này sẽ mở ra một danh sách cuốn duyệt

5.6.2 Thiết kế biểu mẫu bằng hộp công cụ1. Tạo một biểu mẫu trắng có ti êu đề đầu và tiêu đề cuốiGiả sử ta sử dụng bảng KhoiA trong CSDL Tuyen _sinh.mdb, thao tác như sau:Mở CSDL TuyenM _sinh.mdbTại cửa sổ Database chọn Torms và New hộp thoại sau xuất hiện:

Page 73: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 73

Chọn Design view, chọn bảng KhoiA và OK một Form trắng xuất hiện:

Đồng thời ta hiển thị Toolbox (View/Toolbox) và đưa về vị trí như hình trên.Chọn View/Form Head/Footer ta có hình sau:

Page 74: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 74

2. Tạo tiêu đề đầu và cuối Kéo rộng phần diện tích của tiêu đề đầu (nếu cần), sau đó kích vào nút số 2 (Label) và

đưa chuột ra vùng tiêu đề, rê để được một hình chữ nhật, gõ tiêu đề: “tuyển sinh khốiA năm học 2007” vào hộp đó, ta có hình như sau:

Có thể tạo tiêu đề đưới cũng tương tự như vậy.3. Thiết kế các trườngKích vào nút Field List trên thanh công cụ (thanh công cụ khác với hộp công cụ) ta có hộpthoại sau:

Chọn một trường (giả sử chọn trường SBD) và kéo vào phần còn trống (phía sau Detail), nhưhình sau:

Page 75: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 75

Lại tiếp tục với trường khác và cuối cùng ta có:

Có thể đặt thêm một trường Tong (Tong=Toan+Ly+Hoa) bằng cách kích v ào 12 (Text Box)của hộp công cụ, kéo đến phần còn trống và rê để tạo hộp văn bản, sau đó gõ tên vào như sau:

Page 76: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 76

Chọn File/Save để lưu biểu mẫu này (giả sử lưu với tên: Tsform)Đóng lại, sau đó từ cửa sổ Database chọn biểu mẫu Tsform, chọn Forms và Open ta có:

Mỗi lần ta sửa điểm Toán, Lý và Hoá thì trường Tong được cập nhật ngay.4.Một số hàm cơ bảnCách viết:

= <tên hàm >ví dụ: =abs(-7) cho kết quả 7 (hàm lấy trị tuyệt đối)a. Các hàm về ngày và giờ

Tên hàm Giải thích Ví dụ Kết quảDate, Date$ Kết quả ngày hệ thống Date() 11/21/2007Day Kết quả là ngày Day(Date) 21

Page 77: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 77

Month Kết quả là tháng Month(Date) 11Year Kết quả là năm Year(Date) 2007Hour Kết quả giữa 0 và 23 Hour(#2:30PM#) 14Now Kết quả là ngày giờ hệ thống Now() 11/21/2007 10:34:45AMTime Kết quả là giờ hệ thống Time() 10:34:45AMTimeSerial Trả về giá trị nối tiếp thời gian TmeSerial(10,34,45) 10:34:45AMWeekday Trả về thứ trong tuần Weekday(#11/21/2007#) Thứ 4b. Các hàm xử lý văn bản

Tên hàm Giải thích Ví dụ Kết quảASC Trả về mã của ký tự ASC(“A") 65Chr hay Chr$ Trả về ký tự ứng với mã Chr(65) AInStr Trả về vị trí của chuỗi con InStr(“Khoa”,”ho”) 2Lcase Kết quả là chữ thường Lcase(“HOANG”) hoangLeft Kết quả là các ký tự bên trái Left(“Tin hoc”,2) TiLen Kết quả là số lượng ký tự Len(“Tin”) 3Ltrim Bỏ các dấu cách phía trái Ltrim(“ Tin hoc”) Tin hocMid Trả về một phần của chuỗi Mid(“Tin hoc”,5,3) hocRight Trả về các ký tự bên phải Right(“Tin hoc”,2) ocRtrim Bỏ các dấu cách bên phải Rtrim(“Tin “) TinSpace Trả về một chuỗi dấu cách Space(5) có 5 dấu cáchcStr Đổi trị số thành chuỗi Str(3.1415) 3.1415String Trả về chuỗi có ký tự lặp String(6,”T”) TTTTTTTrim Bỏ dấu cách đầu và cuối Trim(“ Tin “) TinUcase Trả về chữ to Ucase(“Tin hoc”) TIN HOCVal Trả về trị số Val(“123”) 123c. Các hàm toán họcTên hàm Giải thích Ví dụ Kết quảAbs Trả về trị tuyệt đối Abs(9-12) 3Atn Trả về arctang Atn(1) 0.7853982Cos Trả về Cosin của một góc Cos(pi/4) 0.7071067Exp Kết quả là E mũ x Exp(10) E10

Int Bỏ phần thập phân Int(13.56) 13Log Logarit tự nhiên Log(10) 2.302585Rnd Tạo số ngẫu nhiên giữa 0…1 Rnd 0.234566Sin Trả về Sin của một góc Sin(pi/6) 0.500000Sqr Trả về giá trị căn bậc hai Sqr(4) 2Sgn Dấu của số: 0 dương, -1 âm Sgn(-123) -1Tan Trả về tang của một góc Tan(pi/4) 15.6.3 Thiết kế một biễu mẫu có trường MEMO, OLE và đối tượng đồ hoạGiả sử ta thiết kế một bảng có các tr ường sau:

Page 78: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 78

Để thiết kế một biểu mẫu có th êm các đối tượng như Memo, OLE và đồ họa, ta theo thứ tựsau: Tạo một Form trắng như đã nói ở phần trên ứng với bảng So _Luong, dùng nút số 2 của

Toolbox để tạo tiêu đề đầu, kích vào nút Filed List để đặt các trường như sau:

Page 79: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 79

Chọn nút 2 của Toolbox để tạo hộp văn bản v à đưa văn bản vào, đồng thời chọn nút 16của Toolbox (Image) để tạo hộ p chứa ảnh, sau đó kích đúp vào hộp ảnh để chèn ảnhvào, sau khi hoàn tất ta có hình sau:

Lưu biểu mẫu với một tên nào đó để sử dụng về sau.Chú ý: Ta cũng có thể chèn tệp ảnh bằng cách chọn Insert/Object v à chọn Create From File,sau đó tìm File và chèn vào.

Bài tập chương 51. Hãy tạo một biễu mẫu có dạng Columnar2. Hãy tạo một biểu mẫu có dạng Tabular3. Hãy tạo một biểu mẫu có dạng Datasheet4. Dùng Form Wizard để tạo một biểu mẫu từ một bảng đ ã có (dạng Columnard)5. Dùng Form Wizard để tạo một biểu mẫu từ một bảng đ ã có (dạng Tabulard)6. Hãy tạo cấu trúc cho bảng sau:HoDem Ten Luong NgaySinh TieuSu AnhText (15) Text(7) Number Dat/Time Memo OLE Object Hãy tạo một biểu mẫu bằng Form Wizard v à đưa vào 5 bản ghi (lấy một ảnh bất kỳ

trong Microsoft Photo Editor đ ể chèn vào trường Anh) Hãy mở biểu mẫu ở dạng Design để sửa lại cấu trúc nếu cần Hãy đặt Font VnTime có kích cỡ 12 v à kéo các trường đến vị trí mới sao cho trở th ành

3 dòng. Đặt màu sắc và khung viền cho trường Thiết kế thêm một trường có tên LuongMoi:

Page 80: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 80

( LuongMoi= Luong+Luong*0.12)7. Cũng với cấu trúc bảng như câu 6 hãy: Dùng hộp công cụ (Toolbox) hãy thiết kế một biểu mẫu bằng Design view Hãy tạo tiêu đề đầu cho biểu mẫu: Lý lịch cán bộ Tr ường ĐHKD &CN Hà nội Về Paint vẽ một biểu tượng Trường ĐHKD &CN và chèn vào biểu mẫu Đóng cấu trúc lại sau đó mở ở dạng Open và vào 5 bản ghi8. Tạo một biểu mẫu trắng không ứng với b ảng nào cả, sau đó dùng TextBox (của

Toolbox), tạo ra 9 hộp văn bản tính toán đ ược, sau đó gõ vào 9 hàm về ngày vàgiờ. Hãy đóng lại và mở ở chế độ Open để xem kết quả.

9. Cũng câu hỏi 8 nhưng tạo ra 16 hộp văn bản dùng để tính toán 16 hàm xử lý văn bản.10. Cũng câu hỏi 8 nhưng ứng với 11 hàm toán học.C11. Hãy tự tạo một cấu trúc bảng, sau đó thiết kế một biểu mẫu v à đưa dữ liệu vào.

Page 81: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 81

Chương 6: Tạo các báo biểu (REPORT)Trong Access, báo biểu là một kiểu biểu mẫu tiếp theo đặc biệt đ ược thiết kế cho khâu in ấn.Access tổ hợp dữ liệu trong bảng để có thể in theo những y êu cầu cụ thể.

6.1 Tạo một báo biểu bằng Report WizardGiả sử ta dùng CSDL Ban _Hang.mdb với bảng So _Luong, ta thao tác sau: Mở CSDL Ban _Hang.mdb như hình sau:

Chọn Reports và New ta có hộp thoại:

Chọn Report Wizard, bảng SoLuong và OK ta có:

Page 82: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 82

Dùng nút > để chọn trường, giả sử ta chọn các trường sau:

Chọn Next ta có:

Page 83: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 83

Nếu đồng ý lại chọn Next ta có:

Chọn trường Ngay _thang để sắp xếp như hình sau:

Page 84: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 84

Chọn Next tiếp:

Nếu đồng ý lại chọn Next:

Page 85: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 85

Chọn một kiểu chữ trang trí và chọn Next:

Hãy chọn Preview the report và Finish ta có:

Page 86: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 86

Như vậy ta có một bản báo cáo và có thể in ra giấy.

6.2 Sửa báo biểuBáo biểu vừa tạo ra có tên So_Luong1, nếu ta không vừa ý về cấu trúc ta có thể sửa lại nh ưsau: Mở CSDL Ban_Hang Chọn báo biểu So_Luong1, Report và Design ta có cấu trúc sau:

Ở trên ta thấy có các thành phần sau:

Page 87: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 87

1. Tiêu đề đầu của Report (Sau Report Header).2. Tiêu đề đầu của trang (Sau Page Header)3. Thân của Report (Sau Detail)Ta có thể di chuyển, đặt lại Font, kích cỡ Font, m àu chữ, nền v.v.. như thao tác Form Design,ví dụ như hình sau:

Đóng cấu trúc Report và mở lại ở dạng Preview ta có:

Page 88: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 88

6.3 Thiết kế một báo biểu bằng Design ViewCũng tương tự như thiết kế một Form bằng Design View, ta thao tác nh ư sau: Mở CSDL Ban _Hang Chọn Report, New ta có hộp thoại:

Chọn Design View, bảng So_Luong và OK đồng thời mở Toolbox ta có:

Trình tự thiết kế như sau:1. Tạo Report Header Kích vào nút 2 (Label), đưa ra vùng Report Header, rê để được một hình chữ nhật Gõ vào tiêu đề đầu của Report: bảng thống kế hàng trong kho

Ta có hình sau:

Page 89: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 89

2. Thiết kế Page HeaderTiếp theo là thiết kế tên trường nằm trong vùng Page Header, bằng cách chọn nút 2(Label), rê từng hộp ứng với tên trường và gõ tên trường vào như hình sau:

3. Thiết kế thân (Detail)Bước tiếp là thiết kế thân Report nàm trong phần Detai, bằng cách hiện danh sách tr ường,kích vào tên trường cần chọn đồng thời rê đến phần thân Report (Xoá đi phần b ên trái),đồng thời thiết kế thêm trường TongTien và gõ vào như hình sau:

Page 90: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 90

Đóng cấu trúc lại và mở lại ở chế độ Print Preview ta có:

Bài tập1. Cho bảng sau:

Sbd Ho Dem Ten Toan Ly Hoa1 Le Thi Linh 5 6 72 Ho Van Trung 6.5 6 5

Page 91: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 91

3 Hoang Le Huyen 8 7 74 Do Thi Hoa 5 3 65 Le Anh Quan 6 7 6

Hãy tạo một Report bằng công cụ Report Wizard Hãy thiết kế một Report với các trường sau:- Trường Hoten bằng 3 trường Họ, Dem và Ten ghép lại- Thêm trường Tổng điểm (TongDiem) bằng Toan +Ly+Hoa- Cuối Report ghi thêm: (Hà nội ngày 12 tháng 4 năm 2007- Chủ tịch HĐTS- Để cách 3 dòng- Ts Lê Trung Thành2. Thiết kế một Report ứng với bảng trong đó có một trường kiểu OLE Object3. Thiết kế một Report sau đó hãy chèn một ảnh vào Report4. Thiết kế một Report ứng với bảng trong đó có tr ường Memo

Page 92: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 92

Chương 7: Tự động hoá ứng dụng bằng Macro7.1 Macro là gì?Giả sử ta có một công việc gồm 4 thao tác: Mở một bảng để sửa (giả sử có tên BanHang) Mở một Form ứng vơí bảng đó để vào dữ liệu Mở một Report ứng với bảng đó In Report đóBình thường ta thao tác từng công việc một, hết một cô ng việc, đóng lại và mở công việc kháccứ như thế cho đến hết.

Nhưng còn một cách khác là xử lý bốn công việc trên một cách tự động bằng công cụ m à tahay gọi là Macro. Vậy macro là gì? trong Access có các lệnh vĩ mô (gọi là Macro) ứng vớitừng công việc. Ta liệt kê bốn công việc trên bằng các lệnh vĩ mô 1 lần, sau đó cho chạy tệplệnh đó. Việc làm trên được gọi là tự động hoá ứng dụng bằng Macro.

7.2 Thanh công cụ của cửa sổ MacroKhi mở 1CSDL sau đó chọn Macro và New, thanh công cụ lúc này có các thành phần:

1,2,3,4,5,6,7,8,9: giống như thanh Standard10. Macro Names: ấn nút này sẽ hiển thị hoặc giấu cột Macro Name trong cửa sổ Macro.Trong cột này có thể gán tên cho một nhóm Macro.11. Conditions: ấn nút này sẽ thêm cột Conditions hoặc che nó nếu nó đã có. Cột này dùng đểđịnh nghĩa các điều kiện mà khi nó là True thì thao tác kèm theo m ới được thực hiện.12. Insert Rows: dùng để chèn một dòng13. Delete Rows: dùng để xoá một dòng14. Run: ấn nút này để chạy một Macro, tất nhiên Macro phải được cất bằng một tên trước đó.15. Single Step: dùng để thực hiện từng thao tác một trong Macro16. Build: hộp tạo một biểu thức17. Database Window: đặt lại cửa sổ Database18. New Object: Table: kích vào mũi tên xuống để chọn một đối tượng19. Office Assistant: tìm trợ giúp

7.3 Tạo một Macro đơn giản7.3.1 Mở cửa một Macro Mở CSDL Chọn Macros và New ta có hộp thoại:

Page 93: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 93

7.3.2 Tạo một Macro đơn giản Kích vào mũi tên xuống ở cột Action ta thấy các lệnh Macro hiện ra:

Hãy chọn một Macro, giả sử ta chọn Open Table (mở bảng) ta có h ình sau:

Page 94: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 94

Kích vào Table Name để chon bảng (giả sử tên bảng là SoLuong), chọn View làDatasheet và Data Mode là Edit ta có:

Và tiếp tục soạn những Macro khác, giả sử cuối cùng ta có như hình sau:

Page 95: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 95

Lưu Macro này bằng cách chọn File/Save, giả sử ta lưu tên là MacroVatTu, hãy đóng lại.Như vậy ta đã tạo ra một Macro với tên MacroVatTu.

7.4 Chạy một Macro Từ cửa sổ Database chọn Macro ta có:

Chọn Run và sau đó Access sẽ thi hành từng lệnh Macro một, như đã liệt kê trên.

7.5 Sửa một Macro Từ cửa sổ CSDL chọn Macro và Design sau đó dùng thanh công c ụ Macro để chèn thêm các

Macro khác hoặc thay thế các Macro bằng Macro khác, giả sử sau khi sửa có dạng nh ư hìnhsau:

Page 96: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 96

Macro MsgBox cho ta một hộp thoại và hiển thị một thông báo.

7.6 Một số Macro cơ bảnChúng ta sẽ đi sâu về Macro trong quyển 2 “Lập tr ình trong Access 97” ở đây chúng ta chỉlàm quen một số nét cơ bản mà thôi.

1. Mở và đóng các bảng, truy vấn, Form và Report Close: Đóng cửa sổ Table, Query, Form hoặc Report OpenForm: Mở một Form trong cửa sổ Form, Datasheet, Design hoặc Print Preview OpenQuery: Mở một Query trong cửa sổ Datasheet, Design hoặc Print Preview OpenReport: Mở một Report trong cửa sổ Print Preview OpenTable: Mở bảng trong cửa sổ Datasheet, Design hoặc Print Preview2. In ấn OpenForm: Mở một Form trong cửa sổ Print Preview OpenQuery: Mở một Query trong cửa sổ Print Preview OpenReport: Mở một Report trong cửa sổ Print Preview OpenTable: Mở một Table trong cửa sổ Print Preview OutputTo: Xuất hiện một Table, Form, Report v à một tệp văn bản Notepad hoặc tệp

Excel hoặc tệp Word v.v.. Print: In Table, Form, Report

3. Điều khiển Maximize: Cực đại hoá cửa sổ đang hoạt động Minimize: Cực tiểu hoá cửa sổ đang hoạt động MoveSize: Di chuyển về đích lại kích cỡ của cửa sổ Restore: Khôi phục lại kích thước cũ Show Toolbar: Hiển thị hoặc giấu một thanh công cụ

Và còn nhiều Macro khác…

Bài tập chương 7:1. Hãy chuẩn bị một Table một Form và một Report ứng với bảng đó. Hãy:

Tạo một Macro để mở Form và hiển thị ở chế độ Design Tạo một Macro để mở Report và hiển thị ở chế độ Design Lưu Macro ấy Mở lại ở chế độ Design để chèn thêm lệnh Maximize cho cả hai cửa sổ.

2. Cũng như câu hỏi 1 nhưng hiển thị ở chế độ khác ngoài Design

Page 97: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 97

Chương 8: MODULES (Lập trình trong Access)

8.1 Tổ chức và hoạt động của chương trình trong Access8.1.1 Lập trình trong Access

Để lập trình trong Access người ta dùng ngôn ngữ VBA (Visual Basic Application). VBA(hay ngắn gọn là Access Basic) là ngôn ngữ lập trình hoạt động theo các sự kiện, trên nguyêntắc của lập trình cấu trúc, nhằm xây dựng các ứng dụng một cách linh hoạt tr ên nền các đốitượng của Access như: Table, Query, Form, Report, Macro, đ ồng thời tương tác với các dữliệu: nguyên, thực, logic, văn bản, v.v.. Lập tr ình cấu trúc, hiểu nôm na là từ 1 bài toán A, tachia nhỏ thành các bài toán con A1, A2, A3, …, An.

Lập trình cho A thì khó, còn lập trình cho các Ai thì dễ hơn vì độ phức tạp ít hơn (chia nhỏđể dễ quản lý mà!). Mỗi Ai được lập trình theo một đơn thể (Module) có dạng được gọi làchương trình con.

Chương trình con có hai dạng: Thủ tục hoặc hàm. Mỗi chương trình con là một dãy cáclệnh để thực hiện một công việc n ào đó. Một chương trình có thể có rất nhiều chương trìnhcon.8.1.2 Cấu trúc một chương trình cona. Chương trình con dạng thủ tụcThủ tục bao gồm các thành phần: Đầu thủ tục, thân thủ tục v à kết thúc thủ tục.1. Đầu thủ tục có dạng:[Private] Sub <Tên thủ tục > [(<Danh sách các đối số)>]Bạn lưu ý cách viết: Những gì nằm trong […] là tuỳ ngữ cảnh mà có thể có hoặc không. Cònnhừng gì nằm trong l <…> thì bắt buộc phải luôn luôn có.2. Thân thủ tụcThân thủ tục nằm sau đầu thủ tục. Thân thủ tục chứa các lệnh để giải quyết một công việc n àođó (các lệnh cụ thể bạn sẽ tìm hiểu sau).3. Kết thúc thủ tụcĐể báo cho máy tính biết kết thúc một thủ tục, ta viết d òng lệnh:End SubVậy về cơ bản một chương trình con dạng thủ tục có cấu trúc như sau:

[Private] Sub <Tên thủ tục > [(<Danh sách các đối số)>] <Thân thủ tục >

End Sub

b. Chương trình con dạng hàm (Funtion)Cũng như thủ tục, hàm cũng có cấu trúc ba phần: Đầu h àm, thân hàm và kết thúc hàm. Dạngtổng quát như sau:

[Private] Function <Tên hàm > [(<Danh sách các đ ối số)>] <Thân hàm >

End Function

Sau đây là một số ví dụ:Ví dụ1: Lập trình hiển thị câu chào: “Chào bạn đã đến với lập trình Access”

Page 98: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 98

Tuy nó đơn giản, nhưng bạn nên nhớ một nhà hiền triết đã từng nói: “cuộc đi ngàn dăm, khởisự từ bước đi thứ nhất” hay “cái cây có đường kính rộng hàng mét khởi sự từ cái mầm nhỏ” ,trước hết bạn cứ quan tâm đến cái “mầm nhỏ” đ ã, rồi dần dần tiến đến “cái cây”. Để lập tr ìnhbạn theo các bước sau:Bước 1:Chọn Module và chọn New, sau đó cửa sổ để bạn soạn thảo chương trình (hay còn gọi là cửasổ Code) hiện ra như sau:

Bước 2: Bạn gõ vào cửa sổ Code các lệnh (bạn cứ gõ rồi sau sẽ hiểu lệnh đó là gì?) như hìnhsau:

Bước 3: Chạy chương trình:Chọn Run/Run Sub (hoặc kích nút) như hình sau:

Page 99: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 99

Sau khi chạy chương trình, kết quả như hình sau:

Giải thích:Lệnh MsgBox(“Chao ban da den voi lap trinh Access”) s ẽ đưa ra một thông báo như hìnhtrên. Ta có thể gọi đây là lệnh hiển thị dữ liệu cũng được. Khi đưa ra kết quả trên chươngtrình tạm dừng và nếu bạn chọn OK thì chương trình sẽ chạy tiếp và thực hiện lệnh sau lệnhMsgBox(...).

Ví dụ 2: Vào 2 số nguyên, tính tổng và hiển thị tổng của hai số đó.Bạn gõ vào cửa sổ Code như hình sau:

Khi chạy chương trình, máy yêu cầu bạn gõ từ bàn phím giá trị a như giao diện sau:

Page 100: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 100

Đến đây nếu bạn gõ vào số 5 và chọn OK (Hay ấn Enter) thì số nguyên 5 sẽ lưu vào biến a.Máy lại đưa ra giao diện:

Và nếu bạn gõ vào số 4 và chọn OK thì máy sẽ lưu số nguyên 4 vào biến b. Tiếp tục máy sẽtính tổng và đưa kết quả là 9 như hình sau:

Giải thích: Lệnh: Dim a As Integer

Nghĩa là: Biến (Dim) a là (As) nguyên (Integer). Bạn khai báo biến a là nguyên, để máy sửdụng ô nhớ tương ứng với số nguyên mà!, tất nhiên nếu là số thực thì ô nhớ phải lớn hơn,v.v.. lý do khai báo là vậy.

Lệnh: a = InputBox("Moi ban go vao so a? ")Nghĩa là: Hộp nhập liệu (InputBox) ra thông báo: "Moi ban go vao so a? “. Nếu bạn g õ vàomột số thì số đó được lưu vào biến a

Lệnh: s = a + bĐây là lệnh “gán”, nghĩa là máy sẽ lấy nội dụng biến a (bạn vừa gõ vào 5), cộng với nội dungcủa biến b (bạn vừa gõ vào 4), kết quả sẽ là 9, “gán” kết quả này cho biến s (gọi lệnh “gán” lànhư vậy).

Lệnh: MsgBox "Tong 2 so la: " & Str(s)Đây là lệnh hiển thị dữ liệu, nhưng dữ liệu thì phải đồng nhất, ở đây: "Tong 2 so la: "(l à dữliệu văn bản) còn nội dung của biến s là một số nguyên. Để ghép được bạn phải đổi nội dungcủa biến s (số nguyên) thành dạng văn bản bằng hàm Str (s): Str viết tắt từ chữ String (vănbản). Để ghép hai văn bản ta dùng dấu & (cũng như để cộng 2 số ta dùng dấu + ).Máy (hay nói chính xác là chương tr ình) làm việc cũng như con người, do vậy ta phải liệt kêmọi hành động (lệnh) để máy theo đó mà làm. Quá trình thiết kế, liệt kê các “hành động” đógọi là lập trình. Và chúng ta đang nói về lập trình đây!

Page 101: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 101

Ví dụ 3: Chuyển ví dụ 2 sang dạng hàm (Function).

Sau khi chạy ta thấy có cùng giao diện như ví dụ 2. Rồi bạn sẽ thấy thủ tục khác h àm ở chỗnào, nhưng nó đều là chương trình con nên có lúc nó phải giống nhau chứ! Cũng như nhữngđứa con trong một gia đ ình, đều là con cả mà, nhưng phân biệt con trai hay con gái bởi v ì nócòn những chức năng khác. Bước đầu học lập trình bạn tạm vừa lòng thế đã!

8.2 Thủ tục đáp ứng sự kiệnSức mạnh của Access là thủ tục đáp ứng sự kiện. Vậy đáp ứng sự kiện l à gì? Dân gian có câunói vui: “Ông đưa chân giò, bà thò chai rượu”. Ông đưa bà “chân giò”, bà đáp ứng lại “chairượu”. Vậy là bà đã đáp ứng sự kiện “đưa chân giò” của ông băng việc “tung ra chai r ượu”.Khi các bạn lướt Web, nếu bạn dùng chuột kích vào một đối tựợng nào đó, thì lập tức mộtđối tượng mới xuất hiện. Từ h ình tượng đó, các nhà thiết kế phần mềm nghĩ ra một ph ươngpháp là: “Dùng chuột hoặc bàn phím để tương tác (kích chuột hoặc ấn phím) vào một đốitượng hoặc lợi dụng một đối tượng chuyển từ trạng thái này sang trạng thái khác để khởiđộng một thủ tục“. Thủ tục có đặc th ù đó gọi là thủ tục đáp ứng sự kiện. Trong Access thủ tụcđáp ứng sự kiện rất phong phú. Chúng ta sẽ l àm quen dần.

8.2.1 Thủ tục đáp ứng sự kiện với FormTa nhận thấy trên Form có 6 vùng cơ bản (5 vùng có tên như hình sau và một vùng là toàn bộForm):

Page 102: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 102

Mỗi vùng có tên thủ tục đáp ứng sự kiện khác nhau, ví dụ sự kiện Click th ì: Sự kiện Click ở toàn bộ Form có dạng:

Private Sub Form_Click() <các lệnh >

End Sub

Sự kiện Click ở vùng tiêu đề đầu Form có dạng:

Private Sub FormHeader_Click() <các lệnh >

End Sub

Sự kiện Click ở vùng tiêu đề đầu trang có dạng:

Private Sub PageHeaderSection_Click()<Các lệnh >

End Sub

Sự kiện Click ở vùng thân Form có dạng:

Private Sub Detail_Click() <các lệnh >

End Sub Sự kiện Click ở vùng tiêu đề cuối trang có dạng:

Private Sub PageFooterSection_Click() <các lệnh >End Sub

Sự kiện Click ở vùng tiêu đề cuối Form có dạng:

Page 103: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 103

Private Sub FormFooter_Click() <các lệnh >End Sub

Tên các sự kiện đối với Form thì rất nhiều, bạn xem bảng sau:

Bạn chọn Event và cuốn để tìm sự kiện mình cần.Ví dụ: Tạo thủ tục để mở bảng có tên SoLuong khi ta kích vào vùng tiêu đề đầu trang Form.Ta thao tác như sau:1. Mở FormChọn Forms, kích đúp vào Create form in Dessign view như hình sau:

Sau đó ta có hình Form mới:

Page 104: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 104

Hình trên gồm 3 hình ghép lạiH: Form, ToolBox và các thủ tục đáp ứng sự kiên (Event) ứngvới mỗi lần bạn chọn vùng nào trong 6 vùng trên. Bạn nên trưng cả 3 hình đó để dễ thao tác.Bạn điều chỉnh để Form lộ diện cả 6 vùng bằng cách: Chọn view và chọn tên vùng.Sau đây là các bước tiến hành lập trình:

Kích vào thanh FormHeader để bật cửa sổ chứa các thủ tục đáp ứng sự kiện ứng vớivùng này (tất nhiên ban chon Event), như hình sau:

Kích vào ô bên phải ứng với dòng On Click, kích mũi tên xuống để chọn [EventProcedure], kích tiếp vào nút ba chấm bên phải như hình sau:

Sau đó thủ tục đáp ứng sự kiện hiện ra:

Bạn gõ dòng lệnh: DoCmd.OpenTable “So_luong”. Ta đươc một thủ tục hoàn chỉnh nhưsau:

Page 105: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 105

Lưu thủ tục này bằng một tên nào đó, giả sử tên DauForm Thoát về CSDL Chạy thủ tục này bằng cách chọn Forms, kích đúp vào tên DauForm ta thấy một

Form hiện ra. Tiếp theo bạn kích vào vùng FormHeader, chương trình chạy và kết quả là bảng

SoLuong được mở ra như sau:

Sự kiện Click ở các vùng còn lại thiết kế tương tự. Tất nhiên không chỉ có sự kiện Click (),mà có rất nhiều sự kiện, bạn tự tìm hiểu theo cái Logic đó.

8.2.2 Thủ tục đáp ứng sự kiện với ReportCũng như sự kiện với Form, trên Report cũng có 6 vùng. Giả sử ta mở Report có tên:So_LuongReport như hình sau:

Page 106: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 106

Nhìn vào hình trên ta thấy: Phía bên phải có hộp thoại Report, hộp thoại này đang được chọnEvent và có 7 thủ tục đáp ứng sự kiện. Giả sử ta d ùng sự kiện On Open. Theo các bước xâydựng chương trình như đã nói ở trên, ta có:

Bạn gõ thêm dòng lệnh ở thân thủ tục:MsgBox(“Chao ban, an OK de mo Report nay”)

Vì đây là Report đã có tên (So_luongReport), nên bạn chỉ lưu lại. Hãy thoát về CSDL và chạyReport này. Kết quả ta nhận được:

Page 107: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 107

8.2.3 Thủ tục đáp ứng sự kiện của các điều khiển khác tr ên FormTrên Form ta có thể đặt các đối tượng khác và các đối tượng này cũng có các sự kiện như:Kích, kích đúp, v.v..Dạng tổng quát của sự kiện của đối t ượng này như sau:

[Private] Sub <Tên đối tượng >_<tên đáp ứng sự kiện >() <Nhóm lệnh >

End SubVí dụ: Giả sử trên Form ta đặt một nút lệnh có tên là Command0, thì thủ tục đáp ứng sự kiệncó dạng sau:

Private Sub Command0_Click() <Thân thủ tục >

End SubBạn có thể viết mã cho thân thủ tục tuỳ ý, giả sử ta chỉ thêm một lệnh:MsgBox (“Chao ban”) và ghi l ại tệp này với tên: FormNutLenh như sau:

Thoát về CSDL, kích đúp vào FormNutLenh như hình sau:

Page 108: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 108

Ta có hình mới như sau:

Nếu bạn kích vào nút lệnh có tiêu đề Command0 thì thủ tục sẽ chạy và cho ta:

Nếu bạn chọn OK thì chương trình sẽ kết thúc, vì trong chương trình ta chỉ mới cài 1 lệnh:MsgBox(“Chao ban”)

8.3 Tạo và thực hiện thủ tục và hàm8.3.1 Cách tạo thủ tục và hàm.a.Taọ thủ tục, hàm trong Module Tab.

Bước 1: Từ cửa sổ Database chọn Tab Module chọn New, sau đó cửa sổ soạn thảo xuấthiện như sau:

Bước 2: Khai báo và tạo lập thủ tục hoặc hàmBước 3: Ghi Module

Ví dụ: Vào tuổi của hai người, tính tuổi trung bình của họ.

Page 109: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 109

Function Tong()Dim T1 As Interger

Dim T2 As Interger Dim TB As SingleT1 = InputBox( “vào tuoi cua nguoi thu nhat?”)T2 = InputBox( “vào tuoi cua nguoi thu hai?”)TB=(T1+T2)/2MsgBox “Tuoi trung binh la:” & Str(TB)

End FunctionTuổi trung bình có thể không phải nguyên (vì phải chia cho 2), do đó ta phải khai báo l à thực(Single). Số thực trong máy là số có dấu chấm thập phân, ví dụ: 23.45, 12.00, -45.34567, v.v..b. Tạo thủ tục đáp ứng sự kiên của các điều khiển trên Form.Trên Form ta có thể đặt các điều khiển như nút lệnh chẳng hạn, nút lệnh này cũng có các sựkiện. Các bước tiến hành:Bước 1: Mở Form và bổ sung một đối tượng lên Form, giả sử nút lệnh (Command button)chẳng hạn.Bước 2: Mở cửa sổ Code:

Chọn nút lệnh, kích nút Build trên thanh Form Design, sau đó hộp thoại CodeBuilder hiện ra:

Chọn Code Builder và chọn OK, một thủ tục sự kiện xuất hiện:

Soạn thủ tục hoặc hàm đáp ứng sự kiện. Ghi lại thủ tục đó và chạy thửHoặc: Chọn nút lệnh Mở hộp thoại Properties bằng cách chọn View và Properties Chọn thuộc tính On Click trong nhóm Event. Kích chọn nút … (Event procedure) ứng

với dòng On Click. Chọn Code Builder, chọn OKBước 3: Soạn thủ tục đáp ứng sự kiện.Bước 4: Ghi và chạy thử.Ví dụ: Tạo nút lệnh có tên Command0, khi ta kích vào nút l ệnh này thì bảng có tên So_Luongđược mở ra. Các bước tiến hành như sau: Mở một database và tạo bảng có tên So_Luong

Page 110: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 110

Mở cửa sổ Design Form Tạo nút lệnh (command Button) có ti êu đề là Mở tệp như hình sau:

Kích nút Build từ hộp thoại Choose Builder, chọn Code builder và OK một thủ tục hiệnra.

Ta soạn thủ tục đáp ứng sự kiện cho nút lệnh đó:Private Sub Command0_Click()

DoCmd.Opentable”So_luong”End Sub

Ghi lại, sau đó chạy chương trình và kích vào nút lệnh này ta có kết quả là bảngSo_Luong đã được mở như sau:

c. Chương trình có nhiều thủ tụcMột thủ tục khi chạy có thể yêu cầu (gọi) một hoặc nhiều thủ tục khác l àm việc. Lệnh gọi nàyđược viết lại đúng tên thủ tục bị gọi, ví dụ hai thủ tục sau:

Sub MoBang() DoCmd.OpenTable”So_luong”

End SubVà thủ tục tính tổng:Sub Tong()

Dim a As Integer, b As Integer, s As Integer a = 12 b = 20 s = a + b MsgBox ("s=" & Str(s))

End SubĐể chạy được 2 thủ tục trên, ta có thể tạo một thủ tục khác (giả sử có t ên là GOI(), thủ tụcGOI có dạng sau:

Sub GOI()

Page 111: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 111

MoBang Tong

End SubKhi chạy, thủ tục GOI() yêu cầu thủ tục MoBang() làm việc, thủ tục MoBang ()làm việc xonglại quay về thủ tục GOI() và thực hiện tiếp lệnh sau đó (tức l à lệnh gọi thủ tục Tong). Cứ nhưthế cho đến khi tất cả các lệnh trong thủ tục GOI() đ ược hoàn tất. Ba thủ tục đó nằm trong mộtđoạn mã (chương trình) như sau:

Nếu các bạn thay đổi trật tự các thủ tục đó nh ư hình sau:

Page 112: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 112

Thì có còn đúng không? Tất nhiên vẫn không sao, miễn là thủ tục GOI() phải được chạy trướcthì trật tự mới đúng. Vậy làm thế nào để thủ tục GOI()được chạy trước? để làm được điều đóbạn theo các bước sau: Chọn Tools, chọn Macros... như hình sau:

Sau đó ta có hộp thoại:

Page 113: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 113

ở trên nếu bạn chon Run thì thủ tục Tong được chạy trước và như vậy 2 thủ tục còn lại bị bỏ(không hợp với ý ta), do đó bạn kích v ào thủ tục cần chạy trước (ở đây là thủ tục GOI). Saukhi kích vào thu tục GOI ta có:

Để chạy bạn kích luôn vào RUN.Bạn cũng có thể xoá thủ tục bằng việc chọn thủ tục đó v à chọn Delete, còn muốn sửa một thủtục hãy chọn thủ tục đó và chọn Edit. Ngoài ra bạn muốn xem một thủ tục chạy có hợp ýmuốn của bạn hay không bằng cách chon thủ tục đó v à chọn Step Into, sau khi thực hiện mộtcông đoạn, máy sẽ dừng, bạn phải chọn RUN trên thanh Menu và chọn Continue để máy thựchiện tuần tự cho đến hết các lệnh của thủ tục đó.8.3.2 Đặt các thuộc tính cho điều khiểnMỗi điều khiển, ví dụ như Nút lệnh (Command Button), Hộp văn bản (Text Box), Nh ãn(Label), v.v..đều có các thuộc tính của nó. Thế thuộc tính l à gì? Hiểu nôm na là “tập hợn cáctính chất thuộc điều khiển đó, gọi là thuộc tính”, ví dụ thuộc tính của Text Box l à: Màu nềnxanh, màu chữ đỏ, độ cao 500 điểm ảnh, độ rộng 1000, font chữ vnTime, cỡ chữ 20, lề tr ên30, lề trái 50, v.v... Ta nên nhớ một điều là: Mỗi điều khiển đều có một danh sách các thuộc tính, danh sác h này nằm ở trong một cửa

sổ, gọi là cửa sổ thuộc tính (Properties Window) Khi một điều khiển đã được đặt lên Form, nếu chọn nó (kích vào nó) thì cửa sổ thuộc tính

hiện ra (hay nếu chưa thấy nó, bạn chọn View và chọn Properties Window) Thuộc tính được phân chia thành các nhóm: Format (đ ịnh dạng), Data (dữ liệu), Event

(thủ tục đáp ứng sự kiện), Other (nhóm khác) v à All (chứa tất cả các thuộc tính)Ví dụ hình sau:

Page 114: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 114

Hình trên cho ta biết: Nút lệnh có tiêu đề là “Mở tệp” đã được chọn (nhận biết qua việc xuất hiện 8 ô

vuông ở 4 góc và ở giữa bốn cạnh). Hình vuông to nhất ở góc trên bên trái dùng để dichuyển điều khiển, khi bạn đưa trỏ chuột vào hình vuông này, bạn ấn và giữ phímchuột đồng thời kéo, điều khiển sẽ di chuyển theo h ướng kéo của bạn.

Hình bên phải là cửa sổ thuộc tính của nút lệnh có ti êu đề là “Mở tệp”. Cửa sổ nàyđang hiện nhóm thuộc tính thuộc nhóm Format. Muốn chọn một thuộc tính nào đó đểgán cho nút lệnh này, bạn kích vào ô bên phải ứng với dòng có thuộc tính cần chọn, gõthuộc tính vào, hoặc tìm thuộc tính đã có sắn (tuỳ theo giao diện t ìm thuộc tính đó).

Nếu bạn kích vào Form, ta có:

Là thuộc tính của Form ứng với nhóm Event. Thao tác về nhóm Event như đã nói ở các phầntrên.Giả sử ta đặt một nút lệnh lên Form, bình thường trên bề mặt nút lệnh có chữ Command0, nếutạo nút thứ 2 sẽ có Command1 v.v.. Nếu muốn thay đổi chữ đó h ãy mở cửa sổ Properties,chọn Caption và gõ tiêu đề mới vào. Có nhiều thuộc tính khác nữa như: Name, Font v.v..Tính chất Name rất quan trọng, nó mang tên của nút lệnh và vì vậy tên thủ tục đáp ứng sựkiện của nó cũng mang tên này. Nếu bạn chọn nút lệnh, chọn nhóm Other, chọn Name và gõtên là “MoBang” (hay 1 tên nào đó tuỳ bạn) vào, thì thủ tục đáp ứng sự kiện là:

Private Sub MoBang_Click() DoCmd.Opentable “So_luong”

End SubLệnh DoCmd.OpenTable “So_luong”, có 3 phần:

Lớp DoCmd (đây là đối tượng thuộc lớp lệnh) OpenTable (Mở bảng) “So-Luong” (tên cụ thể của bảng)

Page 115: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 115

Nghĩa của lệnh là mở bảng (OpenTable) có tên “So _luong” thu ộc lớp DoCmd.

8.4 Các phép toán, hàm, biến, biểu thức.8.4.1 Các phép toán.

a. Các phép toán số học+ : Cộng- : Trừ* : Nhân/ : Chia

Mod : Chia lấy phần dư\ : Chia nguyên^ : Luỹ thừa

b. các phép toán so sánh:= : Bằng< : Nhỏ hơn> : Lớn hơn

>= : Lớn hơn hoặc bằng<= : Nhỏ hơn hoặc bằng<> : khác

c. các phép toán Logic: AND, OR, NOTCác phép toán so sánh tạo nên biểu thức logic cho kết quả True(-1) hoặc False(0)

X Y X And Y X Or Y Not (x)-1-100

-1000

-1-1-10

-1-1-10

00-1-1

d. Phép ghép chuỗi ký tựMuốn ghép 2 chuỗi ký tự ta sử sụng phép toán & hoặc dấu +Ví dụ:Sub GhepVanBan()

Dim ho As String*7 Dim dem As String*7 Dim ten As String*7 Dim name As String *23

ho=”Hoang”dem=”Xuan”ten=”Thao”

name=ho & “ “ & dem & “ “ & tenMsgBox( “Ho và ten: “ & name)End SubChú ý:

Khai báo: Dim ho As String*7 có nghĩa biến ho là văn bản (String) có độ dài khôngquá 7 ký tự.

Giữa Họ, đệm và tên phải có một dấu trống (hay còn gọi là dấu cách) cho dễ đọc, dođó ta phải ghép với 1 dấu cách: & “ “ & (v ì dấu cách cũng là ký tự)

8.4.2 Biểu thức (Expression)Các biến, hằng, hàm nối với nhau bởi phép toán được gọi là biểu thức, biểu thức cũng có thểchỉ là 1 biến, 1 hằng, 1 hàm. Điều quan trọng là bạn phải viết biểu thức đúng quy định (đúngphép toán đã quy định, đúng tên biến, đúng tên hằng, đúng cách viết hằng v.v..). Ví dụ: Biểu thức chỉ chứa hằng: (234+678)/13 Biểu thức số chỉ chứa biến: (a+b+c)*(a+b) Biểu thức số vừa chứa biến và hằng: (a+b)/7 Biểu thức văn bản: “Tin hoc” & “Văn phong”

Page 116: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 116

Biểu thức logic:(5>13) Or (3<9) ...Nếu bạn viết biểu thức như sau:12 x 45 (Sai vì phép nhân phải là dấu *)

(Sai vì phép chia phải là dấu /, v.v..

8.4.3 Các hàm thường sử dụng.Với các hàm, bạn cũng phải viết đúng theo quy định của Access, ví dụ Sin (x), Cos(x), Sqr(x),v.v..các hàm như đã trình bày ở chương 5.

8.4.4 Biếna. Khai báo biếnBiến phải khai báo để chương trình xác định:

Tên của biến là gì? vì chương trình sẽ làm việc với tên đó. Kiểu của biến là gì? (nguyên, thực, logic, văn bản, v.v..) v ì chương trình phải “xếp

chỗ” cho các biến “lưu trú”, nghĩa là chương trình phải huy động ô nhớ phù hợp vớikiểu của biến, ví dụ nếu biến nguyên thì ô nhớ “bé”, số thực thì ô nhớ “to”, v.v..Việckhai báo là để xếp chỗ ở của biến (ô nhớ) cho hợp lý, tránh l ãng phí (thừa không gian“lưu trú” hoặc không đủ chỗ để “lưu trú”)

Dạng khai báo biến như sau:Dim <Tên biến > [As<kiểu>]

<Tên biến >: Bạn tự đặt theo luật sau: là một chuỗi các chữ cái, chữ số, dấu gạchchân, độ dài tên không quá 40 ký tự, không được trùng với các từ khoá có trongAccess và đặc biệt ký tự đầu phải là chữ cái..

[As<kiểu>]: Nếu phần này không ghi thì coi như biến đó ngầm định có các kiểu:Kiểu số, chuỗi, Date/Time, Null (rỗng). Khi sử dụng biến đó tuỳ ngữ cảnh m à xácđịnh kiểu sau. Còn nếu ghi phần này thì kiểu có thể là: Nguyên, thực, văn bản, v.v..

Ví dụ về khai báo biến:Dim i As Interger (i là biến nguyên ngắn)Dim k As Long (k là biến nguyên dài)Dim x As Single (x là biến thực ngắn)Dim y As Double (y là biến thực dài)v.v..Số nguyên ngắn là số nguyên được dùng 2 Byte để lưu nó, bạn đã biết 2 Byte là 16 Bit, dành1 Bit để biểu diễn dấu của số (số âm hoặc số d ương), còn lại 15 bit. Nếu tất cả 15 bit đều ghisố 1 thì số hệ 2 lớn nhất chứa trong 2 Byte đó là:111111111111111=214+213+...+21+20 =32.767 (hệ 10). Nghĩa là lớn nhất không quá 32.767.Còn số nguyên dài (Long) lưu trong 4 Byte. V ới cách tính đó thì số nguyên dài là:1111111111111111111111111111111=2 30+229+228+...+21+20=2.147.483.647. Tương tự sốthực ngắn (Single) 4 Byte, số thực d ài (Double) 8 Byte, 1 ký tự 1 Byte, v.v..

Ngoài biến ứng với dữ liệu (Integer, Single,v.v..) c òn có biến ứng với đối tượng như:CommandButton, TextBox, Label, Database, v.v..Khai báo c ũng như vậy, ví dụ:Dim M As TextBoxDim Db As DatabaseV.v..

Page 117: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 117

8.5 Một số lệnh về lập trình:Khi lập trình trong Access, 1 câu lệnh chỉ được viết trên 1 dòng, nếu muốn viết nhiều câu lệnhtrên 1 dòng ta phải dùng dấu hai chấm (:) để ngăn cách.Ví dụ: a=4: b=7: s=a+bCác câu ghi chú, có ý ngh ĩa giải thích rõ chức năng từng hằng, biến, biểu thức, câu lệnh, v.v..Câu ghi chú phải bắt đầu bằng REM hoặc dấu nháy đ ơn (‘),ví dụv:Rem Doan ma sau là de vao du lieu8.5.1 Vào ra dữ liệu

a. Lệnh Inputbox $Chức năng: Cho phép nhập giá trị kiểu văn bản vào bộ nhớ từ bàn phímCú pháp:

Inputbox$(<Thông báo >[ , [<Tiêu đề >][,<Giá trị ngầm định >]])Ví dụ: Nhập tên của một khách hàng vào biến KhDim Kh As String *20

Kh=InputBox$( “Tên khách hàng”)b. Lệnh Inputbox

Chức năng: Cho phép nhập giá trị kiểu Varial vào từ bàn phímCú pháp:

InputBox(<Thông báo >[ , [<Tiêu đề >][,<Giá trị ngầm định >]])Ví dụ: Nhập số chứng từ của một hoá đ ơn vào biến SctDim SctSct=InputBox( “Số chứng từ”)c. Lệnh MsgBoxChức năng: Hiện chuỗi văn bản (thông báo) ra hộp thoại.Cú pháp:MsgBox(<Nội dung >[ ,< kiểu>[ ,< Tiêu đề>]])Ví dụ:MsgBox (“Hello Thao”Ví dụ 2: Nhập và tính tổng hai số và in kết quả ra hộp thoạiSub Tong()

Dim a As Interger, b As Intergera=InputBox( “vào a=”)b= InputBox( “vào b=”)Msgbox “Kết quả là:” & Str(a+b)

End Sub8.5.2 Lệnh gánNhư đã nói qua ở phần đầu lập trình, lệnh gán có dạng:<Biến>=<Biểu thức >Ví dụ: s=s+iỞ đây không phải là “phương trình” hay là “một đẳng thức” để bạn tùy ý biến đổi. Mà cách

viết (s=s+i) phải hiểu là: Lấy nội dung của ô có “tên s”, cộng với nội dung có “tên i”, kết quảđể ở ô có tên s. Nói đến xử lý dữ liệu thì trước hết phải hiểu là dữ liệu đang nằm ở ô nhớ nàotrong bộ nhớ, việc tương tác 2 ô (hoặc trên 2 ô) sẽ sinh ra kết quả (tổng, tích, th ương, v.v..),kết quả đó cũng phải để ở một ô nhớ xác định. Ô nhớ đó có thể l à một trong các ô chứa toánhạng, hoặc ngoài ô chứa toán hạng:s=a+b+c (ô nhớ tổng (s) không trùng với ô chứa số hạng)i=i+1 (ô nhớ tổng (i) trùng với ô toán hạng i.Ví dụ hai lệnh sau:

Page 118: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 118

s=2s=s+sBan đầu s bằng 2, sau đó lấy nội dung của ô s (l à 2) cộng với nội dung ô s (cũng là 2) kết quảlà 4, số 4 này lại để trong ô s. Vậy sau khi thực hiện hai lệnh đó kết quả cuối c ùng trong ô s là4.8.5.3 Lệnh rẽ nhánh IF …THEN…END IFDạng 1:If <Biểu thức điều kiện > Then

<Nhóm lệnh >End IfHoạt động của lệnh này như sau:Nếu<Biểu thức điều kiện > đúng th ì thực hiện <Nhóm lệnh >Nếu<Biểu thức điều kiện > sai th ì bỏ qua lệnh If.Ví dụ:Sub XemTuoi()

Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”)

If tuoi>60 ThenMsgBox( “Chắc bạn nghỉ hưu rồi?”

End IfEnd Sub

Khi chạy chương trình: Nếu bạn gõ vào 65 (lơn hơn 60) và Enter th ì máy sẽ in ra câu: “Chắc bạn nghỉ hưu

rồi”. Còn nếu bạn gõ vào 25 (nhỏ hơn 60) và Enter thì máy không đưa ra gì cả.

Dạng 2:If <Biểu thức điều kiện > Then<Nhóm lệnh 1>

Else<Nhóm lệnh 2>End IfHoạt động:Nếu <Biểu thức điều kiện > đúng thì thực hiện <Nhóm lệnh 1> bỏ <Nhóm lệnh 2>Nếu <Biểu thức điều kiện > sai thì thực hiện <Nhóm lệnh 2> bỏ <Nhóm lệnh 1>Ví dụ 1: Ta sửa lại thủ tục XemTuoi ()để gặp trường hợp nào máy cũng trả lời®:Sub XemTuoi()

Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”)

If tuoi>60 Then MsgBox( “Chắc bạn nghỉ hưu rồi?”

Else MsgBox( “Bạn chưa đến tuổi nghỉ hưu!”

End IfEnd Sub

Ví dụ 2: Lập trình giải phương trình bậc hai: ax2+bx+c=0Để tính nghiệm phương trình bậc hai này, bạn phải cho máy biết ba giá trị cụ thể ứng với a, b,c (ở đây kiểu 3 biến ấy là thực, rõ ràng bạn phải dùng lện InputBox). Nhờ giá trị cụ thể 3 biến

Page 119: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 119

đó bạn tính được Delta, sau đó bạn phải xem xét nếu (If) Delta không âm thì có 2 nghiệm, nếuâm thì vô nghiệm. Trình tự đó (giải thuật) được liệt kê như sau:Sub GPTB2()

Dim a As Double, b As Double, c As Double, Delta As DoubleDim x1 As Double, x2 As Doublea= InputBox(“vao a=”)b= InputBox(“vao b=”)c= InputBox(“vao c=”)Delta= b*b – 4*a*c

If Delta>0 Then x1=(-b+Sqr(Delta))/(2*a) x2=(-b-Sqr(Delta))/(2*a) MsgBox (“x1=” & Str(x1) MsgBox (“x2=” & Str(x2))

Else MsgBox (“Pt vo nghiem”)

End IfEnd Sub8.5.4 Lệnh chọn Select CaseKhông phải lúc nào cũng “không thế này thì thế kia” (2 nhánh) mà có những trường hợp bạnphải chọn 1 trong nhiều nhánh, ví dụ: Giả sử bằng tốt nghiệp của bạn có 3 loại: Trung b ình,Khá và Giỏi. Nếu khá thì được thưởng 100.000đ, nếu giỏi được thưởng 200.000đ, còn trungbình thì không được thưởng. Để biết bằng của bạn thuộc loại n ào và được thưởng bao nhiêu“máy suy luận” như sau:

Nếu bằng của bạn thuộc loại trung bình thì “Không được thưởng” (xong) Còn không phải trung bình thì:

Nếu loại khá thì thưởng 100.000đ (xong)Còn không phải khá thì:

Thưởng 200.000đ (Xong)Rõ ràng bạn chỉ chọn 1 trong 3 nhánh đó. C òn nếu không phải cả hai nhánh đầu th ì chắc làgiỏi (chẳng lẽ không có loại nào?)Tuy đơn giản như vậy nhưng “đối với máy” thì cũng phải rõ ràng (chứ không phải “nhìn” làbiết được). Chương trình như sau:

Sub XetThuong() Dim Loai As Integer

Loai=InputBox( “Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”)Select Loai

Case 1 MsgBox( “Bạn không được thưởng”)

Case 2 MsgBox( “Bạn được thưởng 100.000đ”)

Case Else MsgBox( “Bạn được thưởng 200.000đ”)

End SelectEnd Sub

Khi chạy chương trình, nếu bạn gõ vào số 3 thì máy sẽ in dòng:” Bạn được thưởng 200.000đ”.Nhưng nếu bạn không may gõ nhầm số 6 (gõ nhầm là bình thường mà!) thì máy vẫn thưởng

Page 120: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 120

bạn 200.000đ, mặc dù không có loại nào là loại 6 cả. Để an toàn bạn sửa lại đoan mã trên nhưsau:

Sub XetThuong() Dim Loai As Integer

Loai=InputBox( “Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”)Select Loai

Case 1 MsgBox( “Bạn không được thưởng”)

Case 2 MsgBox( “Bạn được thưởng 100.000đ”)

Case 3 MsgBox( “Bạn được thưởng 200.000đ”)

Case Else MsgBox( “Bạn gõ nhầm loại bằng rồi!”)

End SelectEnd Sub

Cú pháp tổng quát của lệnh Select như sau:Select Case <Biểu thức nguyên >

Case <Giá trị 1> <Nhóm lệnh 1>

Case <Giá trị 2> <Nhóm lệnh 2>

………..Case <Giá trị n > <Nhóm lệnh n >

[Case Else <Nhóm lệnh n +1>]

End SelectNếu <Giá trị i > bằng i th ì thực hiện <Nhóm lệnh i > và kết thúc lệnh Select Case.Còn nếu không có 1 trường hợp nào đúng thì hực hiện <Nhóm lệnh n +1> và cũng kết thúcluôn lệnh Select Case hoặc ra khỏi Select Case nếu không d ùng lệnh Case Else..Ví dụ: Tạo một thủ tục lập kế hoạch công tác trong tuần, đặt v ào nút lệnh Command () trênForm. Khi chạy chương trình và kích hoạt nút lệnh thủ tục được thực hiện:Private Sub command0_Click()

Dim Thu As Integer Thu = InputBox( “Bạn cho biết thứ? ”)

Select Case Thu Case 2

MsgBox ( “Họp giao ban”) Case 3

MsgBox ( “Đi xuống phân xưởng”)Case 4

MsgBox ( “Đi lên tổng công ty”) Case 5 Or 6

MsgBox ( “Họp các phân xưởng”) Case Else

MsgBox ( “Nghỉ”)End Select

Page 121: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 121

End Sub8.5.5 Lệnh lặp For …NextGiả sử ta phải tính s =1+ 2+ 3+ 4+...+ 2000. R õ ràng ta không thể viết một lệnh gán gồm 2000số hạng được. Do đó người ta phải dùng một “mẹo” khác:

Ta thấy số hạng thứ i bằng số hạng thứ i -1 cộng thêm 1. Chưa cộng thì s chưa có gì (bằng0)

Ta “cộng dồn dần” như sau:Bước 1: Đặt s =0, i=1Bước 2: s=s+iBước 3: i=i+1Bước 4: Quay về Bước 2, lặp lại như trước.Quá trình đó được lặp đi lặp lại cho đến khi i >2000 th ì thôi.Chương trình như sau:

Sub Tong() Dim i As Integer, s As Long s=0 i=1

10: s=s+i i=i+1

If i<=2000 Then Goto 10

End If MsgBox(“s=”& Str(s))

End Sub

Trước lệnh gán s =s+i có mốc (10:) ng ười ta còn gọi là nhãn, nghĩa là nhảy đến nhãn 10. Cònlệnh Goto 10 là lệnh yêu cầu chương trình lại làm tiếp lệnh có nhãn 10. Để viết gọn quá trìnhtrên người ta đưa ra lệnh For... Next. Ta sửa lại chương trình trên cho “đẹp” hơn như sau:

Sub Tong() Dim i As Integer, s As Long s=0

For i=1 To 2000 Step 1 s=s+i

Next i MsgBox(“s=”& Str(s))

End SubLệnh For có cú pháp tổng quát nh ư sau:For <Biến đếm >=<Giá trị đầu > To <Giá trị cuối >[Step <Bước tăng >]

<Nhóm lệnh >NextBan đầu <Biến đếm > nhận <Giá trị đầu >, và so sánh với <Giá trị cuối >, nếu lớn hơnthì kết thúc For, nếu nhỏ hơn hoặc bằng thì thực hiện <Nhóm lệnh >, gặp Next, <Biến đếm> cộng thêm với <Bước tăng >, và đồng thời so sánh với <Giá trị cuối >, nếu lơn hơn thì kếtthúc For, còn nếu đang nhỏ hơn hoặc bằng thì lại thực hiện <Nhóm lệnh>, gặp Next lại làmtiếp như trên.Ví dụ: Tính tổng s =11+22+33+...+1010 .Sub Tong()

Dim s As Double, i As Integer

Page 122: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 122

For i = 1 To 10 Step 1 s = s + i^i

NextMsgBox “Kết quả là:” & Str(s)

End Sub8.5.6 Lệnh Do While ….LoopLệnh For ứng với số lần lặp xác định, ví dụ b ài toán: s=11+22+33+...+1010 là 10 lần lặp, còn s=1+ 2+ 3+ 4+...+ 2000. là 2000 lần lặp. Nhưng có những bài toán ta không biết trước được sốlần lặp là bao nhiêu, thì làm thế nào?Ví dụ:

Cứ cộng mãi, chỉ dừng khi một số hạng nhỏ hơn 0.0001 chẳng hạn. Rõ ràng ta phải có“mẹo” khác.

Cách lập luận như sau:Ta gọi mỗi số hạng là a. Hình sau:

i cứ tiến từ 1, 2, ..., n (đóng vai tr ò mẫu số). Còn a được sinh ra từ i (a=1/i) và so sánh: nếu a<=0.0001 thì dừng.Chương trình như sau:Sub Tong()

Dim s As Double, a As Double, i As Integeri= 1a=1/is= 0Do While a>=0.0001

s= s+a i= i+1 a=1/i

LoopMsgBox ( “Kết quả:”) & Str(s)

End SubVì i =1 nên a =1/1 cũng bằng 1, nên a không thể lớn hơn 0.0001, do đó tính s =s+a và i =i+1,a=1/i (=0,5). a=0.5 cũng không thể nhỏ hơn 0.0001 nên lại sinh ra s mới (s=s+a), i mới (i=i+1)và a mới (a=1/i), v.v..Dạng tổng quát như sau:Do While <Điều kiện >

<Nhóm lệnh >LoopChừng nào <Điều kiện > còn đúng thì thực hiện <Nhóm lệnh >Khi <Điều kiện > sai thì ra thì thoát khỏi vòng lặp và thực hiện nhóm lệnh sau Loop.8.5.7 Lệnh Do Until …LoopDạng tổng quát của dạng này:Do Until <Điều kiện ><Nhóm lệnh >Loop

Page 123: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 123

Chừng nào <Điều kiện > vẫn còn sai thì thực hiện <Nhóm lệnh >.Ví dụ trên ta viết lại theo lệnh này:Sub Tong()

Dim s As Double, a As Double, i As Integeri= 1a=1/is= 0Do Until a< 0.0001

s= s+a i= i+1 a=1/i

LoopMsgBox ( “Kết qu ả:”) & Str(s)

End Sub

Khi <Điều kiện > đúng thì ra khỏi vòng lặp và thực hiện nhóm lệnh sau Loop.

8.6 Đối tượng, biến đối tượng và cách xử lý các đối tượng8.6.1 Đối tượng và khai báo đối tượngTrong Access có một số đối tượng mà bạn cần quan tâm:

Đối tượng DBEngine: chứa đối tượng Workspaces (vùng làm việc) Đối tượng Workspaces: chứa nhiều vùng làm việc, mỗi vùng chứa một Database. Đối tượng Database: chứa CSDL Đối tượng RecordSets: chứa các đối tượng trong CSDL Đối tượng Tabledefs: chứa các bảng của một CSDL Đối tượng Querydefs: chứa các truy vấn của một CSDL Đối tượng Field: chứa các trường trong bảng Đối tượng Form: chứa các Form v.v..

Cách khai báo biến đối tượng:Dim <Tên_biến> As <Kiểu_đối_tượng >

Sử dụng biến đối tượng:a. Kiểu Database cho phép tham chiếu đến một CSDL, vì vậy để làm việc với một CSDL taphải khai báo biến kiểu DatabaseĐể làm việc với một CSDL hiện thời ta l àm như sau:

Dim Db As Database (Khai báo biến Db có kiểu Database) Set Db=DBEngine.Wokspaces(0).Database(0) (gắn biến Db ứng với CSDL hiện

thời)Hoặc có thể viết:

Dim Db As DatabaseSet Db=CurrentDb() (Gắn biến Db với CSDL hiện thời)

Làm việc với 1 CSDL khácL:Dim Db As DatabaseSet Db= DBEngine.Wokspaces(0).Database (<Tên_CSDL>)

b. Sử dụng biến kiểu RecordSetKiểu RecordSets cho phép ta tham chiếu đến các đối tượng của CSDL đã khai báo như:Bảng, truy vấn, các bản ghi, v.v..Ví dụ 1: Tạo 1 biến kiểu RecordSet gắn với bảng So_luong của CSDL hiện thời:

Page 124: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 124

Sub Form_Load() Dim Db As DatabaseDim Rec As Recordset

Dim Dem As Integer Set Db = CurrentDb()Set Rec = Db.OpenRecordset("So_luong", DB_OPEN_TABLE)Dem = Rec.RecordCount

MsgBox "Tổng số bản ghi là" + Str(Dem)End SubỞ trên ta dùng thủ tục Form _Load(), thủ tục này khi chạy thì tự động nạp Form.Ví dụ 2: Ta có thể dùng một biến bảng như sau::Sub Form_Load()

Dim Db As Database Dim TB As TableDef Dim Dem As Integer

Set Db = DBEngine.Workspaces(0).Databases(0) Set TB = Db.TableDefs("So_luong")

Dem = TB.RecordCountMsgBox "So ban ghi của Bang So _luong la:" & Str(Dem)

End SubVí dụ 3: Ta có bảng KhoiA (khối A) gồm các trường: Hoten, NgaySinh, DienToan, DienLy.DienHoa, DiemTong, GhiChu như sau:

Hãy lập trình để tính DiemTong: DiemTong=DiemToan+DiemLy+DiemHoa. Sub Form_Load()

Dim Db As DatabaseDim Rec As RecordsetSet Db = CurrentDb()Set Rec = Db.OpenRecordset("KhoiA")Do Until Rec.EOF ‘Làm cho đến hết tệp

Rec.Edit ‘cho phép sửa nội dung các bản ghi Rec![TongDiem] = Rec![DiemToan] + Rec![DiemLy] + Rec![DiemHoa] Rec.Update ‘cập nhật giá trị mới Rec.MoveNext ‘Di chuyển đến bản ghi kế tiếp

Loop Rec.Close

Db.CloseEnd Sub

Sau khi chạy chương trình ta có nội dung bảng mới như sau:

Page 125: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 125

Chú ý: Ta viết Rec![TongDiem], nghĩa l à trường TongDiem trong trong bản ghi, để phân biệt với

biến khi khai báo từ khoá Dim...Ví dụ 4: Cũng từ ví dụ 3, hãy lập trình để ghi vào trường GhiChu chữ “Do” nếu TongDiem>=15 hoặc chữ “Truot” nếu TongTong <15 Sub Form_Load()

Dim Db As DatabaseDim Rec As RecordsetSet Db = CurrentDb()Set Rec = Db.OpenRecordset("KhoiA")Do Until Rec.EOF ‘Làm cho đến hết tệp

If Rec![TongDiem]>=15 Then Rec.Edit ‘cho phép sửa nội dung các bản ghi Rec![GhiChu]=”Do”

Else Rec.Edit ‘cho phép sửa nội dung các bản ghi Rec![GhiChu]=”Truot”

End If Rec.Update ‘cập nhật giá trị mới Rec.MoveNext ‘Di chuyển đến bản ghi kế tiếp

Loop Rec.Close

Db.CloseEnd Sub

Sau khi chạy ta co:

8.6.2 Mở đóng các đối tượng bằng câu lệnh Macro.a. Câu lệnh Macro.aĐể thực hiện một Macro ta dùng lệnh sau:

DoCmd. <Tên_hành_động>[,<danh sách đối số >]Lệnh này phải đựơc đặt trong các hàm hoặc thủ tục để thực thi.b. Hành động mở, đóng các đối tượng.

Page 126: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 126

Đóng các đối tượng: CLOSEví dụ: Để đóng một Form DanhSach ta gõ như sau:DoCmd.Close acForm, “DanhSach”, acSaveYesAcForm: là thông số chỉ Form đang hoạt độngAcSaveYes: là thông số cho phép khi đóng Form thì ghi lại mọi sự thay đổi trên đó.Để đóng các đối tượng khác ta làm tương tụ như ví dụ trên.

Mở các đối tượng ta sử dụng những hành động sau:- OpenTable: Mở một bảng- OpenForm: Mở một Form- OpenReport: Mở một Report- OpenQuery: Mở một Query- OpenModule: Mở một Module

Ví dụ 1: Tạo một thủ tục thực hiện một Macro mở bảng DanhSachDoCmd.Opentable (“DanhSach”)Để mở các đối tượng khác ta làm tương tự như trên.Ví dụ 2: Giả sử trong CSDL hiện thời ta có:1. Hai bảng TaHsTs (bảng Hồ sơ Tuyển Sinh) và bảng TaDiemD (bảng Điểm khối D) .

Bảng TaHsTs có các trường sau: Sbd, HoTen, NgaySinh, GioiTinh, KhuVuc, UuTien,TonGiao, DanToc.

Bảng TaDiemD có các trường: Sbd, Toan, Van, Anh2. Ba Form TuyenSinh2007, FoHsTs, FoDiemDMột giao diện chính của Form TuyenSinh2007 nh ư hình sau:

Chú ý: thuộc tính Name cho 4 nút trên như sau: Nút có tiêu đề: “nhập hồ sơ” có tên NhapHoSo Nút có tiêu đề: “nhập điểm” có tên NhapDiem Nút có tiêu đề: “Kết thúc” có tên KetThuc

a. Khi ta kích hoạt nút NHAP HO SO th ì Form FoDsTs sẽ được mở để ta đưa dữ liệu vào,Form này được thiết kế có hình dạng như sau:

Page 127: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 127

Nút có tiêu đề: “nhập” có tên NhapLyLich Nút có tiêu đề: “kết thúc” có tên KetThucLyLich

b. Khi ta kích hoạt nút “NHậP Điểm” ở giao diện chính th ì Form FoDiemD sẽ được mở để tađưa dữ liệu điểm sau khi đã chấm. Giao diện này có cấu trúc như sau:

Chú ý: Thuộc tính Name cho 2 nút trên như sau: Nút có tiêu đề: “nhập liệu” có tên NhapDuLieu Nút có tiêu đề: “Kết thúc” có tên KetThucNhap

Sau đây là các thủ tục sự kiện cuả ba nút lệnh tr ên Form TuyenSinh2007 như sau: Mở Form TuyenSinh2007 bằng cách về CSDL, chọn Forms, chọn tệp

TuyenSinh2007, chọn Design Chọn nút có tiêu đề Nhập Hồ Sơ, chọn nút (Code) trên thanh Form Design ở hình

sau:

Page 128: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 128

Viết Code cho 3 thủ tục đó như sau:Option Compare DatabasePrivate Sub KetThuc_Click()

DoCmd.CloseEnd SubPrivate Sub NhapDiem_Click()

DoCmd.OpenForm ("FoDiemD")End SubPrivate Sub NhapHoSo_Click()

DoCmd.OpenForm ("FoHsTs")End SubTương tự viết Code cho 2 thủ tục của nút lệnh tr ên Form FoHsTs như sau:Rem Thủ tục trên Form FoHsTsOption Compare DatabasePrivate Sub KetThucLyLich_Click()

DoCmd.CloseEnd SubRem +--------------------------------------------------Private Sub NhapLyLich_Click()

Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaHsTs") Rec.AddNew Rec("SBD") = Sbd Rec("HOTEN") = HoTen Rec("GIOITINH") = GioiTinh Rec("KHUVUC") = Val(KV)

Rec("TONGIAO") = TonGiaoRec("DANTOC") = DanTocRec.Update

Sbd = ""HoTen = ""NgaySinh = ""GioiTinh = ""KhuVuc = ""TonGiao = ""DanToc = ""UuTien = ""Sbd.SetFocus

End SubTương tự như vậy viết tiếp cho 2 thủ tục của hai nút lệnh tr ên Form: FoDiemDRem Thủ tục trên Form FoDiemDOption Compare DatabasePrivate Sub KetThucNhap_Click()

DoCmd.Close

Page 129: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 129

End SubRem ............................... .....................................Private Sub NhapDuLieu_Click()

Dim Db As Database, Rec As RecordsetSet Db = CurrentDb() Set Rec = Db.OpenRecordset("TaDiemD") Rec.AddNew 'Thêm bản ghi mới

Rec("SBD") = Sbd Rec("Toan") = Val(Toan) Rec("Van") = Val(Van)

Rec("Anh") = Val(Anh)Rec.Update 'Cập nhập bản ghi mới vào bảng TaHsTsSbd = ""Toan = ""Anh = ""Van = ""Sbd.SetFocus 'Chuyển trỏ đến SBD.

End Sub

Bài tập chương 81. Hãy làm lại các ví dụ trong chương Lập trình trong Access, trên cơ sở đó bạn có thể tự

tạo ra một số ví dụ khác “na ná”, điều n ày giúp bạn làm quen dần với lập trình. Chúngtôi chưa yêu cầu bạn phải làm nhiều các bài tập khó về lập trình.

2. Tự tạo một CSDL gồm các TABLE, QUERY, FORM, REPORT- hãy tạo ra một Form giao diện gồm các nút lệnh và các sự kiện khi kích hoạt các nút lệnhđó:

Mở TABLE Mở QUERY Mở REPORT Mở FORM, trên Form dữ liệu này tạo ra các nút lệnh đáp ứng các sự kiện:

Thêm dữ liệu: Bổ sung bản ghi mới vào bảng dữ liệu (TABLE)Xoá: Xoá các bản ghi dữ liệu theo tiêu chuẩn nào đó.

Tìm Kiếm: Tìm một bản ghi thoả mãn điều kiện nào đó trong TABLE

Page 130: Đôi lời về Access! - el.hubt.edu.vnel.hubt.edu.vn/wp-content/uploads/2014/09/Giáo-trình-Quản-trị... · khái niệm trong giáo trình như: Quan hệ, Phụ thuộc hàm,

TRUNG TÂM ĐÀO TẠO TRỰC TUYẾN - ĐẠI HỌC KINH DOANH & CÔNG NGHỆ H À NỘI

ELEC Trang 130

Vài lời kết luận!1. Như đã nói ở phần đầu, giáo trình này bao gồm một số nét cơ bản nhất nhằm giúp cho

các bạn có một cái nhìn về hệ QTCSDL quan hệ trong môi tr ường Windows, đồng thờiứng dụng nó trong những điều kiện cụ thể đ ơn giản. Mọi bước tiến sau đều xuất pháttừ phần đơn giản này.

2. Các tính năng như: Copy, Cut, Paste, kích, kích đúp, rê, close, … đều giống như Wordhoặc Excel hoặc PowerPoint, trong phần n ày tác giả không mô tả lại.

3. Đây là giáo trình với số tiết không nhiều, “không thể gói gọn mọi thứ v ào một lọPelicline” mà tác giả chỉ “nhặt” ra những điều khôn g thể bỏ qua vì đây là nấc thang thứnhất tìm hiểu Access.

4. Thường thì khi viết Access người ta hay dùng CSDL có sẵn, mang màu sắc “nướcngoài” và như vậy sẽ gây rối rắm khi phải t ìm hiểu mối quan hệ giữa các trường (têntiếng anh) và càng khó hiện lại CSDL đó khi sang một vấn đề khác, ở đây tác giả chỉtạo ra một CSDL đơn giản để thao tác trên nó bởi vì mục đích chính là “ nội dung củathao tác” chứ không phải “nội dung là CSDL phức tạp”.

5. Khi tìm hiểu xong quyển này chắc các bạn sẽ không gặp khó khăn khi đọc các quyểnkhác “rất dày” chứa đựng “đủ thứ” và mang màu sắc “nước ngoài” trong đó (bởi vìngười ta biên dịch theo trật tự của nơi xuất xứ chứ không phải viết theo kiểu giáo tr ìnhcho người bắt đầu), các bạn hãy thử nghiệm xem.

6. Từ nội dung vô cùng phong phú của Access, tác giả đã “nhặt” ra những thao tác mà tácgiả coi là cơ bản nhất, vì đây là nội dung cho người bắt đầu tìm hiểu Access do đókhông thể tránh khỏi những sai sót về việc sắp xếp nội dung v à tính sư phạm của nó.Mong các bạn góp ý.

7. Vấn đề lập trình được trình bày đơn giản, đây là bước đầu tiên làm quen với lập trình,bởi vì suy cho cùng dù thích dù không, mu ốn tự động giải quyết tốt mọi công việcbằng Tin học không thể không biết lập tr ình. Các bạn còn sẽ làm quen tiếp về lập trìnhvới QTCSDL khác ngoài Access.