Giới thiệu về Hệ quản trị CSDL Microsoft Access Microsoft Access là một hệ quản trị cơ sở dữ liệu quan hệ, nó trợ giúp cho người sử dụng lưu trữ thông tin dữ liệu bên ngoài vào máy tính
Gi ớ i thi ệ u v ề H ệ qu ả n tr ị CSDL Microsoft Access
Microsoft Access là một hệ quản trị cơ sở dữ liệu quan hệ, nó trợ giúp cho người sử dụng lưu trữ thông tin dữ liệu bên ngoài vào máy tính dưới dạng các bảng và có thể tính toán, xử lý trên dữ liệu trong các bảng đã lưu trữ
Là tập hợp dữ liệu được lưu trữ một cách có tổ chức nhằm giúp việc xem, tìm kiếm, lấy thông tin được nhanh chóng và chính xác
1.1.2 Mô hình Cơ Sở Dữ Liệu quan hệ:
Dữ liệu bên ngoài được đưa vào máy tính thể hiện trong các bảng Mỗi bảng gồm nhiều cột và nhiều dòng Mỗi cột có một tên duy nhất mô tả về một thuộc tính của thực thể mà ta đang quản lý gọi là trường hoặc vùng (field) Mỗi dòng mô tả thông tin chi tiết về các thuộc tính của một đối tượng cụ thể trong quản lý gọi là một bản ghi hay một bộ (Record)
1.1.3 Hệ Quản TrịCơ Sở Dữ Liệu quan hệ:
Là phần mềm dùng để tạo lập Cơ Sở Dữ Liệu theo mô hình Cơ Sở Dữ Liệu quan hệvà thao tác trên CSDL đó.
1.1.4 Đặc điểm của Microsoft Access
Hỗ trợ cơ chế tự động kiểm tra khóa chính, miền giá trị của dữ liệu bên trong các bảng
Với công cụtrình thông minh (wizard ) cho phép người dùng sử dụng có thể thiết kế các đối tượng trong Microsoft Access một cách nhanh chóng
Công cụ QBE sẽ hỗ trợ cho người sử dụng có thể thực hiện các truy vấn mà không cần quan tâm đến cú pháp của các câu lệnh trong ngôn ngữ truy vấn SQL
Đối tượng kết nhúng OLE cho phép người sử dụng có thể đưa vào bên trong tập tin cơ sở dữ liệu Access khác như Word, Excel, âm thanh, hình ảnh …
Tất cả các đối tượng của ứng dụng được lưu trong tập tin cơ sở dữ liệu duy nhất và có phần mở rộng là mdb
Start \ Programs \ Microsoft Office \ Microsoft Access 2013 hay khởi động shortcut Microsoff Access 2013 từ Desktop
1.1.6 Các thành phần của Microsoft Access
Trong cửa sổ làm việc của Access gồm có những thành phần cơ bản của một ứng dụng trên Windows (hình 1.1)
Hình 1 1 Cửa sổ Navigation Pane
Thanh Ribbon chứa các Tab lệnh : Home, Create, External Data, và Database Tools, mỗi Tab chứa các nhóm lệnh liên quan
Tab Home chứa các chức năng sau :
Sao chép và dán từ clipboard
Thao tác trên các record
Lọc sắp xếp dữ liệu trên record
Tab Create chứa các chức năng sau :
Tạo một Table mới sử dụng Template
Tạo mới một Table trống ở chếđộ Design view
Tạo mới một Form từ Table hoặc Query
Tạo mới một Report từ Table hoặc Query
Tạo mới một Macro hoặc Module
Tab External Data chứa các chức năng sau :
Import hoặc liên kết dữ liệu với bên ngoài
Thu thập và cập nhật dữ liệu từ Email
Làm việc với danh sách offline SharePoint
Tab Database Tools chứa các chức năng sau :
Chạy Visual Basic hay Macro
Tạo và hiển thị mối liên kết giữa các bảng
Ẩn hiển các đối tượng
Di chuyển dữ liệu tới MS – SQL sever hoặc tới cơ sở dữ liệu khác
Một thành phần đặc biệt quan trọng của Access đó là Navigation Pane, cửa sổ nằm trong vùng làm việc của Access gồm các đối tượng : Table, Query, Form, Report, Macro và Module
Tạo tập tin cơ sở dữ liệu
Tạo một cơ sở dữ liệu mới rỗng:
− Tại cửa sổ khởi động, click nút Blank Desktop Database
− File name: nhập tên tập tin cơ sở dữ liệu, trong Access 2013, tập tin cơ sở dữ liệu được lưu với tên có phần mở rộng là accdb
− Nếu không chỉđịnh đường dẫn thì mặc định tập tin mới tạo sẽ được lưu trong thư mục Document, ngược lại, click biểu tượng thư mục để chỉ định vị trí lưu tập tin Click nút Create để tạo tập tin cơ sở dữ liệu
Các thao tác trên t ập tin cơ sở d ữ li ệ u
1.3.1.Mở một cơ sở dữ liệu
Tại cửa sổ khởi động, trong tab File\ Open…
Chọn tập tin cơ sở dữ liệu cần mở\Open
1.3.2.Thu gọn và chỉnh sửa cơ sở dữ liệu (Compact & Repair Database)
Khi tạo thêm đối tượng trong cơ sở dữ liệu thì dung lượng của tập tin cơ sở dữ liệu sẽ tăng lên, khi xóa một đối tượng thì vùng nhớ của nó sẽ rỗng, nhưng không sử
Trang 9 dụng được Chức năng Compact & Repair Database giúp thu hồi lại phần bộ nhớ bị rỗng, làm cho tập tin cơ sở dữ liệu gọn lại
− Mởcơ sở dữ liệu cần thu gọn và chỉnh sửa
− File \Info Chọn nút Compact & Repair Database
Mởcơ sở dữ liệu ở chếđộ Exclusive bằng cách:
− Chọn tab File\ Chọn lệnh Info\ Click nút Encrypt with Password
− Mở cơ sở dữ liệu ở chế độ Exclusive: File\ Open\ Open Exclusive
− Trong tab File, chọn lệnh Info\ Click nút Decrypt Database
Các đối tượng trong cơ sở d ữ li ệ u
Dùng để lưu trữ dữ liệu, nó chính là cấu trúc cơ sở dữ liệu do đó đối tượng này cần phải được tạo trước, bên trong bảng dữ liệu được lưu thành nhiều cột và nhiều dòng
Không được đặt tên bảng trùng nhau
Không nên bỏ dấu và tạo khoảng cách khi đặt tên bảng
Không sử dụng các ký tự đặc biệt khi đặt tên bảng
Là công cụ cho phép người sử dụng dùng ngôn ngữ truy vấn SQL hoặc QBE để thực hiện các truy vấn rút trích, chọn lựa dữ liệu hoặc cập nhật dữ liệu
Là đối tượng dùng để xây dựng các màn hình làm việc dạng cửa sổ giúp người sử dụng xem và có thể nhập thông tin vào cơ sở dữ liệu dễ dàng và tiện dụng
Là một đối tượng dùng để tổ chức lại cách hiển thị thông tin có trong cơ sở dữ liệu khi in ra cho người sử dụng xem
Là công cụ cung cấp cho người sử dụng tạo ra các hành động đơn giản trong Microsoft Access như mở biểu mẫu, báo cáo, thực hiện truy vấn, mà không cần phải biết gì về ngôn ngữ lập trình VBA
Module: Đây là nơi quản lý những đoạn lệnh có thể sử dụng cho tất cả các đối tượng trong một cơ sở dữ liệu, chúng được viết theo ngôn ngữ Microsoft Visual Basic
1 Thanh Ribbon gồm có bao nhiêu Tab? Cho biết chức năng của các Tab ?
2 Cho biết các đối tượng trong cửa sổ Navigation Panel ? Chức năng của mỗi đối tượng là gì ?
3 Thực hiện tạo cơ sở dữ liệu rỗng đặt tên QLDiem và lưu vào ỗ đĩa D
4 Tạo password cho cơ sở dữ liệu vừa tạo
5 Gở bỏ password cho cơ sở dữ liệu trên
Khái niệm cơ sở dữ liệu
Một cơ sở dữ liệu Access bao gồm tập hợp các bảng dữ liệu có quan hệ chặt chẽ, phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng quản lý
Một cơ sở dữ liệu Quản lý sinh viên bao gồm tập hợp các bảng dữ liệu: SINHVIEN, LOP, MONHOC, KETQUA được kết nối nhau một cách phù hợp phục vụ việc lưu trữ dữ liệu cho ứng dụng quản lý sinh viên.
Đối tượ ng Table
Table là thành phần cơ bản quan trọng nhất của cơ sở dữ liệu Nó được thiết kế dưới dạng bảng dùng để lưu trữ thông tin chi tiết về các thực thể mà chương trình quản lý của ta quan tâm tới Thông tin của mỗi loại thực thểđược lưu trữ bên trong một Table Tùy theo mỗi chương trình quản lý của ta có liên quan đến bao nhiêu loại thực thể mà ta có bấy nhiêu Table để chứa thông tin tương ứng Nó ghi các tất cả các biến động phát sinh thông tin về các thực thể trong quá trình làm việc Cách tạo Table :
Click chọn đối tượng Table trong cửa sổ Navigation Panel
Chọn Tab Create trên Ribbon
Chọn biểu tượng Table Design trong nhóm Table (Hình 2 1)
Hình 2 1 Tab Create trên thanh Ribbon
Xuất hiện một bảng mới để tạo cấu trúc bảng
Nhập tên field tương ứng vào Field Name và chọn kiểu dữ liệu tương ứng trong khung Data Type Tạo khóa chính cho field trên Tab Design
Hình 2 2 Màn hình hướng dẫn tạo khóa chính cho bảng
Nhấn CTRL +S hoặc click vào biểu tượng Save trên thanh Quick Access để lưu lại cấu trúc bảng (Hình 2 3)
Hình 2 3 Màn hình tạo cấu trúc bảng
Ngoài ra chúng ta có thể tạo bảng mới bằng cách chọn Table hoặc Table Templates, nhập dữ liệu ở chếđộ Datasheet, MS Access sẽ tựđộng tạo kiểu dữ liệu phù hợp khi người dùng nhập dữ liệu Nếu muốn chỉnh sửa lại cấu trúc bảng ta chọn lại chế độ Design view để thực hiện chỉnh sửa
Cách hiển thị qua lại giữa Datasheet và Design View :
Chọn tab Home / click vào biểu tượng View (xem Hình 2 4)
Hình 2 4 Chuyển đổi dạng hiển thị của bảng 2.2.1 Cấu trúc của Table
Field (cột hoặc trường ) : Cấu trúc của table được xây dựng dựa trên các field, mỗi table có ít nhất 1 field Mỗi field phải có một kiểu dữ liệu Kiểu dữ liệu của một field sẽ quy định những giá trị nào sẽ được lưu trong field này
Record (dòng hoặc mẫu tin ) : Table lưu trữ dữ liệu theo từng record, mỗi record sẽ chứa giá trị của tất cả các field có trong bảng
Primary Key(khóa chính ): Là tập hợp một hoặc nhiều cột mà dữ liệu trên đó là duy nhất không trùng lắp và không được phép rỗng trong một bảng
Foreign key (khóa ngoại ) : Là một hay nhiều cột và các cột này là khóa chính của một bảng khác
Field Name (tên cột) : Giá trị của field name phải là duy nhất trong mỗi bảng (tối đa 255 ký tự )
Data Type : Kiểu dữ liệu của Field Name (Xem Hình 2 5, bảng 2.1)
Hình 2 5 Các kiểu dữ liệu của Field Name
Short Text Kiểu chuỗi tối đa 255 ký tự (có thể sử dụng cho số nhưng không thể tính toán)
Long Text Kiểu văn bản gồm nhiều ký tựhơn so với kiểu Short Text
Number Kiểu số (số nguyên hoặc số thực)
Date / Time Kiểu ngày tháng năm
Currency Kiểu sốcó định dạng theo tiền tệ
AutoNumber Kiểu số (tựđộng tăng khi thêm một mẫu tin mới)
Yes/No Kiểu logic(chỉ có 2 giá trị là TRUE hay FALSE )
OLE Object Kết nối đến một đối tượng file khác ( word , Excel, picture
…) tối đa 2GB Hyperlink Kiểu chuỗi chỉ đường dẫn đến một địa chỉ
Attachment Lưu trữ file đính kèm tối đa 2GB
Lookup Wizard Tạo một cột để chọn giá trị và tìm kiếm từ một bảng khác
Bảng 2 1 Các kiểu dữ liệu của Field Name
Description (mô tả cột ): Giải thích ý nghĩa của field và được hiển thị dưới thanh trạng thái khi nhập dữ liệu (không bắt buộc )
1.2.2 Một số thuộc tính của Field (cột hoặc trường )
Field Size( độ rộng của cột ) :Xác định kích thước tối đa có thểlưu trữ trong cột, chỉ hiển thị với kiểu dữ liệu là Short Text hoặc Number (Xem Hình 2 6)
Hình 2 6 Các thuộc tính cơ bản của field
Với kiểu Short Text: Xác định số ký tự tối đa của chuỗi
Với kiểu Number : chọn các kiểu sau
Byte: Kiểu số nguyên, chứa con số có giá trị từ ( 0-> 225 )
Integer: Kiểu số nguyên, trong khoảng -32000->32000
Long integer: Kiểu số nguyên dài
Format (định dạng ): Thay đổi dạng hiển thị giá trị của Field
Tùy theo kiểu dữ liệu của Field mà ta có các dạng định dạng khác nhau
Genaral Number Đúng số đã nhập vào
Currency Có dấu phân cách và dấu $
Fixed Có dấu phân cách hàng ngàn và thập phân
Standard Có phân cách hàng ngàn , số lẻ
Scientific Số khoa học (số mũ )
Bảng 2 2 Các định dạng của kiểu Number
Kiểu Date/Time : Xem bảng 2.3
Genaral Date Ngày giờ đầy đủ
Long Date Thứ, tháng , ngày , năm
Medium Date Ngày tháng năm
Short Date Ngày – tháng –năm
Long Time Giờ phút giây AM/PM
Short Time Giờ phút dd/mm/yyyy Dạng tự tạo
Bảng 2 3 Các định dạng của kiểu Date/Time
> Làm thay đổi chữ IN
@ dữ liệu bắt buộc nhập
& dữ liệu không bắt buộc nhập
Bảng 2 4 Các định dạng của kiểu Text
Decimal Places: Chỉ có khi kiểu dữ liệu của field là Number, xác định số chữ số lẻ sau phần thập phân
Input mask (mặt nạ nhập liệu ): Mặt nạ định dạng dữ liệu dùng để bắt buộc người sử dụng khi nhập dữ liệu vào bảng phải tuân theo đúng định dạng đó Xem bảng 2.5
0 Ký số 0->9, không cho phép nhập dấu
9 Ký số 0->9, và khoảng trắng, không cho phép nhập dấu
# Ký số 0->9 , và khoảng trắng, cho phép nhập dấu
L Ký tự A->Z bắt buộc nhập dữ liệu
? Ký tự A->Z không bắt buộc nhập dữ liệu
A Ký tự và ký số, bắt buộc nhập dữ liệu a Ký tự và ký số, không bắt buộc nhập dữ liệu
& Bất kỳ ký tự nào, hoặc khoảng trắng, bắt buộc nhập dữ liệu
C Bất kỳ ký tự nào, hoặc khoảng trắng, không bắt buộc nhập dữ liệu
< Chuyển đổi các dữ liệu chuỗi sang chữthường
> Chuyển đổi các dữ liệu chuỗi sang chữ IN
Password Thể hiện các ký tự * khi nhập dữ liệu (mật khẩu )
Bảng 2 5 Bảng định dạng mặt nạ dữ liệu
Caption( tiêu đề cột ): Nội dung của tiêu đề sẽ hiển thị khi đang mở table để nhập liệu.( Ví dụ : Mã khoa )
Default Value: Giá trị mặc định khi chưa nhập dữ liệu vào ( ví dụ : Mã khoa có kiểu Number, có giá trị mặc định là 0)
Validation Rule(quy tắc hợp lệ ): Kiểm tra miền giá trị của field khi thay đổi
Validation Text(thông báo lỗi ):Xuất ra chuỗi thông báo khi giá trị của field vi phạm nội dung được xây dựng trong thuộc tính Validation Rule
Required(yêu cầu): Nếu chọn là Yes thì khi thêm một Record mới giá trị của field phải được nhập, không được để trống
Allow Zero Length(cho phép chuỗi rỗng ): (Dùng cho field kiểu Text) Nếu là
Yes, giá trị của Field có thể là chuỗi rỗng, ngược lại, không chấp nhận chuỗi rỗng
Thiết kế dữ liệu kiểu dữ liệu Lookup wizard
Chọn kiểu dữ liệu Lookup Wizard trongk hộp thoại Data Type Xuất hiện hộp thoại lookup wizard như Hình 2 7
Hình 2 7 Hộp thoại Lookup Wizard bước 1
Chọn mục chọn như Hình 2 7
Chọn bảng hoặc Query cần đưa vào danh sách như Hình 2 8
Hình 2 8 Hộp thoại Lookup Wizard bước 2
Chọn các trường của Bảng hoặc query sẽđược hiển thị trên danh sách đểđưa vào khung Selected Field như Hình 2 9
Hình 2 9 Hộp thoại Lookup Wizard bước 3
Chọn Field cần sắp xếp, nếu không sắp xếp thì bỏ trống như Hình 2 10
Hình 2 10 Hộp thoại Lookup Wizard bước 4
Xác định độ rộng của Field bằng cách kéo rê chuột trực tiếp trên cột hiển thị trong Hình 2 11
Hình 2 11 Hộp thoại Lookup Wizard bước 5
Đặt tên Field vào khung như Hình 2 12
Hình 2 12 Hộp thoại Lookup Wizard bước 6
Click Finish để hoàn tất
Khi đó xuất hiện hộp thoại yêu cầu lưu lại cấu trúc bảng như Hình 2 13
Hình 2 13 Hộp thoại lưu cấu trúc bảng
Chọn Yes để đồng ý lưu kiểu dữ liệu
Lưu ý : Mặc dù field đã được lưu kiểu Lookup Wizard nhưng trên bảng thiết kế ta vẫn thấy field hiển thị kiểu Text là do Field được tham chiếu để lấy giá trị có kiểu dữ liệu là kiểu Text (field MaKhoa có kiểu Text) chứ không hiển thị Lookup Wizard
1.2.3 Các thao tác trên Table
Tạo khóa chính (Primary key) :
Chọn một hoặc nhiều cột làm khóa chính
Chọn Tab Design trên thanh Ribbon
Chọn biểu tượng Primary Key
Hoặc Right click vào các cột cần tạo khóa / chọn Primary Key
Lưu lại cấu trúc bảng :
Click vào biểu tượng đĩa mềm trên thanh Quick Access
Khi tạo cấu trúc bảng mà ta không tạo khóa chính cho bảng thì Access sẽ thông báo hỏi bảng có hay không có khóa chính như hình 2.13
Hình 2 14 Hộp thoại thông báo chưa có khóa chính
Chọn Yes khi muốn Access tự động tạo khóa chính cho bảng (số tự động tăng )
Chọn No khi xác nhận không cần khóa chính tự động hoặc sẽ thêm khóa chính sau
Mở bảng ở chếđộ thiết kế và cập nhật dữ liệu :
Xem hình 2.4 cách chuyển đổi qua lại giữa chếđộ Design View và Datasheet
Sửa đổi cấu trúc bảng (Design View)
Chèn thêm một cột vào trong bảng: Chọn Tab Design trên thanh Ribbon sau đó chọn Insert Rows trong nhóm Tools
Xóa một hoặc nhiều cột: Chọn Tab Design trên thanh Ribbon sau đó chọn Delete Rows trong nhóm Tools
Sao chép cột : Khi các cột có kiểu dữ liệu và định dạng giống nhau thì ta có thể sao chép cột rồi thực hiện chỉnh sửa tên cột
Thay đổi vị trí các cột : Chọn các cột cần thay đổi vị trí / Kéo rê chuột đến vị trí mới
Đị nh dạng Font chữ :
Mở bảng ở chếđộ Datasheet View
Chọn font, size,… trong nhóm Font
Thay đổ i chiều cao của các dòng và cột
Thực hiện kéo rê trực tiếp trên các biên của dòng và cột
Right click tại tên cột \ chọn Hide Column
Right click tại tên cột \ chọn Unhide Column
Hình 2 15 Hộp thoại Ẩn/ hiện cột
Chọn cột cần hiển thị như Hình 2 15 (Cột chưa được đánh dấu check)
Thay đổ i vị trí các cột
Đánh dấu các cột muốn di chuyển
Kéo rê chuột đến vị trí mới
Khóa cột khi xem dữ liệu
Right click tại cột cần khóa
Right click tại cột cần khóa
Chèn đối tượng OLE Object vào bảng
Mở bảng ở chếđộ Datasheet View
Right click tại ô có kiểu dữ liệu OLE Object cần chèn
Chọn đường dẫn đến đối tượng
Thi ế t l ậ p m ố i quan h ệ gi ữ a các b ả ng
Quan hệ 1 – 1 (One-to-One)
Mỗi mẩu tin trong Table này quan hệ với một mẩu tin trong Table kia hay nói cách khác 2 Table sử dụng khóa chính của mình để liên kết với khóa chính của Table kia
Thí dụ: Quan hệ giữa Table T_HOSONV (danh sách nhân viên) với
T_CHAMCONG06 (chấm công tháng 06 cho nhân viên) là quan hệ 1-1
Quan hệ 1 – N (One-to-Many):
Mỗi mẩu tin trong Table này quan hệ với nhiều mẩu tin trong Table kia hay nói cách khác Table này sử dụng khoá chính để liên kết với trường khóa ngoại của Table kia
Thí dụ: Quan hệ giữa Table KHOA (Danh mục khoa) và LOP (Danh sách lớp) là quan hệ một nhiều
Chọn Tab Database Tools trên thanh Ribbon\ Chọn biểu tượng Relationships
Xuất hiện hộp thoại Show Table như Hình 2 16
Hình 2 16 Hộp thoại hiển thị các bảng
Chọn các Table muốn tạo quan hệ trong hộp thoại Show Table, nhấn nút Add để chèn các table vào cửa sổ quan hệnhư Hình 2 17
Hình 2 17 Cửa sổ tạo quan hệ các bảng
Dùng thao tác kéo – thả field của bảng để thiết lập quan hệ cho các table như sau : Kéo field là khóa chính ở một bảng sang field là khóa ngoại của bảng khác
Ví dụ field MaKhoa ở bảng KHOA và field MaKhoa ở bảng LOP
Lúc này cửa sổ thiết lập quan hệ sẽ xuất hiện như Hình 2 18
Hình 2 18 Hộp thoại thiết lập quan hệ 1-N
- Enforce Referential Integrity : Chọn/không chọn tạo mối quan hệ 1 – N
- Cascade Update Related Fields: Chọn / không chọn khi sửa giá trị của field bên table một thì các giá trị của field liên kết bên table nhiều sẽ thay đổi theo
- Cascade Delete Related Records: Chọn / không chọn khi xóa một record bên table một thì tất cả những record của field liên kết bên table nhiều sẽ bị xóa theo
Nếu khóa chính gồm nhiều field và khóa ngoại gồm nhiều field thì ta chọn các field đó trong bảng Table/Query để tạo quan hệ như Hình 2 20 trong ví dụ Hình 2 19
Hình 2 19 Ví dụ tạo mối quan hệ giữa các bảng có khóa chính và khóa ngoại gồm nhiều field
Hình 2 20 Tạo quan hệ 1-N giữa bảng PHIEU và CTPHIEU
Quy trình thiết kếcơ sở dữ liệu :
Tạo mới cơ sở dữ liệu
Tạo cấu trúc bảng (thiết lập các thuộc tính cho các field , tạo khoá chính cho field )
Thiết lập quan hệ ràng buộc giữa các bảng
Nhập dữ liệu vào bảng (Bảng có quan hệđầu 1 nhập trước , bảng có quan hệ đầu nhiều nhập sau )
Một số lỗi thông dụng khi nhập liệu :
Hình 2 21 Lỗi sai kiểu dữ liệu
Giá trị nhập vào không tương thích với kiểu dữ liệu của trường đã chỉ định , chọn Enter new value để nhập lại các giá trịđúng với kiểu dữ liệu đã khai báo.
Hình 2 22 Lỗi khóa chính rỗng
Khóa chính không chứa giá trị rỗng Lỗi do Không nhập giá trị cho khoá chính
Hình 2 23 Lỗi trùng khóa chính
Trùng giá trị ở field là khóa chính Lỗi do giá trị nhập vào bị trùng với một giá trịnào đó trên bảng Click OK và tiến hành chỉnh sửa giá trị trên dòng vừa nhập
Hình 2 24 Lỗi bỏ trống giá trị bắt buộc nhập
Mẫu tin vừa nhập liệu đã bị bỏ trống ở trường bắt buộc phải nhập dữ liệu do thiết lập thuộc tính Required = Yes ở field này Chỉnh sửa bằng cách nhập giá trị tương ứng vào field
Hình 2 25 Lỗi nhập chưa đúng dữ liệu theo nguyên tắc ràng buộc toàn vẹn
Lỗi do vi phạm các nguyên tắc ràng buộc toàn vẹn dữ liệu (dữ liệu ở bảng có quan hệđầu 1 chưa được nhập hoặc dữ liệu nhập vào không đúng trong dữ liệu từ bảng có quan hệđầu 1 ) Chỉnh sửa bằng cách tìm và nhập dữ liệu từ bảng có quan hệ đầu 1 hoặc kiểm tra lại dữ liệu vừa nhập vào và nhập lại cho đúng
Các thao tác trên b ả ng d ữ li ệ u
Ta không thể chép độc lập một đối tượng (như là Table) từ cơ sở dữ liệu này sang tập tin cơ sở dữ liệu khác Trong trường hợp muốn chia sẽ dữ liệu trong Table giữa các cơ sở dữ liệu ta phải sử dụng đến chức năng Import của Microsoft Access và thực hiện qua các bước sau:
Chọn biểu tượng trên Tab External Database trong nhóm Import trên thanh Ribbon để lấy dữ liệu từ tập tin Access (nếu dữ liệu là Excel thì ta chọn biểu tượng Excel (hoặc click chuột phải tại đối tượng Table \ chọn Import)
Click nút Brown để chọn đường dẫn đến dữ liệu cần lấy trong Hình 2 26
Hình 2 26 Hộp thoại Get External Data
Xuất hiện hộp thoại Import dữ liệu như Hình 2 27
Hình 2 27 Hộp thoại Import Objects
Trong hộp thoại Import, chọn đối tượng cần sử dụng (Tables, Queries, …) Sau đó, click chọn những đối tượng (table hay query) cần copy sang cơ sở dữ liệu hiện đang làm việc rồi nhấn OK
Mở bảng ở chếđộ Datasheet View
Chọn cột cần sắp xếp
Chọn biểu tượng trong nhóm Sort & Filter để sắp tăng hoặc biểu tượng để sắp giảm hoặc biểu tượng để hủy bỏ thao tác sắp xếp
Nếu muốn sắp xếp theo nhiều cột thì ta cần để các cột cần sắp xếp nằm cạnh nhau (từ trái qua phải) sau đó thực hiện lệnh sắp xếp như trên
Hoặc chúng ta có thể click vào biểu tượng mũi tên bên phải cột để chọn sắp xếp nhanh
2.4.3 Tìm kiếm và thay thế
Tìm kiếm : Để tra cứu nhanh các thông tin đã lưu trữ, ta sử dụng công cụ tìm kiếm nhanh của Microsoft Access
Mở bảng ở chếđộ Datasheet View
Click chọn biểu tượng trong nhóm Find của Tab Home
Xuất hiện hộp thoại như Hình 2 28
Hình 2 28 Hộp thoại tìm kiếm
Nhập giá trị cần tìm vào ô Find What
Chọn tên bảng trong mục Look In
Chọn Find Next để tìm kiếm
Trong trường hợp muốn tìm gần đúng chúng ta có thể sử dụng một số ký tựđại diện khi nhập giá trị cần tìm chẳng hạn như:
Ký tự‘?’ dùng đểđại diện cho một ký tự
Ký tự‘*’ dùng đểđại diện cho một chuỗi các ký tự
Ký tự ‘#’ dùng để đại diện cho một ký số
Tìm kiếm và thay thế :
Mở bảng ở chếđộ Datasheet View
Click chọn biểu tượng trong nhóm Find của Tab Home
Xuất hiện hộp thoại như Hình 2 29
Hình 2 29 Hộp thoại tìm kiếm và thay thế
- Nhập giá trị cần thay thế vào ô Find What, nhập giá trị thay thế vào ô
- Chọn nút Find Next để tìm kiếm còn nhấn nút Replace thì sẽ thay thếở dòng hiện hành, còn nếu nhấn Replace All sẽ thay thế tất cả các dòng còn lại
Có 4 cách lọc dữ liệu :
Lọc trực tiếp giá trị trên cột
Lọc với giá trịđược chọn trước
Lọc theo biểu mẫu : Filter by Form
Lọc theo cách khác : Advanced Filter/Sort
Lọc trực tiếp trên cột :
Mở bảng ở chế độ Datasheet View
Chọn biểu tượng mũi tên bên phải cột cần lọc dữ liệu
Hình 2 30 Hộp thoại lọc trực tiếp
Chọn hoặc không chọn giá trị cần lọc
Hoặc lọc với các điều kiện trong lệnh Text Filters
Khi muốn hiển thị lại tất cả các mẫu tin ta chọn Clear filter form tên field đã lọc
Lọc với giá trịđược chọn trước :
Mở bảng ở chếđộ Datasheet View
Chọn dữ liệu trong bảng
Chọn biểu tượng trong nhóm Sort & Filter của tab Home
Chọn điều kiện lọc tương ứng
Để hiển thị dữ liệu đã lọc ta chọn biểu tượng
Lọc theo biểu mẫu : Filter by Form
Mở bảng ở chế độ Datasheet View
Chọn giá trị cần lọc tương ứng như Hình 2 31
Chọn để thực hiện lọc dữ liệu
Hình 2 31 Màn hình lọc theo biểu mẩu
Lọc theo cách khác : Advanced Filter/Sort
Cho phép chúng ta lọc dữ liệu hoặc sắp xếp dữ liệu theo cách riêng tùy ý (do người sử dụng quyết định )
Trong bảng SINHVIEN hãy lọc ra những sinh viên nam học lớp cao đẳng tin học khóa 1
Mở bảng ở chế độ cập nhật dữ liệu
Nhập các giá trị cần lọc vào mục criteria (ta có thể sắp xếp dữ liệu trong mục sort ) xem Hình 2 32
Chọn để thực hiện lọc dữ liệu
Hình 2 32 Lưới lọc nâng cao
BÀI TẬP THỰC HÀNH CHƯƠNG 2
1 Thiết kếcơ sở dữ liệu quản lý sinh viên(Quanlysinhvien.mdb)
Các Field in đậm, nghiêng và gạch dưới là khoá chính của bảng
Field Name Field Type Field Size Caption Description
MaKH Short Text 2 Mã khoa
TenKH Short Text 50 Tên khoa
Field Name Field Type Field Size Caption Description
MaSV Short Text 3 Mã sinh viên
HoSV Short Text 15 Họ sinh viên
TenSV Short Text 7 Tên sinh viên
Phai Yes/No Phái Yes:Nữ, No:Nam
NgaySinh Date/Time Ngày sinh Dd/mm/yyyy
NoiSinh Short Text 15 Nơi sinh
MaKH Short Text 2 Mã khoa
HocBong Number Double Học bổng
Field Name Field Type Field Size Caption Description
MaSV Short Text 3 Mã sinh viên
MaMH Short Text 2 Mã môn học
Thiết lập quan hệ giữa các bảng
Field Name Field Type Field Size Caption Description
MaMH Short Text 2 Mã môn
TenMH Short Text 25 Tên môn
SoTiet Number byte Số tiết
SINHVIEN MaSV HoSV TenSV Phai NgaySinh NoiSinh MaKH HocBong
A01 Nguyễn thị Hải 23/02/1977 Hà Nội TH 130000 A02 Trần văn Chính 24/12/1977 Bình Định TH 150000 A03 Lê thu bạch Yến 21/02/1977 TpHCM TH 170000 A04 Trần anh Tuấn 20/12/1977 Hà Nội AV 80000 B01 Trần thanh Mai 12/08/1977 Hải Phòng TR 0
B02 Trần thị thu thủy 02/01/1977 TpHCM AV 0
2 Thiết kếcơ sở dữ liệu quản lý điểm sinh viên(Quanlydiem.mdb)
Các Field in đậm, nghiêng và gạch dưới là khoá chính của bảng
Field Name Field Type Field Size Format Caption
MaLop Short Text 10 Mã lớp
TenLop Short Text 30 Tên lớp
MaKhoa Lookup Wizard Mã khoa
Field mã khoa lấy từ bảng KHOA
Field Name Field Type Field Size Format Caption
MaMon Short Text 10 Mã môn
TenMon Short Text 30 Tên môn
LyThuyet Number Integer Lý thuyết
ThucHanh Number Integer Thực hành
HocKy Number Byte Học kỳ
MaLop Lookup Wizard Mã Lớp
Field HocKy chỉ cho nhập các giá trị 1 hoặc 2, nếu người sử dụng nhập sai, yêu cầu hệ thống phát thông báo nhắc nhở: “Chỉ nhập giá trị 1 hoặc 2 ”
Field Nam chỉ cho phép nhập giá trị 1, 2, hoặc 3 Nếu người sử dụng nhập sai, yêu cầu hệ thống phát thông báo nhắc nhở : “ Chỉ nhận giá trị 1, 2 hoặc 3
Field MaLop chọn từ Field MaLop của bảng LOP
Field Name Field Type Field Size Format Caption
MaSV Short Text 10 Mã sinh viên
Malop Lookup Wizard Mã Lớp
Phai Yes/No Giới tính
NgaySinh Date/Time dd/mm/yyyy Ngày sinh
Field Name Field Type Field Size Format Caption
MaSV Lookup Wizard Mã sinh viên
MaMon Lookup Wizard Mã môn
LanThi Number Byte Lần thi
DiemThi Number Double Điểm thi
Mã sinh viên và mã môn chọn từ bảng SINHVIEN, MONHOC
Field LanThi chỉ cho nhập các giá trị 1 hoặc 2 Nếu người sử dụng nhập sai, yêu cầu hệ thống phát thông báo nhắc nhở: “chỉ nhập giá trị 1 hoặc 2 ”
Field DiemThi chỉ được nhập điểm từ 0 đến 10 Nếu nhập sai, hệ thống thông báo : “Điểm từ 0 đến 10 ”
Thiết lập quan hệ giữa các bảng :
KHCB Khoa học cơ bản
KTCN Kỹ thuật công nghệ
KTXHNV Kinh tế xã hội nhân văn
NTTS Nuôi trồng thủy sản
Mã Lớp Tên lớp Mã Khoa
CDKT01 Cao Đẳng Kế Toán KHÓA 1 KTXHNV
CDKT02 Cao Đẳng Kế Toán Khóa 2 KTXHNV
CDKT03 Cao Đẳng Kế Toán Khóa 3 KTXHNV
CDTH01 Cao Đẳng Tin Học Khóa 1 KTCN
CDTH02 Cao Đẳng Tin Học Khóa 2 KTCN
CDTH03 Cao Đẳng Tin Học Khóa 3 KTCN
CNTP01 Công Nghệ Thực Phẩm Khóa 1 KTCN
CNTP02 Công Nghệ Thực Phẩm Khóa 2 KTCN
CNTP03 Công Nghệ Thực Phẩm Khóa 3 KTCN
DHKT01 Đại Học Kinh Tế Khóa 1 TAICHUC
DHKT02 Đại Học Kinh Tế Khóa 2 TAICHUC
NTTS01 Nuôi Trồng Thủy Sản Khóa 1 NTTS
NTTS02 Nuôi Trồng Thủy Sản Khóa 2 NTTS
THTHKT01 Trung Học TH – KH Khóa 1 KTXHNV
THTHKT02 Trung Học TH – KT Khóa 2 KTXHNV
Mã Môn Tên Môn Lý
Kỳ Năm Mã Lớp CDKT0101 Kế Toán Doanh Nghiệp 45 0 1 1 CDKT01 CDKT0102 Tin Học Văn Phòng 45 60 2 1 CDKT01 CDKT0201 Kế Toán Doanh Nghiệp 45 0 1 1 CDKT02 CDTH0101 Giáo dục thể chất 1 15 0 1 1 CDTH01
CDTH0102 Phòng chống AIDS 30 0 1 1 CDTH01
CDTH0103 Vi tích phân A2 45 0 2 1 CDTH01
CDTH0104 KT lập trình Pascal 45 60 2 1 CDTH01
CDTH0106 Cấu trúc dữ liệu 45 30 2 2 CDTH01 DHKT0101 Tin học ứng dụng 45 60 1 1 DHKT01 DHKT0102 Kinh tế chính trị 30 0 2 1 DHKT01
NTTS0101 Sinh đại cương 30 0 1 1 NTTS01
NTTS0102 Giáo dục quốc phòng 15 30 2 1 NTTS01
THTHKT0101 Tin học căn bản
THTHKT0102 Xử lý văn bản Word
THTHKT0103 Quản trịcơ sở dữ liệu
Mã SV Mã Lớp Họ Tên Phái Ngày sinh HKTT Hình
CDKT0101 CDKT01 Lê Anh Xuân 02/06/1985
CDKT0102 CDKT01 Lê Thúy Hằng 02/07/1985
CDTH0101 CDTH01 Nguyễn Huy Cường 20/11/1985
CDTH0102 CDTH01 Nguyễn Thanh Hòa 08/09/1985
CDTH0103 CDTH01 Nguyễn Văn Phú 07/11/1986
CDTH0104 CDTH01 Nguyễn Thị Xuân 25/01/1984
CDTH0201 CDTH02 Trần Văn An 08/09/1987
CDTH0202 CDTH02 Trần Thị Hiền 18/06/1987
DHKT0101 DHKT01 Trần Ngọc Thắm 27/05/1982
DHKT0102 DHKT01 Nguyễn Mạnh Hùng 21/03/1981
NTTS0101 NTTS01 Võ Thị Phương 18/11/1985
NTTS0102 NTTS01 Võ Anh Thi 08/01/1985
THTHKT0101 THTHKT01 Mai Lệ Hằng 01/08/1986
THTHKT0102 THTHKT01 Võ Mỹ Chi 08/08/1986
THTHKT0201 THTHKT02 Thái Văn Tuấn 05/09/1987
THTHKT0202 THTHKT02 Nguyễn Thanh Phong 12/08/1987
Mã SV Mã Môn Lần Thi Điểm Thi
Mở bảng lớp, lọc ra những lớp thuộc khoa KTCN
Mở bảng môn học, lọc ra những môn học không có thực hành
Mở bảng sinh viên, lọc ra sinh viên nam
Mở bảng sinh viên, lọc ra sinh viên học lớp cao đẳng tin học khóa 1
Mở bảng điểm thi, lọc ra các kết quả thi lần 1
Mở bảng điểm thi, sắp xếp các kết quả thi theo lần thi
Mở bảng điểm thi, tìm kiếm sinh viên có mã sinh viên là “THTHKT0101”
3 Thiết kếcơ sở dữ liệu quản lý sổ tiết kiệm(Quanlysotietkiem.mdb)
Các Field in đậm, nghiêng và gạch dưới là khoá chính của bảng
Field Name Field Type Field Size Caption Description
MKH Short Text 5 Mã khách hàng
Ho_ten_KH Short Text 50 Họ tên khách hàng
CMND Short Text 10 Chứng minh nhân dân
Dia_Chi Short Text 50 Địa chỉ
Field Name Field Type Field Size Caption Description
MSO Short Text 10 Mã sổ tiết kiệm
MKH Lookup wizard Mã khách hàng
Ngay_mo Date/Time Short Date Ngày mở sổ tiết kiệm
So_tien Number Long Integer Số tiền
Lai_suat Number Single Lãi suất
Field Name Field Type Field Size Caption Description
MPG Short Text 10 Mã phiếu gửi
MSO Lookup wizard 10 Mã sổ tiết kiệm
Ngay_goi Date/Time Short Date Ngày gởi
So_tien Number Double Số tiền
Field Name Field Type Field Size Caption Description
MPR Short Text 10 Mã phiếu rút
MSO Lookup wizard 10 Mã sổ tiết kiệm
Ngay_rut Date/Time Short Date Ngày rút tiền
So_tien Number Double Số tiền
Thiết lập quan hệ giữa các bảng
Cung cấp cho sinh viên khái niệm về truy vấn dữ liệu, cách tạo các loại truy vấn dữ liệu với ngôn ngữ SQL và công cụ QBE
3.1 Khái niệm truy vấn dữ liệu
Vai trò của cơ sở dữ liệu là tổ chức lưu trữthông tin đồng thời cung cấp những công cụ hỗ trợ việc quản lý và thao tác dữ liệu đang lưu trữ Những thao tác thường gặp khi làm việc với cơ sở dữ liệu là tìm kiếm thông tin, cập nhật thông tin đang lưu Một trong những công cụđược sử dụng để quản lý thông tin là truy vấn dữ liệu (Query)
3.2 Các loại truy vấn dữ liệu
Tùy theo cấu trúc lệnh được sử dụng khi tạo query, ta có một số loại truy vấn sau:
Là loại truy vấn chỉ mang tính chất cung cấp dữ liệu đã được lưu trữ trong các
Table, không làm thay đổi thông tin của chúng Tập kết quả của truy vấn có thể được chọn lựa theo điều kiện cần xem thông tin, có thể tạo ra các cột tính toán hay thống kê dữ liệu trên Table khi hiển thị Loại truy vấn này vừa có ý nghĩa tìm kiếm vừa có ý nghĩa lọc thông tin theo yêu cầu của người sử dụng
Tương tự như Select Query, tuy nhiên kết quả của loại truy vấn này là một đối tượng Table được lưu trữ vào trang Tables trong cửa sổ Windows Database
Dùng để thêm mới một hay nhiều dòng dữ liệu vào một Table trong cơ sở dữ liệu Mỗi câu truy vấn chỉ dùng để thêm mới dữ liệu cho một Table
Dùng để cập nhật dữ liệu đang lưu trữ trong các table của cơ sở dữ liệu
Dùng để thực hiện yêu cầu xóa dữ liệu hiện đang lưu trữtrong cơ sở dữ liệu
Ấ N D Ữ LI Ệ U
Khái ni ệ m truy v ấ n d ữ li ệ u
Vai trò của cơ sở dữ liệu là tổ chức lưu trữthông tin đồng thời cung cấp những công cụ hỗ trợ việc quản lý và thao tác dữ liệu đang lưu trữ Những thao tác thường gặp khi làm việc với cơ sở dữ liệu là tìm kiếm thông tin, cập nhật thông tin đang lưu Một trong những công cụđược sử dụng để quản lý thông tin là truy vấn dữ liệu (Query).
Các lo ạ i truy v ấ n d ữ li ệ u
Tùy theo cấu trúc lệnh được sử dụng khi tạo query, ta có một số loại truy vấn sau:
Là loại truy vấn chỉ mang tính chất cung cấp dữ liệu đã được lưu trữ trong các
Table, không làm thay đổi thông tin của chúng Tập kết quả của truy vấn có thể được chọn lựa theo điều kiện cần xem thông tin, có thể tạo ra các cột tính toán hay thống kê dữ liệu trên Table khi hiển thị Loại truy vấn này vừa có ý nghĩa tìm kiếm vừa có ý nghĩa lọc thông tin theo yêu cầu của người sử dụng
Tương tự như Select Query, tuy nhiên kết quả của loại truy vấn này là một đối tượng Table được lưu trữ vào trang Tables trong cửa sổ Windows Database
Dùng để thêm mới một hay nhiều dòng dữ liệu vào một Table trong cơ sở dữ liệu Mỗi câu truy vấn chỉ dùng để thêm mới dữ liệu cho một Table
Dùng để cập nhật dữ liệu đang lưu trữ trong các table của cơ sở dữ liệu
Dùng để thực hiện yêu cầu xóa dữ liệu hiện đang lưu trữtrong cơ sở dữ liệu
Dùng để thực hiện yêu cầu thống kê, tính toán và hiển thị dữ liệu theo dạng dòng và cột.
T ạ o truy v ấ n Select Query b ằ ng ngôn ng ữ SQL
Chọn tab Create trên thanh Ribbon
Chọn biểu tượng Query Design trên nhóm Other
Đóng cửa sổ Show Table (nếu có)
Click chọn biểu tượng trên tab Design của thanh Ribbon
Gõ các câu lệnh cần thiết vào
3.3.2 Một số toán tửthường dùng trong truy vấn
Toán tử so sánh gần đúng (chỉ áp dụng cho chuỗi) :LIKE
Toán tử logic :AND, OR, NOT
Dùng để thực hiện thao tác tổng hợp dữ liệu , được lưu trữ trong một hay nhiều bảng thành một tập kết quả Dữ liệu trong tập kết quả của truy vấn có thể được lọc theo điều kiện và sắp xếp theo nhu cầu của người sử dụng
Ngoài ra ta thể thực hiện việc tính toán thống kê trên tập dữ liệu kết quảđó.
Cú pháp tạo truy vấn dữ liệu từ một table :
Mệnh đề SELECT (bắt buộc phải có trong truy vấn ) : Cho biết những field nào trong bảng cần hiển thị ra trong tập kết quả khi thực thi truy vấn Ta cũng có thể sử dụng dấu * (SELECT *) để hiển thị tất cả các field trong bảng
Field 1, Field 2, …: là tên những field có trong các table cần hiển thị ra tập kết quả Mỗi field sẽđược phân cách bởi dấu phẩy (,)
Mệnh đề FROM (bắt buộc phải có trong truy vấn) :Cho biết dữ liệu sử dụng được lấy từ bảng nào
Mệnh đề WHERE (không bắt buộc có trong truy vấn ) : Điều kiện lọc dữ liệu có dạng : field giá trị
Nếu điều kiện là kiểu chuỗi thì giá trị phải đặt trong cặp dấu nháy đôi (" ").
Ngoài các phép toán so sánh =, >,< thì kiểu chuỗi còn sử dụng phép toán so sánh gần đúng là like và like luôn được sử dụng với những ký tự đại diện như: *, ?, hay [] (ký tự* dùng để thay thế cho chuỗi ký tự bất kỳ bao gồm cả chuỗi rỗng, ký tự ? dùng thay thế cho một ký tự bất kỳ và [] để biểu diễn vùng ký tự, như vùng từ a đến m sẽ biểu diễn như sau [a-m])
Nếu điều kiện là kiểu ngày (Date/Time) thì ta phải sử dụng định dạng
#mm/dd/yyyy# (tháng trước ngày sau)
Mệnh đề GROUP BY là mệnh đề thực hiện gom các dòng dữ liệu thành các nhóm dựa vào giá trị của các field theo sau mệnh đề GROUP BY
Mệnh đề HAVING là mệnh đề điều kiện trên nhóm Điều kiện xác lập trên bộ (WHERE) sẽ được kiểm tra trước điều kiện xác lập trên nhóm (HAVING)
SELECT [Tính chất] Field 1 , Field 2 [ AS Tên hiển thị], …
[ORDER BY Field [Asc/Desc], Biểu_thức [Asc/Desc], Số thứ tự cột…]
Mệnh đề ORDER BY (không bắt buộc có trong truy vấn ): Sắp xếp dữ liệu theo field (ASC: sắp tăng, DESC: sắp giảm )
Các ví dụ minh họa: Sử dụng cơ sở dữ liệu quản lý điểm sinh viên – QLDiem.accdb
Cho biết danh sách sinh viên hiện có Thông tin hiển thị gồm: Mã sinh viên,
Họ sinh viên, Tên sinh viên, Phái
Câu truy vấn có dạng sau:
SELECT MaSV, Ho, Ten, Phai
Ta nhấn CTRL + S hoặc click vào biểu tượng Save trên thanh công cụ Quick Access đểlưu câu truy vấn - Hình 3 1
Hình 3 1 Hộp thoại lưu câu truy vấn
Thực thi câu truy vấn :
Click vào biểu tượng mũi tên View trong Hình 3 2 - chọn Datasheet View để xem kết quả câu truy vấn – chọn SQL View để trở về màn hình viết lệnh SQL
Ta cũng có thể click chọn biểu Run trong Hình 3 2 để thực thi câu truy vấn
Hình 3 2 Thao tác xem kết quả hiển thị câu truy vấn
Kết quả hiển thị câu truy vấn - Hình 3 3
Hình 3 3 Kết quả hiển thị truy vấn SQL ví dụ 1
Cho biết danh sách sinh viên của lớp Cao Đẳng Tin Học Khóa 1 (Mã lớp CDTH01) có tên bắt đầu là ký tự H, gồm các thông tin như: Mã sinh viên, Họ tên sinh viên, Phái, Mã lớp
Câu truy vấn có dạng sau:
SELECT MaSV, Ho& “ ”& Ten AS [Họ tên SV], Phai,MaLop
WHERE MaLop = "CDTH01" AND Ten LIKE "H*"
Kết quả hiển thị câu truy vấn - Hình 3 4
Hình 3 4 Kết quả hiển thị truy vấn SQL ví dụ 2
Cho biết những sinh viên nữ nào sinh vào ngày 20 tháng 11 năm 1985, gồm các thông tin như: Mã sinh viên, Họ tên sinh viên, Phái, Mã lớp
Câu truy vấn có dạng sau:
SELECT MaSV, Ho& “ ”& Ten AS [Họ tên SV], Phai, MaLop
WHERE Phai = No AND NgaySinh = #11/20/1985#
Nếu dữ liệu so sánh là kiểu logic (Yes/No) thì ta phải so sánh giá trị theo số là
-1 tương ứng với Yes và 0 tương ứng với No, hay ta cũng có thể sử dụng giá trị Yes (True) và No (False) để so sánh nhưng không được đặt trong dấu nháy đôi như so sánh chuỗi
Cho biết danh sách các môn học của lớp cao đẳng tin học khóa 1 Danh sách được xếp theo học kỳ của năm học
Câu truy vấn có dạng sau:
Kết quả hiển thị câu truy vấn - Hình 3 5
Hình 3 5 Kết quả hiển thị truy vấn SQL ví dụ 4
Ta có thể sắp xếp dữ liệu theo nhiều field khác nhau, mỗi field sẽ được phân cách bởi dấu phẩy (,) và field bên trái nhất sẽ được sắp trước, nếu trùng dữ liệu thì sẽ tiếp tục cho những field tiếp theo
Cú pháp tạo truy vấn dữ liệu từ nhiều table
- INNER JOIN: Là phép toán kết giữa hai table lại với nhau thông qua điều kiện kết được chỉ định sau từ khóa ON Đây là phép kết bằng, có nghĩa là khi 2 table được kết qua phép toán này thì dữ liệu xuất hiện trong tập kết quả sẽ được lấy từ 2 table với điều kiện giá trị của field liên kết phải tồn tại đồng thời trên cả 2 table. Điều kiện kết:Chỉ ra field dùng để liên kết các table có dạng sau: Table1.field table2.field
SELECT [Tính chất] Field 1, Field 2 [ AS Tên hiển thị], …
FROM (Table 1 INNER JOIN Table 2 ON ) INNER JOIN Table 3 ON …
[ORDER BY Field [ASC/DESC], Biểu_thức [ASC/DESC], Số thứ tự cột…]
Thông thường để xác định được biểu thức trên ta sẽ dựa vào quan hệ hiện có giữa các table (trong Relationships) để tìm ra field quan hệ
Ta có thể kết nhiều table lại với nhau theo từng cặp và được phân biệt bởi cặp dấu ngoặc tròn ()
Cho biết danh sách những sinh viên lớp cao đẳng tin học khóa 1 Thông tin hiển thị gồm : Mã sinh viên, họ tên sinh viên, phái, tên lớp
Câu truy vấn có dạng :
SELECT MASV, HO&" "&TEN AS [Họ tên sinh viên], PHAI, TENLOP FROM SINHVIEN INNER JOIN LOP ON SINHVIEN.MALOP LOP.MALOP
Kết quả câu truy vấn - Hình 3 6
Hình 3 6 Kết quả hiển thị truy vấn SQL ví dụ 5
Trong trường hợp mệnh đề FROM sử dụng từ 2 table trở lên thì những field cần hiển thị trong mệnh đề Select mà xuất hiện ở nhiều table thì phải cho biết field đó được lấy từ table nào (table.field)
Cho biết danh sách sinh viên học ở khoa Kỹ Thuật- Công Nghệ, thông tin hiển thị gồm : Mã sinh viên, Họ tên sinh viên, Phái, tên lớp, tên khoa
Câu truy vấn có dạng sau :
SELECT MaSV, [ho] & " " & [ten] AS [Họ tên sinh viên], Phai, TenLop,TenKhoa FROM (KHOA INNER JOIN LOP ON KHOA.MaKhoa = LOP.MaKhoa) INNER JOIN SINHVIEN ON LOP.MaLop = SINHVIEN.Malop
Cho biết bảng điểm thi lần 1 của sinh viên lớp cao đẳng tin học khóa 1 Thông tin hiển thị : Mã sinh viên, họ tên sinh viên, tên lớp, tên môn, điểm thi
Câu truy vấn có dạng :
SELECT SINHVIEN.MASV, HO & TEN AS [Họ tên sinh viên], TENLOP, TENMON, DIEMTHI
FROM ((LOP INNER JOIN MONHOC ON LOP.MALOP=MONHOC.MALOP )
INNER JOIN SINHVIEN ON LOP.MALOP = SINHVIEN.MALOP) INNER JOIN DIEMTHI ON (SINHVIEN.MASV = DIEMTHI.MASV) AND (MONHOC.MAMON = DIEMTHI.MAMON)
WHERE DIEMTHI.LANTHI=1 AND LOP.MALOP="CDTH01";
3.3.4 Sử dụng các phép toán và hàm trong mệnh đề Select
Các phép toán thường sử dụng : +, -, *, /, &
Các hàm thường sử dụng :
Các hàm xử lý chuỗi :
HÀM LEN : Trả về chiều dài chuỗi String
HÀM LEFT : Trả về N ký tự bên trái chuỗi String
Ví dụ: Left(“CDTH01”,2) = CD
HÀM RIGHT: Trả về N ký tự bên phải chuỗi String
HÀM MID : Trả về chuỗi con gồm N ký tự bắt đầu từ vị trí Start của chuỗi String
Cú pháp: Mid(string, start,N)
Ví dụ: Mid(“CDTH01”,3,4)= TH01
HÀM LCASE : Đổi chuỗi String sang chuỗi thường
HÀM UCASE: Đổi chuỗi String sang chuỗi hoa
HÀM LTRIM, RTRIM, TRIM : Cắt bỏ các ký tự trắng ở đầu chuỗi (Ltrim), ở cuối chuỗi (Rtrim), và cả đầu và cuối (Trim)
Cú pháp: LTrim(string), RTrim(string), Trim(string)
Các hàm vềngày tháng năm
HÀM DATE : Trả về ngày hệ thống
HÀM TIME : Trả về giờ hệ thống
HÀM NOW : Trả về ngày giờ hệ thống
HÀM DAY : Trả về ngày của chuỗi thời gian date
HÀM MONTH : Trả về tháng của chuỗi thời gian date
HÀM YEAR : Trả vềnăm của chuỗi thời gian date
HÀM WEEKDAY : Trả về số đại diện thứ của ngày date trong tuần (giá trị trả về từ1 đến 7 )
HÀM FORMAT : Định dạng giá trị biểu thức theo mẫu định dạng
Cú pháp :Format(,)
Mẫu định dạng có thể là Long Date, Standard, Long Time hoặc do người dùng tự định nghĩa như “dd/mm/yyyy”, “#,###.00” hoặc định dạng biểu thức sang chuỗi thường “ < ”, chuỗi hoa “ > “
Format(Date( ),"Long Date") = Friday, September 07, 2012
Format(now( ),"Long Time") = 5:10:30 PM
Format(date( ),"dd/mm/yyyy") = 07/09/2012
Hàm IFF : Trả về giá trị 1 nếu biểu thức điều kiện đúng, ngược lại trả về giá trị 2
Cú pháp : IIF(,, )
Cho biết số tiết các môn học của lớp Cao đẳng tin học khóa 1 Thông tin hiển thị gồm : Mã môn, tên môn, số tiết lý thuyết, số tiết thực hành, tổng số tiết Câu truy vấn có dạng sau :
SELECT MaMon,TenMon, LyThuyet ,ThucHanh , [Lythuyet]+[Thuchanh] AS [Tổng số tiết]
Hình 3 7 Kết quả hiển thị truy vấn SQL ví dụ 8
Cho biết danh sách sinh viên sinh vào tháng 9, gồm các thông tin: Mã sinh viên, Họ Tên, Năm sinh
Câu truy vấn có dạng sau:
SELECT MaSV, Ho&" "&Ten AS [Họtên], Year(NgaySinh) AS [Năm sinh] FROM SINHVIEN
Cho biết danh sách sinh viên có tuổi nhỏ hơn 20 Thông tin hiển thị gồm :
Mã sinh viên, Họ tên, Giới tính(hiển thị Nam / Nữ), Tuổi
Câu truy vấn có dạng sau :
SELECT MaSV, Ho&" "&Ten AS [Họ tên], IIF(Phai=yes,"Nam","Nữ") AS [Giới tính], Year(date())-Year(NgaySinh) AS Tuổi
WHERE Year(date())-Year(NgaySinh) 5
Hình 3 20 Màn hình lưới QBE tạo truy vấn thống kê ví dụ 22
Cho biết lớp nào có tổng số sinh viên đông nhất Thông tin hiển thị gồm: Mã lớp, Tên lớp, Tổng số sinh viên
Khi tìm giá trị Max hoặc Min trên tổng các giá trị ta không sử dụng hàm Min, Max mà tiến hành sắp xếp cột tăng hoặc giảm rồi chọn Top value là 1
Gõ giá trị 1 vào Top value trên nhóm Query Setup của thanh công cụ Design hoặc right click vào vùng chứa bảng của Query \ chọn Properties \ gõ giá trị 1 vào mục Top value
Hình 3 21 Màn hình lưới QBE tạo truy vấn thống kê ví dụ 23
Tham số trong câu truy vấn đơn giản chi là một chuỗi (tên tham số) không trùng với tên của table hay các field hiện có trong cơ sở dữ liệu đang làm việc Nếu tên của tham số có khoảng trắng thì phải đặt trong cặp dấu ngoặc vuông ([])
Cho biết danh sách các sinh viên của một lớp bất kỳ gồm Mã sinh viên, Họ tên, Tên lớp với Mã lớp do người dùng nhập vào khi thực thi truy vấn
Lưu ý : Ta cần khai báo tham số trước khi thực thi câu truy vấn
Chọn Parameters trong nhóm Show/Hide trên thanh công cụ Design
Nhập tham số vào khung Query Parameter
Chọn kiểu dữ liệu trong khung Data Type
Hình 3 22 Hộp thoại khai báo tham số
Hình 3 23 Màn hình lưới QBE tạo truy vấn tham số ví dụ 24
Crosstab Query là một loại truy vấn thống kê kết hợp dòng và cột, thông tin hiển thị của Query xuất hiện ở dạng: một dòng và có nhiều cột có thông tin liên quan Các bước thực hiện :
Thêm các bảng cần thiết vào vùng chứa bảng của lưới QBE
Click chọn biểu tượng Crosstab
Kéo rê các field cần hiển thị vào bảng
Xác định xem field nào là Row Heading, Column Heading, value , Notshow
Chọn Group by hay các hàm thống kê trên dòng totals
Nếu dòng Crosstab là Column Heading dòng Total phải là Group By
Nếu dòng Crosstab là Row Heading dòng Total có thể là Group By hoặc hàm thống kê (Sum, Count, …)
Nếu dòng Crosstab là Value dòng Total phải là hàm thống kê (Sum, Count,
Lưu ý : Nếu truy vấn có sử dụng tham số thì ta phải vào Parameter khai báo tham số cho truy vấn
Những thành phần của Crosstab query
Row heading : Tập dữ liệu của các field thuộc thành phần này sẽđược hiển thị trên từng dòng Trong Crosstab query phải có ít nhất 1 field thuộc về Row Heading
Column Heading: Trong crosstab query có duy nhất một field thuộc thành phần Column Heading Giá trị của field sẽ được hiển thị theo cột, tuỳ theo field có bao nhiêu giá trị kết quả của truy vấn sẽ thể hiện số cột tương ứng
Value : là thành phần không thể thiếu và chỉ có duy nhất một field là Value Giá trị của field này thể hiện thông tin liên qua giữa Row Heading và Column Heading
Cho biết điểm thi lần 1 của sinh viên lớp cao đẳng tin học khóa 1 Thông tin hiển thị gồm: Mã sinh viên, Họtên, Tên môn, điểm thi
Hình 3 24 Màn hình lưới QBE tạo truy vấn Crosstab ví dụ 25
Kết quả thực thi truy vấn
Hình 3 25 Kết quả thực thi truy vấn Crosstab ví dụ 25
Ví dụ 26 : Cho biết điểm thi lần 1 của sinh viên của một lớp bất kỳ (Mã lớp được nhập vào khi thực thi truy vấn) Thông tin hiển thị gồm: Mã sinh viên, Họ tên, Tên môn, điểm thi
Là loại query khi thực thi sẽ tạo ra một bảng mới dựa trên các bảng đã có trong cơ sở dữ liệu
Thiết kế query tạo ra bảng mới có tên là SINHVIENK1 thông tin gồm : Mã sinh viên, Họ sinh viên, Tên sinh viên, Phái, Mã lớp, Tên lớp
Tạo Select Query theo yêu cầu
Chọn biểu tượng trong nhóm Query Type trên thanh công cụ Design
Hình 3 26 Hộp thoại đặt tên bảng mới trong Make Table Query ví dụ 27
Đặt tên cho bảng cần tạo trong khung Table Name
Để xem trước dữ liệu của bảng mới ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn tạo thêm 1 Table mới hay không ? Click Yes nếu đồng ý
Hình 3 27 Hộp thông thông báo tạo bảng mới 3.4.8 Append Query
Là loại truy vấn dùng để thêm mới dữ liệu vào bảng hoặc thêm dữ liệu từ bảng khác vào bảng khi thực thi truy vấn
Tạo query thêm vào bảng điểm thi những sinh viên lớp cao đẳng tin học khóa 1 (CDTH01) có điểm thi lần 1 môn Giáo dục thể chất (CDTH0101) là 0
Mởvùng lưới QBE ở chếđộ thiết kế
Click chọn biểu tượng Append Query
Hình 3 28 Hộp thoại chọn tên bảng cần thêm trong Append Query ví dụ 28
Chọn bảng cần thêm vào trong khung Table Name
Hình 3 29 Màn hình lưới tạo truy vấn Append Query ví dụ 28
Gõ các giá trị cần thêm vào ở dòng Field của vùng lưới (nếu lấy từ bảng khác thì chọn field của bảng khác)
Các field được thêm vào tương ứng ở dòng Append To
Đểxem trước dữ liệu cần thêm vào bảng ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn thêm dữ liệu vào bảng hay không? Click Yes nếu đồng ý
Hình 3 30 Hộp thoại thông báo thêm dữ liệu vào bảng 3.4.9 Delete Query
Là loại query dùng để xóa dữ liệu trong bảng thỏa mãn với điều kiện cho trước Thực hiện :
Chọn Table chứa dữ liệu cần xóa hiển thịtrong vùng lưới QBE
Chọn field cần xóa ởdòng field và điều kiện xóa ở dòng Criteria
Hình 3 31 Màn hình lưới tao truy vấn Delete Query ví dụ 29
Để xem trước dữ liệu cần xóa ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn xóa dữ liệu trong bảng hay không? Click Yes nếu đồng ý
Hình 3 32 Hộp thoại thông báo xóa dữ liệu 3.4.10 Update Query
Là loại truy vấn dùng để cập nhập dữ liệu trong bảng thỏa mãn điều kiện cho trước
Tạo truy vấn cập nhật điểm thi lần 1 của sinh viên lớp cao đẳng tin học khóa 1 (CDTH01) học môn Giáo dục thể chất (CDTH0101) thành điểm 5
Chọn Table chứa dữ liệu cần chỉnh sửa hiển thị trong vùng lưới QBE
Chọn các Field cần chỉnh sửa ở dòng Field, các giá trị mới ở dòng Update to, ứng với điều kiện ở dòng Criteria
Hình 3 33 Màn hình lưới tạo truy vấn Update Query ví dụ 30
Đểxem trước dữ liệu cần cập nhật ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn cập nhật dữ liệu trong bảng hay không? Click Yes nếu đồng ý
Hình 3 34 Hộp thoại thông báo cập nhật dữ liệu
NHIỆM VỤ CỦA SINH VIÊN
Đọc bài giảng phần chương 3 trước khi đến lớp
Tham khảo tài liệu [1] Tập 1
Tham khảo tài liệu [2] Bài 4 từtrang 69 đến 91
Tham khảo tài liệu [4] Phần 1- Bài 3,4 : từtrang 19 đến trang 64
Thực hành các bài tập chương 3.
BÀI TẬP THỰC HÀNH CHƯƠNG 3
Sử dụng cơ sở dữ liệu quản lý điểm sinh viên(QLDiem.accdb) thực hiện các câu truy vấn sau :
Lọc và sắp xếp dữ liệu
1 Cho biết danh sách sinh viên gồm các thông tin sau: Mã sinh viên, Họ tên sinh viên, Phái, Ngày sinh Danh sách sẽđược sắp xếp theo thứ tự Nam/Nữ
2 Cho biết danh sách các sinh viên lớp cao đẳng tin học khóa 1 gồm Mã sinh viên, họ sinh viên, tên sinh viên, phái, ngày sinh
3 Cho biết danh sách các môn học có tên bắt đầu bằng chữ T, gồm các thông tin:
Mã môn, Tên môn, Số tiết lý thuyết, số tiết thực hành
4 Liệt kê danh sách những sinh viên có chữ cái cuối cùng trong tên là I, gồm các thông tin: Họ tên sinh viên, Ngày sinh, Phái
5 Cho biết danh sách những khoa có ký tự thứ hai của tên khoa có chứa chữ N, gồm các thông tin: Mã khoa, Tên khoa
6 Liệt kê những sinh viên mà họ có chứa chữ Thị
7 Cho biết danh sách những sinh viên ký tựđầu tiên của tên nằm trong khoảng từ a đến m, gồm các thông tin: Mã sinh viên, Họ tên sinh viên, Phái
Cung cấp cho sinh viên các kiến thức như định nghĩa Form, một số thuộc tính thông dụng trên form, các dạng hiển thị của form, cách tạo form bằng wizard, bằng design view, cách thiết kế một số điều khiển trên form ( Label, Text Box, Option Button, Option Group, Combo Box, List Box, Subform )
4.1 Giới thiệu đối tượng Form
Form (biểu mẫu) là một trong những đối tượng có sẵn trong Microsoft
Access, dùng để xây dựng những màn hình giao tiếp giữa người dùng và ứng dụng Form được dùng để kết nối các đối tượng như Table, query, report …Thông qua Form, người dùng có thể thực hiện các thao tác xem, nhập, thay đổi và tìm kiếm thông tin một cách dễdàng hơn.
Khi thiết kế Form, ta có thể xem thông tin các thuộc tính của đối tượng thông qua cửa sổ thuộc tính, Properties Sheet Ta có thể mở cửa sổ này bằng một trong những cách sau:
Double Click vào đối tượng cần xem thuộc tính
Hoặc click phải vào đối tượng cần xem thuộc tính, sau đó chọn chức năng Properties có trong menu vừa xuất hiện Hoặc nhấn ALT + ENTER
Trong khi cửa sổ thuộc tính đang được mở thì ta chỉ cần click vào đối tượng khác thì trang thuộc tính sẽ tự động hiển thị những thuộc tính của đối tượng đang được chọn
Hình 5 1 Cửa sổ thuộc tính của form
4.1.2 Thành phần của một thuộc tính
Một thuộc tính được tạo bởi hai phần: Phần tên thuộc tính và phần giá trị
Phần giá trị của thuộc tính là các kiểu dữ liệu sau: String, Boolean, Enumerated (giá trị định sẳn cho thuộc tính), Numeric, Expression
4.2 Các thuộc tính cơ bản trên form
Name: Tên đối tượng, là thuộc tính dùng để phân biệt giữa các đối tượng
Giá trị của thuộc tính Name có một sốlưu ý sau:
- Có thể là sự kết hợp của chuỗi, số, khoảng trắng, …
- Không có ký tự đặc biệt như: dấu chấm (.), dấu chấm than (!), dấu ngoặc vuông ([])
Tên thuộc tính Giá trị thuộc tính
- Mặc dù giá trị Name có thể có khoảng trắng nhưng ta không nên sử dụng vì sẽ gây khó khăn khi lập trình trong môi trường VBA
Record Source : Dữ liệu nguồn của form
Caption : Tên tiêu đề hay tên mô tả
Default view : Thể hiện loại màn hình Form
- Single form : thể hiện dạng cột ( chỉ thể hiện 1 dòng Record )
- Datasheet : thể hiện dạng dòng không có Header / Footer (giống Table / Query)
- Continuous forms : Thể hiện dạng dòng có Header / Footer
Picture: Hình nền thể hiện trên form
Record Selectors: Hiển thị hoặc không hiển thị ký hiệu chọn dòng hiện hành (Yes/ No)
Navigation buttons: Bộ nút di chuyển
Border Style: Dùng đểthay đổi đường viền của Form
Max Min Buttons: Bộ nút phóng to hay thu nhỏkích thước màn hình form
Allow edits: Cho phép hoặc không cho phép chỉnh sửa dữ liệu trên form
Allow Additions : Cho phép hoặc không cho phép thêm mới dữ liệu trên form
Allow Deletions : Cho phép hoặc không cho phép xóa dữ liệu trên form
Allow Filters : Cho phép hoặc không cho phép lọc dữ liệu trên form
Autoresize : Tựđộng thay đổi kích thước để hiển thị đủ mẩu tin
Autocenter : Tựđộng canh giữa khi mở Form
Modal : Xác lập trị Yes thì không thể chuyển qua cửa sổ khác khi Form chưa đóng
Pop Up :Nếu chọn Yes thì Form nằm trên các cửa sổ và Form khác
Close : Có / không có nút Close
Control Box : Hiện / không hiện Control Box
Scroll bars : Hiện hay không hiện thanh trượt của Form
4.3.1 Thiết kế Form bằng Wizard
Chọn bảng hoặc query làm dữ liệu nguồn cho form
Chọn tab Create trên thanh Ribbon
Click chọn More Forms \ Form Wizard
Hình 5 2 Màn hình hướng dẫn tạo form bằng WiZard
Chọn các field cần thiết kế Click Next
Hình 5 3 Hộp thoại thiết kế Form bằng Wizard bước 1
Chọn dạng hiển thị của Fom Click Next
Hình 5 4 Hộp thoại thiết kế Form bằng Wizard bước 2
Chọn mẫu hiển thị Form Click Next
Hình 5 5 Hộp thoại thiết kế Form bằng Wizard bước 3
Đặt tiêu đềcho form cũng là tên form Click Finish.
Hình 5 6 Hộp thoại thiết kế Form bằng Wizard bước 4
Hình 5 7 Màn hình form thiết kế bằng Wizard
Sau khi thiết kế form bằng Wizard chúng ta trở vềmàn hình Design View để chỉnh sửa cho phù hợp với yêu cầu
Các cách hiển thị Form :
- Form View : Chuyển Form về chếđộ xem dữ liệu
- Layout View : Chuyển Form về chế độ Layout Trong chế độ này giống như chếđộ Form View nhưng cho phép chỉnh sửa vị trí, kích thước của các điều khiển trên Form
- Design View : Chuyển Form về chếđộ thiết kế
4.3.2 Thiết kế Form bằng design view :
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Forms
Hiển thị cửa sổ Design View với thành phần Detail Tương tự như report chúng ta có thể bật/tắt các thành Form Header/Footer và Page Header/Footer bằng cách Righ click / thành Form Header/Footer hoặc Page Header/Footer Các thành phần trong cửa sổ Design View: Field List, Nhóm Controls và Properties Sheet
Là một cửa sổ nhỏ liệt kê tất cả những Field của các bảng trong cơ sở dữ liệu Nếu Form chưa có dữ liệu nguồn thì ta chọn dữ liệu nguồn cho form từ các table trong fiel list bằng cách double vào Field cần chọn làm dữ liệu nguồn cho form Nếu Form đã có dữ liệu nguồn rồi thì ta xem dữ liệu nguồn của form bằng cách click chọn dòng Show only fields in the current record source nằm ở dòng cuối cùng của Field List
Hình 5 8 Cửa sổ Field list trong chếđộ Design View của Form
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Hình 5 9 Nhóm Controls trên thanh công cụ Form Design
Properties Sheet: Hiển thị các thuộc tính và hành động của một đối tượng đang được chọn trên form
4.3.3 Các dạng Form thường gặp
Columnar : Hiển thị thông tin của một dòng dữ liệu tại một thời điểm
Hình 5 10 Màn hình form dạng Columnar
Tabular : Hiển thịthông tin lưu trữ ở dạng tập hợp các dòng dữ liệu liên tục nhau
Hình 5 11 Màn hình form dạng Tabular
Datasheet :Dạng hiển thị của Form giống với đối tượng Table, hiển thị tất cả dữ liệu tại một thời điểm
Hình 5 12 Màn hình form dạng datasheet
4.4 Các điều khiển trên form
Dùng để hiển thị các thông tin liên quan đến màn hình làm việc như: Tên của màn hình, những thông tin cần thiết cho người dùng
Các thuộc tính của Label :
Caption Hiển thị nội dung trong điều khiển
Font name Định dạng font chữ
Font size Kích cở chữ
Fore color Định dạng màu cho chữ
Border style Kiểu đường viền điều khiển
Border color Màu đường viền điều khiển
Back color Màu nền điều khiển
Text Align Canh lề cho các dữ liệu bên trong điều khiển
Dùng để xem thông tin được lưu trong cơ sở dữ liệu và cho phép thêm mới hay cập nhật dữ liệu
Các thuộc tính của Text Box :
Control Source Dùng để chỉ ra nguồn dữ liệu sẽđược hiển thị trên text box Name Tên điều khiển( là duy nhất trên form) thường bắt đầu bằng txt
Enabled Cho phép hoặc không cho phép nhập ký tự
Locked Khóa hoặc mở khóa điều khiển
Caption Hiển thị nội dung trong điều khiển
Font name Định dạng font chữ
Font size Kích cở chữ
Fore color Định dạng màu cho chữ
Border style Kiểu đường viền điều khiển
Border color Màu đường viền điều khiển
Back color Màu nền điều khiển
Text Align Canh lề cho các dữ liệu bên trong điều khiển
Khi nguồn dữ liệu của Text Box không phải là tên Field trong Field List thì giá trị của Control Source phải luôn bắt đầu bằng dấu bằng (=)
Dùng để thực hiện các lệnh xử lý theo yêu cầu nào đó của người sử dụng
Nếu chưa biết cách tạo lệnh bằng Macro hoặc Code thì ta sử dụng điều khiển thông minh (Control wizard ) để tạo nút lệnh
Click chọn điều khiển trên nhóm Controls (được chọn mặc định )
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Hình 5 13 Hộp thoại tạo Command Button bằng Wizard bước 1
Nhập nhãn của nút lệnh trong khung text (thuộc tính caption của command button ), hoặc chọn hình ảnh hiển thị trên nút lệnh trong khung Picture Click Next
Hình 5 14 Hộp thoại tạo Command Button bằng Wizard bước 2
Nhập tên nút lệnh (thuộc tính name của command button ) vào khung Click Finish
Hình 5 15 Hộp thoại tạo Command Button bằng Wizard bước 3
Một số loại thao tác và các hành động tương ứng khi sử dụng Control Wizard tạo Command Button
Find record Tìm mẫu tin thỏa điều kiện tìm kiếm
Go to first record Di chuyển mẫu tin vềđầu
Go to last record Di chuyển mẫu tin về cuối
Go to next record Di chuyển mẫu tin về sau mẫu tin hiện hành
Go to Previous record Di chuyển mẫu tin vềtrước mẫu tin hiện hành
Các hành động trên mẫu tin :
Add new record Thêm mẫu tin mới
Delete record Xóa mẫu tin hiện hành
Save record Lưu lại mẫu tin hiện hành
Undo record Phục hồi giá trị trước khi sửa mẫu tin hiện hành
Các hành động trên biểu mẫu :
Close Form Đóng form hiện hành
Open Form Mở form khác
Các hành động trên báo cáo :
Preview report Mở báo cáo ở chếđộxem trước khi in
Print report In báo cáo ra máy in
Các hành động trên ứng dụng :
Quit application Thoát khỏi Access
Dùng để thực hiện thao tác chọn một giá trị không bắt buộc, ta có thể không chọn, và có thể chọn nhiều giá trị cùng một lúc
Trang 97 Để biết một Check Box có được chọn hay không ta dựa vào thuộc tính Value của nó Nếu Value của Check Box có giá trị là –1 thì nó đang được chọn, nếu giá trị bằng 0 thì điều khiển không được chọn
4.4.5 Option Button và Option Group
Hình 5 16 Ví dụ minh họa điều khiển Option Button và Option Group
Option Button tương tự như Check Box, sẽ có giá trị là -1 khi đựơc chọn và bằng 0 khi không chọn
Các thuộc tính của Option Button :
Caption Hiển thị nội dung trong nút chọn(nam, nữ )
Name Tên nút chọn (Optnam, Optnu)
Option value Giá trị trả về của nút chọn (-1,0)
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Khi chọn 1 Option Button thì Option Group sẽ có giá trịtương ứng
Các thuộc tính của Option Group:
Name Tên nút chọn (optgioitinh)
Control source Liên kết với dữ liệu nguồn
Ví dụ : Tạo field giới tính sử dụng Option Group, Option Button
Chọn điều khiển Option Group kéo vào cửa sổ thiết kế Đặt thuộc tính cho Option Group:
Chọn điều khiển Option Button kéo vào cửa sổ thiết kế Đặt các thuộc tính cho Option Group:
Chọn điều khiển Option Button tiếp tục kéo vào cửa sổ thiết kế Đặt các thuộc tính cho Option Button :
Dùng để chọn một giá trị có trong danh sách các giá trị đã định nghĩa trước Các thuộc tính của Combo Box :
Name Tên điều khiển (cbomasv)
Control Source Liên kết với dữ liệu nguồn
Row Source Type Chỉ ta loại dữ liệu của danh sách :
Table/query : lấy dữ liệu từ bảng hoặc truy vấn Value : dữ liệu tự gõ vào
Row Source Chứa dữ liệu của danh sách
Column Count Số cột dữ liệu hiển thị trong danh sách
Column Widths Độ rộng của các cột dữ liệu trong danh sách được ngăn cách bởi dấu chấm phẩy (;)
Bound Column Chỉ ra cột trả về giá trị cho Combo Box
Limit To List Yes\No: Khả năng người dùng có thể nhập vào các giá trị không sẵn có trong Combo Box
Tương tự như Combo Box nhưng List Box có diện tích lớn hơn và người sử dụng chỉđược chọn mà không thể nhập dữ liệu mới vào danh sách
Hình 5 17 Ví dụ minh họa điều khiển List Box
List box có các thuộc tính tương tựnhư combo box
Name Tên điều khiển (LstMasv)
Control source Liên kết với dữ liệu nguồn
Chỉ ta loại dữ liệu của danh sách : Table/query : lấy dữ liệu từ bảng hoặc truy vấn Value : Dữ liệu tự gõ vào
Row source Chứa dữ liệu của danh sách
Column count Số cột dữ liệu hiển thị trong danh sách
Column widths Độ rộng của các cột dữ liệu trong danh sách được ngăn cách bởi dấu chấm phẩy (;) Column Heads Hiển thỉ hoặc không hiển thị tiêu đề dữ liệu
Bound column Chỉ ra cột trả về giá trị cho List Box
Hình 5 18 Ví dụ minh họa điều khiển Tab Control
Cho phép chúng ta tạo một điều khiển có nhiều trang khác nhau nhằm thể hiện đầy đủ các thông tin theo từng nhóm trên form
- Chèn thêm một trang mới: Click chuột phải trên Page cuối \ chọn Insret Page
- Xóa một trang: Click chuột phải lên trang cần xóa \ chọn Delete Page
Các thuộc tính của Tab control :
Caption Hiển thị nội dung tiêu đề trang
Page Index Thứ tự các trang
Lưu ý : Phải chọn trang cần thiết kếtrước, sau đó tạo điều khiển cần chèn lên trang đang được chọn
Subform là một form được nhúng vào bên trong của một form khác, chọn chếđộ hiển thị cho Subform là Datasheet
Một màn hình mà bên trong Form chính có chứa một hay nhiều Form con khác được gọi là màn hình dạng Main – Sub Dạng màn hình này thường sử dụng để thực hiện các thao tác thay đổi dữ liệu trên 2 bảng có quan hệ 1- N
Các thuộc tính của Subform:
Source Object Tên form cần đưa vào
Tên của một hay nhiều Field có trong Sub Form Các Field này dùng để liên kết dữ liệu với Main Form, dựa vào quan hệ giữa 2 bảng Mỗi Field cách nhau bởi dấu chấm phẩy (;)
Link Master Fields Tên field hoặc tên điều khiển dùng để liên kết với form Sub, mỗi đối tượng cũng được cách nhau bởi dấu chấm phẩy
Các bước thiết kế màn hình Main – Sub
- Tạo các điều khiển trên form Main
- Tạo các màn hình đóng vai trò là Form Sub có dạng hiển thị là Datasheet sau đó lưu và đóng lại
+ Thuộc tính Source Object của Subform : Chọn tên Form là form con đưa vào
+ Điền các cột liên kết vào 2 thuộc tính Link Child Field và Link Master Field của Sub Form Nếu liên kết có nhiều field thì mỗi field được ngăn cách nhau bằng dấu chấm phẩy (;)
Hình 5 19 Ví dụ minh họa điều khiển Subform
Truyền dữ liệu giữa các màn hình Để lấy thông tin từ một màn hình trong chế độ thực thi ta thực hiện những bước sau:
Tạo một TextBox trên màn hình sẽ nhận dữ liệu từ màn hình khác
Thiết lập công thức cho thuộc tính Control Source của TextBox như sau:
Forms![Tên form cần lấy giá trị]![Tên đối tượng cần lấy giá trị]
Lấy dữ liệu của Form Sub
Cung cấp cho sinh viên kiến thức và những kỹ thuật cần thiết trong quá trình xây dựng báo cáo, giúp sinh viên có khảnăng thiết kếđược các dạng báo cáo thông dụng
Report giúp người sử dụng có thể trình bày thông tin lưu trữ trong table dưới hình thức của một biểu mẫu, khả năng xuất dữ liệu ra nhiều định dạng khác, như máy tin, tập tin, màn hình
5.2.1 Tabular : Dữ liệu hiển thị các dòng liên tục nhau
Hình 4 1 Dạng hiển thị Tabular không phân nhóm
Hình 4 2 Dạng hiển thị Tabular phân nhóm theo lớp
5.2.2 Columnar : Dữ liệu hiển thị chi tiết từng mẫu tin
Hình 4 3 Dạng hiển thị Columnar
5.2.3 Các bước chuẩn bị trước khi tạo báo cáo :
Dựa vào thông tin cần trình bày trên báo cáo, chọn các table/Query chứa thông tin cần hiển thị, gọi là nguồn dữ liệu của báo cáo.(Nguồn của báo cáo có thể là một hay nhiều table, hoặc câu query lọc thông tin cần hiển thị)
Xác định báo cáo cần thiết kế thể hiện ở dạng nào, Tabular hay Columnar?
Báo cáo có phân nhóm hay không? Khi báo cáo có phân nhóm thì ta cần xác định có bao nhiệu nhóm? Field nào được chọn phân nhóm?
5.3.Tạo Report bằng công cụ Report Wizard
5.3.1 Tạo báo cáo chi tiết :
Chọn dữ liệu nguồn cho báo cáo là bảng hoặc Query trên thanh Navigation Pane
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Report
5.3.2 Tạo báo cáo phân nhóm :
Chọn dữ liệu nguồn cho báo cáo là bảng hoặc Query trên thanh Navigation Pane
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Report
Chọn các field cần thiết kế trong Hình 4 4 Click Next
Hình 4 4 Hộp thoại Report Wizard tạo báo cáo bước 1
Chọn một cột muốn nhóm dữ liệu trên báo cáo Hình 4 5 Click Next
Hình 4 5 Hộp thoại Report Wizard tạo báo cáo bước 2
Chọn tiếp các cột muốn nhóm dữ liệu báo cáo Click Next
Hình 4 6 Hộp thoại Report Wizard tạo báo cáo bước 3
Chọn tên cột muốn sắp xếp bên trong chi tiết báo cáo Click Next
Hình 4 7 Hộp thoại Report Wizard tạo báo cáo bước 4
Chọn các thể hiện của báo cáo và hướng giấy in của báo cáo Click Next
Hình 4 8 Hộp thoại Report Wizard tạo báo cáo bước 5
Chọn các kiểu thể hiện tiêu đề, chi tiết cho báo cáo Click Next
Hình 4 9 Hộp thoại Report Wizard tạo báo cáo bước 6
Đặt tiêu đề cho báo cáo cũng là tên của report Click Finish
Hình 4 10 Hộp thoại Report Wizard tạo báo cáo bước 7
Hình 4 11 Kết quả tạo report R_DSsinhvien bằng Wizard
Click chọn biểu tượng để chỉnh sửa report
5.4.Chỉnh sửa Report bằng Design View
5.4.1 Các thành phần của Report
Hình 4 12 Màn hình hiển thị các thành phần của Report
Report Header –Tiêu đề của báo cáo: Các thông tin được đặt trong phần này sẽ xuất hiện ở đầu báo cáo (chỉ xuất hiện một lần ở trang đầu tiên của báo cáo)
Report Footer – Cuối báo cáo: Các thông tin được đặt trong thành này sẽ xuất hiện ở cuối báo cáo (chỉ xuất hiện một lần ở trang cuối cùng của báo cáo)
Page Header – Tiêu đề của trang: Các thông tin được đặt trong phần này sẽ xuất hiện ởđầu mỗi trang của báo cáo
Page Footer – Cuối trang: Các thông tin được đặt trong thành phần này sẽ xuất hiện ở cuối mỗi trang của báo cáo
Detail – Chi tiết: Thể hiện các thông tin chi tiết (thông tin chính) của báo cáo
Ngoài các thành phần cơ bản đã giới thiệu ở trên, còn có 2 thành phần sau:
Group Header – Đầu nhóm: Các thông tin được đặt trong phần này sẽ xuất hiện ở đầu mỗi nhóm dữ liệu của báo cáo
Group Footer – Cuối nhóm: Các thông tin được đặt trong phần này sẽ xuất hiện ở cuối mỗi nhóm dữ liệu của báo cáo
Các chế độ hiển thị của Report :
Hình 4 13 Các chếđộ hiển thị của Report
Design View: Cho phép thiết kế cấu trúc của báo cáo
Report View: Cho phép xem dữ liệu từ bảng nhưng không thay đổi cách bố trí của báo cáo
Layout View: Cho phép xem dữ liệu từ bảng và có thể thêm, chỉnh sửa, xóa các thành phần của báo cáo
Print Preview: Cho phép xem báo cáo trước khi được in
5.4.2 Thiết kế Report bằng Design view
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Report
Hình 4 14 – Màn hình Design View của report
Double click tại giao điểm giữa hai thước ngang và dọc để mở cửa sổ thuộc tính của report Hình 4 14
Hoặc click chọn biểu tượng trong nhóm Tool của thanh công cụ Design để tắt/mở cửa sổ thuộc tính
Chọn dữ liệu nguồn cho report trong thuộc tính Record Source Hình 4 15
Hình 4 15 Cửa sổ Property của report
Chọn biểu tượng để tắt / mở hộp thoại Field list của report
Hình 4 16 Hộp thoại Field list của report
Lấy dữ liệu từ Field List sang thành phần detail của report bằng cách double click vào các field tương ứng
5.4.3 Các điều khiển thường dùng trên Report
Hình 4 17 Thanh công cụ Tool box của Report
Là điều khiển dùng để hiển thị các thông tin tĩnh (không thay đổi) trên báo cáo, chẳng hạn như Tiêu đề của báo cáo, Tiêu đề của các cột trong báo cáo,
Là điều khiển dùng để hiển thị giá trị của một field, một công thức tính toán hay của một biểu thức thống kê Để lấy dữ liệu nguồn của điều khiển ta vào thuộc tính Control Source trong cửa sổ thuộc tính của report sau đó chọn Field cần lấy giá trị hoặc gõ công thức tính toán (luôn bắt đầu bởi dấu bằng “ = ” ).
Line : Được sử dụng để vẽ các đường thẳng nhằm trang trí cho báo cáo Giúp các thông tin trên báo cáo được trình bày rõ ràng hơn
Dùng để vẽ các khung hình chữ nhật nhằm trang trí cho báo cáo
Là điều khiển có nhiệm vụ ngắt trang báo cáo tại vịtrí đặt điều khiển Đểthay đổi cách thể hiện dữ liệu trên điều khiển thì người ta sử dụng thuộc tính Format trong cửa sổ thuộc tính của điều khiển
5.4.4 Các thao tác chung trên điều khiển
Tạo điều khiển : Click chọn điều khiển trên Toolbox sau đó click vào vùng thiết kế của Report
Chọn các điều khiển: Click vào điều khiển cần chọn Muốn chọn nhiều điều khiển cùng lúc ta có thể nhấn giữphím Shift + điều khiển cần chọn hoặc đưa trỏ chuột ra ngoài thước dọc sau đó kéo rê chuột
Di chuyển các điều khiển
Di chuyển một điều khiển được chọn: kéo rê chuột tạo điểm trên bên trái của điều khiển
Di chuyển điều khiển và thành phần thành liên kết với nó nếu có: kéo rê chuột tại vị trí bất kỳ của điều khiển
Thay đổi kích thước của điều khiển
Khi điều khiển được chọn thì xung quanh nó xuất hiện 8 ô hình vuông màu đen Để thay đổi kích thước của điều khiển ta di chuyển chuột đến vị trí của các ô vuông, khi đó biểu tượng của chuột sẽ đổi thành dạng đường thẳng hai đầu có hai mũi tên, click và rê chuột để thay đổi kích thước của điều khiển hoặc ta cũng có thể sử dụng tổ hợp phím Shift và các phím mũi tên để thay đổi kích thước của điều khiển
Lưu ý : Để thiết kế nhanh báo cáo ta nên sử dụng Wizard để thiết kếsau đó ta trở về chế độ Design View để chỉnh sửa
5.5.Một số kỹ thuật thường dùng trong thiết kế
5.5.1 Ẩn hoặc hiện các thành phần của báo cáo
Ẩn hiện Report Header/Footer, Page Header/Footer :
Click chọn tab Arrange trên thanh công cụ Report design
Click chọn các thành phần cần hiển thị trên nhóm Show/Hide
Hình 4 18 Nhóm Show/Hide các thành phần của báo cáo
Ẩn hiện Group Header/Footer
Click chọn biểu tượng trong nhóm Grouping &Total trên thanh công cụ Design
Click chọn để tạo nhóm và để sắp xếp
Chọn field cần tạo nhóm hoặc biểu thức phân nhóm Hình 4 19
Hình 4 19 Bảng hiện thị các field cần tạo nhóm
Click vào nút More/Less để ẩn hiện thêm các thông tin cần tạo nhóm
Hình 4 20 – Hộp thoại dùng để sắp xếp hoặc thống kê theo nhóm
Click chọn biểu tượng mũi tên with no totals
Hình 4 21 – Hộp thoại chọn nhóm và hàm thống kê
Totals on: Chọn field cần thống kê
Type : Chọn hàm cần thống kê
Show Grand Total : Hiển thị thống kê cuối báo cáo
Show group totals as % of Grand Total : Hiển thị tỷ lệ % thống kê từng nhóm
Show in group header : Hiển thị thống kê ởđầu nhóm
Show in group footer : Hiển thị thống kê ở cuối nhóm
Ngoài ra, ta có thể sử dụng shortcut menu đểẩn hiện các thành phần của báo cáo
5.5.2 Tạo số thứ tự cho báo cáo
Vẽ TextBox vào vịtrí tương ứng trên báo cáo
Trong thuộc tính Control Source của TextBox này ta gán =1
Trong thuộc tính Running Sum của TextBox này ta chọn một trong 3 giá trị sau:
None: Không tự động làm tăng giá trị của TextBox khi sang mẫu tin tiếp theo
Over Group: Tự động tăng giá trị của TextBox khi sang mẫu tin tiếp theo Tuy nhiên, nếu chuyển sang một nhóm thông tin khác thì giá trị của TextBox này sẽđược khởi động lại bằng với giá trị ban đầu gán cho Control Source
Over All: Tự động tăng giá trị của TextBox khi sang mẫu tin tiếp theo, không gán lại giá trị khi qua nhóm khác
Hình 4 22 Cửa sổ chọn giá trị cho thuộc tính Running Sum
Chọn biểu tượng Line thickness Width trên thanh Tools box
Chọn dạng cần kẻ khung
5.5.3 Ẩn hoặc hiện field khi trùng lắp
Chọn yes tại thuộc tính Hide Duplicates của của sổ thuộc tính của điều khiển
Vẽđiều khiển TextBox vào phần Page Footer
Điền công thức vào thuộc tính Control Source của TextBox để tạo số trang mong muốn
Hàm Page: cho biết trang hiện hành trên báo cáo
Hàm Pages: cho biết tổng số trang sẽđược trình bày trên báo cáo
Ta có thể đánh số trang nhanh cho report bằng cách chọn biểu tượng
Control Source = “Trang “ & Page & “/” & Pages
5.5.5 Ngắt trang Đặt điều khiển Page Break vào vị trí cần phân trang, khi báo cáo được xem ở chếđộ Preview thì thông tin sẽ tựđộng được phân trang theo vịtrí đặt điều khiển
BÀI TẬP THỰC HÀNH CHƯƠNG 5
Sử dụng cơ sở dữ liệu Quản lý điểm thiết kế các report sau :
1 Thiết kế report danh sách khoa theo mẫu sau :
2 Thiết kế report danh mục lớp theo mẫu sau :
Tiếp tục cho các khoa khác…
3 Thiết kế report danh sách sinh viên theo mẫu sau :
Tiếp tục cho các lớp khác …
Tiếp tục cho các sinh viên khác…
4 Thiết kế report danh sách môn học theo mẫu sau:
Tiếp tục cho các lớp khác…
5 Thiết kế report bảng điểm môn học lần 1, lần 2 cho sinh viên theo mẫu sau :
Tiếp tục cho các lớp khác…
6 Thiết kế report kết quả học tập cho sinh viên theo mẫu sau :
Tiếp tục cho các lớp khác…
Cung cấp cho sinh viên các kiến thức cơ bản về đối tượng Macro (tập lệnh) Trình bày các thao tác xử lý đối với Macro và cách sử dụng macro với các biến cố(sự kiện) trên form hoặc trên điều khiển Giúp sinh viên biết cách tạo đúng các tập lệnh cho các màn hình ứng dụng
− Macro là tập hợp các bộ lệnh đã được định nghĩa sẵn Mỗi bộ lệnh có một chức năng riêng biệt Trong Macro, nếu có nhiều bộ lệnh thì phải sắp xếp theo một trình tự xử lý
− Macro không thực hiện độc lập mà phải kết hợp với các sự kiện trên Form hay các điều khiển trên form
6.2.Khái niệm thuộc tính, hành động và sự kiện
Thuộc tính dùng để xác định những đặc điểm đối tượng, những loại đối tượng khác nhau thì sẽ có những thuộc tính mang ý nghĩa sử dụng giống và khác nhau
Là những thao tác xử lý của riêng đối tượng và do chính đối tượng gọi thực thi hành động đó Hành động của đối tượng sẽđược thực thi theo cú pháp :
Tên đối tượng.Tên hành động
Là những xử lý liên quan đến các đối tượng trên màn hình như mở form, click chuột,…
- CurrentRecord: Cho biết dòng hiện hành trong bộ mẫu tin nguồn trên Form
- RecordSetClone.RecordCount: Cho biết tổng số dòng (Record) có trong bộ mẫu tin nguồn
Các sự kiện trên Form:
- On Load: Sự kiện xảy ra khi bắt đầu mở Form (Các điều khiển chưa xuất hiện trên Form )
- On Open: Sự kiện xảy ra khi mở Form (Các điều khiển đã xuất hiện trên Form )
- On Activate: Sự kiện xảy ra khi Form được kích hoạt
- On DeActivate: Sự kiện xảy ra khi đóng kích hoạt Form
- On Close: Sự kiện xảy ra khi đóng Form
- On Unload: Sự kiện xảy ra khi đóng Form
- On Current: Sự kiện xảy ra với trạng thái dòng (Record) hiện hành trên Form
- On Click: Sự kiện xảy ra khi click chuột
- On DbClick: Sự kiện xảy ra khi Double click chuột
- Before Update: Sự kiện xảy ra trước khi cập nhật form
- After Update: Sự kiện xảy ra sau khi cập nhật form
- Before Insert: Sự kiện xảy ra trước khi thêm mới một dòng trên form
- After Insert: Sự kiện xảy ra sau khi thêm mới một dòng trên form
Các sự kiện trên điều khiển:
- On Click: Sự kiện xảy ra khi click chuột trên điều khiển
- Dblclick: Sự kiện xảy ra khi Double click chuột trên điều khiển
- On KeyPress: Sự kiện xảy ra khi nhấn một phím tại điều khiển
- On Keydown: Sự kiện xảy ra khi nhấn giữ một phím tại điều khiển
- On KeyUp: Sự kiện xảy ra khi nhả phím tại điều khiển
- On GotFocus: Sự kiện xảy ra trước khi con trỏ vào điều khiển
- On LostFocus: Sự kiện xảy ra sau khi con trỏ ra khỏi điều khiển
- On Change: Sự kiện xảy ra khi thay đổi nội dung điều khiển
Chọn sự kiện cần xử lý trên form (Chọn trang Event trên cửa sổ thuộc tính Properties\ chọn On Click)
Click vào dấu … chọn Macro builder \ Ok
Chọn các bộ lệnh (hành động ) xử lý trong khung Action
Action Arguments: chứa các thuộc tính tương ứng với hành động đã chọn trong cột Action ở phía trên
Hình 6 1 Hộp thoại hướng dẫn tạo Macro
Hình 6 2 Màn hình thiết kế Macro
Chứa danh sách các tham sốTham số của lệnh Requery
6.4.Các tập lệnh thường dùng
Di chuyển mẩu tin hiện hành trên form
Object Type: Kiểu đối tượng
Object Name: Tên đối tượng
Record: Vị trí di chuyển là Trước, Sau, Đầu, Cuối, Thêm mới, di chuyển vị trí mẩu tin thứ mấy
Command: Tên của chức năng lệnh sẽđược thực hiện:
Undo: Không ghi / phục hồi dữ liệu cũ
Find What: Giá trị cần tìm kiếm
Match: Xác định vị trí dò tìm của dữ liệu trong cột có thể là một phần, cả một cột hoặc bắt đầu của một cột
Match Case: Có phân biệt dữ liệu có chữ IN hay thường
Find First: Vị trí tìm kiếm bắt đầu từ mẩu tin đầu tiên hay mẩu tin hiện hành
Cho phép gán giá trịvào các điều khiển, thuộc tính của các điều khiển
Item: Tên của điều khiển, thuộc tính của điều khiển
Expression: Giá trị cần gán vào
Form Name: Tên form muốn mờ
View: Hiển thị form ở các chế độ: thiết kế, in xem trước…
Filter Name: Tên truy vấn sẽ làm bộ lọc dữ liệu nguồn cho form
Where Condition: Biểu thức lọc(giống mệnh đề Where của câu lệnh SQL)
Data Mode: Chế độ hiển thị dữ liệu là thêm mới, sửa đổi và chỉ đọc
Report Name: Tên báo cáo muốn mờ
View: Hiển thị report ở các chế độ: thiết kế, in xem trước…
Filter Name: Tên truy vấn sẽ làm bộ lọc dữ liệu nguồn cho báo cáo
Where Condition: Biểu thức lọc(giống mệnh đề Where của câu lệnh SQL)
Thực hiện xuất một hộp thoại thông báo ra màn hình
Message : Chuỗi xuất thông báo
Title: tiêu đề của cửa sổ
Huỷ bỏ một hành động
Thực hiện ngắt ngang một biến cố, một tập lệnh, thoát khỏi MS Access
Cập nhật dữ liệu ở các điều khiển
Control Name : tên điều khiển
Di chuyển con trỏđến điều khiển
Control Name: tên điều khiển
Thực hiện một Macro khác
Đóng màn đối tượng hiện hành(Form , Report , Table , )
Object Type : Kiểu đối tượng
Object Name : Tên đối tượng
Save : có lưu lại không (yes/no)
Nếu như có một yêu cầu nào đó trước khi thực hiện một hành động thì chúng ta phải kiểm tra điều kiện trước, khi nào điều kiện đúng sẽ thực hiện hành động, ngược lại sẽ thực hiện những hành động khác hoặc có thểkhông có hành động nào được thực hiện Lúc này ta cần đến tập lệnh có điều kiện
- Cách chèn cột điều kiện trong Macro Để có thể ghi các điều kiện cần kiểm tra cho một hành động trong Macro ta cần chèn vào cột điều kiện (Condition Column) trong màn hình thiết kế Macro
- Mở Macro ở chếđộ thiết kế
- Click chọn biểu tượng trong nhóm Show/Hide trên thanh công cụ Design
- Ghi điều kiện cần kiểm tra cho các hành động trong tập lệnh trên cột Condition mới vừa thêm
- Lệnh 1 được thực hiện khi biểu thức điều kiện 1 là True
- Lệnh 2 được thực hiện khi biểu thức điều kiện 2 là True
- Lệnh N được thực hiện khi biểu thức điều kiện N là True
- Nếu biểu thức điều kiện là rỗng thì xem như là True
- Nếu biểu thức điều kiện giống nhau thì dùng dấu …
Ví dụ : Để thiết kế nút Thoát dùng để đóng form hiện hành ta tạo macro có điều kiện như hình 6.3
Hình 6.3 Macro dùng đểđóng form hiện hành
BÀI TẬP THỰC HÀNH CHƯƠNG 6
Sử dụng cơ sở dữ liệu quản lý điểm thiết kế các màn hình sau :
1 Tạo Form có tên F_Nhap_Khoa dùng để nhập dữ liệu vào bảng Khoa Sử dụng macro để tạo lệnh cho các nút lệnh
2 Thiết kếform F_bangdiemmonhoc dùng đểxem điểm thi môn học được chọn từ Combo box
- Combo Box chọn lớp hiển thị các lớp trong cơ sở dữ liệu
- Combo Box chọn môn hiển thị các môn của lớp vừa chọn ở trên
- Nút Xem bảng điểm dùng để mở report bảng điểm theo lớp và theo môn đang chọn trên Combo Box
3 Thiết kế form F_diemthicuasinhvien dùng để xem điểm thi của sinh viên được chọn từ Combo Box
- Combo Box chọn lớp hiển thị các lớp trong cơ sở dữ liệu
- Combo Box chọn sinh viên hiển thị các sinh viên của lớp vừa chọn ở trên
- Nút Xem kết quả dùng để mở report bảng điểm theo lớp và theo sinh viên đang chọn trên Combo Box
4 Thiết kếform F_xemdiemthi dùng đểxem điểm thi của từng môn học
- Thiết kế 1 list box chọn lớp dùng để chọn lớp cần xem điểm
- Thiết kế 1 list box chọn môn dùng để chọn môn của lớp hiện hành trên list chọn lớp
- Thiết kế 1 subform hiển thị thông tin vềđiểm thi của sinh viên, các field trên subform chỉđược xem không được phép sửa dữ liệu
Giới thiệu những thành phần quan trọng trong ngôn ngữ VBA và cách vận dụng VBA trong việc tạo các chức năng xử lý trên màn hình, giúp sinh viên có khả năng xây dựng những màn hình làm việc có nhiều chức năng về hiển thị dữ liệu, các chức năng thao tác dữ liệu và xử lý lỗi trong khi cập nhật dữ liệu trên màn hình ứng dụng
Mặc dù macro đã hỗ trợ một cách nhanh chóng và dễdàng để tự động hóa các ứng dụng nhưng macro không có tính mềm dẽo, với những yêu cầu phức tạp thì macro không giải quyết được
Module là một công cụ của Access dùng ngôn ngữVisual Basic để tạo những chương trình nhằm giải quyết những hạn chế của macro
Module và các thủ thủ tục của nó là đối tượng chủ yếu của ngôn ngữ lập trình VBA (Visual Basiv for Application) Có hai loại module: module dùng chung và module gắn liền với form, report
Visual Basic là ngôn ngữ lập trình dùng để ràng buộc các đối tượng trong ứng dụng với nhau thành một hệ thống hợp nhất Các chương trình của VBA (Visual Basic for Application) được tổ chức và hoạt động trong Access nhằm mục đích xây dựng các ứng dụng phức tạp
7.1.2 Khi nào sử dụng tập lệnh Visual Basic
Có thểdùng VB để thực hiện các công việc sau:
- Làm cho ứng dụng dễ bảo trì hơn
- Tạo ra các hàm/thủ tục của người sử dụng để xử lý các thao tác phức tạp mà chưa được MS Access cung cấp sẵn
- Xử lý lỗi theo ý người sử dụng
- Tạo hay thao tác với các đối tượng
- Thực hiện các thao tác cấp hệ thống : thực hiện một ứng dụng khác, liên kết giữa các ứng dụng
Module chung : Dùng để chứa các thủ tục và hàm chung do người thiết kế tự lập trình bằng ngôn ngữ VBA để bổ sung cho file cơ sở dữ liệu mà ta có thể chạy ở bất kỳ vị trí nào trong ứng dụng
- Chọn tab Create trên thanh Ribbon
- Chọn biểu tượng Module trên nhóm other
- Nhập hàm hoặc thủ tục vào vùng soạn thảo
Hình 7 1 Màn hình tạo module chung
Module riêng(Module gắn liền với form, report) : Dùng để chứa các thủ tục xử lý sự kiện liên kết với Form hay Report Ta không thểlưu riêng module loại này mà chúng gắn liền với Form hoặc Report Khi ta sao chép Form hay Report từ tập tin CSDL này sang tập tin CSDL khác thì các Module này cũng được chép sang cùng với nó và nếu ta xóa Form hoặc Report thì chúng cũng bị xóa theo
- Mở Form ở chếđộ Design rồi bấm vào biểu tượng nút Code
- Nhập hàm hoặc thủ tục vào vùng soạn thảo
Hình 7 2 Màn hình chọn xem code VBA
Thủ tục xử lý sự kiện ( biến cố) trên form:
Khi Access nhận thấy có một sự kiện (biến cố) xảy ra trên Form hoặc trên điều khiển thì nó sẽ tựđộng thi hành thủ tục biến cố đã tạo cho đối tượng và biến cố đó
Do đó, để thực hiện một số hành động nào đó ứng với sự kiện trên form hoặc trên điều khiển thì ta phải đưa các hành động đó vào một thủ tục biến cố
Thiết kế màn hình cho phép nhập vào hai giá trị A và B, chương trình sẽ tính tổng hai số nhập vào và xuất kết quả ra text box tính tổng khi ta click vào nút Tính tổng
Tạo text box số A có thuộc tính Name: txtsoA
Tạo text box số B có thuộc tính Name: txtsoB
Tạo text box Tổng có thuộc tính Name: txttong
Tạo nút lệnh Command button Tính tổng có thuộc tính Name: cmdTinhtong
Tạo nút lệnh Command button Tiếp tục có thuộc tính Name: cmdTieptuc
Hình 7 3 Màn hình tính tổng 2 số
Trên biến cố On click của điều khiển Tính tổng (Event \ Onclick ) ta chọn Procedure, sau đó click vào dấu … hoặc click vào dấu … chọn Code builder
Hình 7 4 Màn hình hướng dẫn tạo code VBA
Hình 7 5 Màn hình thiết kế VBA
Các quy định khi viết chương trình VBA
- ™ Mỗi lệnh thường viết trên một dòng Nếu muốn xuống dòng ta dùng dấu gạch dưới “_”
- ™ Không phân biệt chữ hoa hay chữthường
- Sử dụng dấu nháy đơn để tạo chú thích
Cửa sổ Project Explorer Cửa sổ viết lệnh
Chứa tên điều khiển trên form
- Khi kết thúc mỗi dòng lệnh, Access sẽ tự động kiểm tra cú pháp của dòng lệnh đó
- Để dịch toàn bộchương trình, ta chọn Debug \ Compile
7.3.1 Các kiểu dữ liệu cơ bản
Boolean: Kiểu lô gíc, tương tự kiểu Boolean trên Pascal Kiểu này chiếm 2 byte bộ nhớ; chỉ nhận một trong 2 giá trị là: Yes – No hoặc True – False
Byte: Kiểu sốnguyên dương trong phạm vi từ 0 255 Kiểu này chiếm 1 byte bộ nhớ
Integer: Kiểu nguyên, có giá trị trong khoảng -32768 32767 Kiểu này chiếm 2 bytes bộ nhớ
Long: Kiểu số nguyên dài, có giá trị trong khoảng 2,147,483,648 147,483,647 Kiểu này chiếm 4 bytes bộ nhớ
Single: Kiểu số thực, có giá trị trong khoảng 1.401298E-45 to 3.402823E38 Chiếm 4 bytes bộ nhớ
Double: Kiểu số thực có độ lớn hơn kiểu Single, có giá trị trong khoảng 4.94065645841247E-324 to 1.79769313486232E308 Chiếm 8 bytes bộ nhớ
Currency: Kiểu tiền tệ Bản chất là kiểu số, độ lớn 8 bytes, có giá trị trong khoảng -922,337,203,685,477.5808 to 922,337,203,685,477.5807 Đặc biệt, kiểu này luôn có ký hiệu tiền tệđi kèm.
String: Kiểu xâu ký tự Kiểu này tương ứng với kiểu String trong Pascal, tương ứng với kiểu Text trong các trường CSDL Access Độ lớn tối đa 255 bytes tương đương với khảnăng xử lý xâu dài 255 ký tự
Variant: Variant là kiểu dữ liệu không tường minh Biến kiểu này có thể nhận bất kỳ một giá trị nào có thể Ví dụ :
Dim a As Variant a = 123 a = “Nguyễn Văn Ngô”
Hoàn toàn không có lỗi
Người ta thường khai báo biến kiểu Variant trong những trường hợp phải xử lý biến đó mềm dẻo Khi thì biến nhận giá trị kiểu này, khi thì nhận giá trị và xử lý theo kiểu dữ liệu khác
Object :Object là một loại biến kiểu Variant, chiếm dung lượng nhớ 4 bytes, dùng để tham chiếu tới một loại đối tượng (Object) nào đó trong khi lập trình Tất nhiên muốn khai báo biến Object kiểu nào, phải chắc chắn đối tượng đó đã được đăng ký vào thư viện tham chiếu VBA bởi tính năng Tool | Reference
Biến (Variable) là thành phần của một ngôn ngữ lập trình, giúp xử lý dữ liệu một cách linh hoạt và mềm dẻo
Biến có thể được khai báo bất kỳ ở đâu trong phần viết lệnh của VBA Tất nhiên, biến có hiệu lực như khai báo chỉ bắt đầu từ sau lời khai báo và đảm bảo phạm vi hoạt động như đã qui định Vì biến trong VBA hoạt động rất mềm dẻo, nên có nhiều cách khai báo biến như:
Ví dụ 1: Khai báo biến i kiểu Integer
Ví dụ 2: Khai báo 2 biến i, j kiểu Integer
Ví dụ 3: Khai báo biến i kiểu Integer, st kiểu String độ dài 15 ký tự
Dim i As Integer, st As String*15
Ví dụ 4: Khai báo biến i kiểu Variant
Ví dụ 5: Khai báo biến txt kiểu Textbox
Ví dụ 6: Khai báo mảng kiểu String*30 gồm 46 phần tử
Ví dụ 7: Khai báo biến mảng 2 chiều A(i , j) trong đó: i = 0 3 và j = 0 4
Ví dụ 8: Khai báo mảng 3 chiều A(i, j, k) trong đó: i = 1 5; j = 4 9 và k = 3 5
Dim A(1 To 5,4 To 9, 3 To 5) As Double
Ví dụ 9: Khai báo một mảng động kiểu Variant Mảng động là mảng không cốđịnh chiều dài
Quy tắc đặt tên biến
Bao gồm các chữ cái, chữ số và dấu gạch dưới
Kí tựđầu phải là chữ cái
Không được trùng với các từ dành riêng của Access
7.3.3 Hằng và cách sử dụng hằng
Hằng (Constant) là đại lượng có giá trị xác định và không bị thay đổi trong bất kỳ hoàn cảnh nào Tương ứng với từng kiểu dữ liệu, sẽ có những hằng tương ứng
Khai báo hằng số bởi từ khoá Const Sau đây là các ví dụ về khai báo các loại hằng:
Ví dụ 1: Hằng a =5 (hằng số)
Ví dụ 2: Hằng ngày = 24/12/2004 kiểu Date (bao bởi cặp dấu thăng # #)
Ví dụ 3: Hằng xâu ký tự (bao bởi cặp dấu nháy kép “ ”)
Ví dụ 4: Hằng kiểu Lôgíc xác định bởi True hoặc False
Biến cục bộ: Được khai báo sau từ khoá Dim, nó chỉ có tác dụng trong một chương trình con, cục bộ trong một form hoặc một module nào đó Biến toàn cục:
Biến toàn cục: Được khai báo sau cụm từ khoá Public, nó có tác dụng trong toàn bộ chương trình (ở bất kỳ chỗ nào có thể viết lệnh)
Ví dụ: Public Hoten(45) As String * 45