Form là một thành phần dùng để cập nhật dữ liêu trên các Table và là giao diện giữa người và máy. Bài giảng Cơ sở dữ liệu: Chương IV - Form giúp học viên nắm được các khái niệm, các trường hợp sử dụng form, các thành phần của form, các dạng của form và các chế độ hiển thị của form. Chúc các bạn học tốt.
Trang 1BÀI GIẢNG
CƠ SỞ DỮ LIỆU CHƯƠNG IV: FORM
I Khái niệm.
- Form là một thành phần dùng để cập nhật dữ liêu
trên các Table, và là giao diện giữa người và máy.
- Form thường được dùng trong các trường hợp
sau:
- Thiết kế màn hình nhập dữ liệu.
- Thiết kế menu.
- Thiết kế các màn hình tra cứu thông tin.
- Tạo các màn hình giới thiệu, trợ giúp.
Trang 2Form gồm có ba thành phần:
Form Header: đầu form
Detail: chi tiết hiển thị nội dung chi tiết
Trang 3Mọi loại đối tượng xuất hiện trên form
được gọi là điều khiển, có ba loại:
Điều khiển bị buộc: (Bound control) là
điều khiển có nguồn dữ liệu lấy từ cơ sở
dữ liệu:
Tra cứu thông tin trong CSDL
Cập nhật thông tin vào CSDL
Điều khiển không bị buộc: (Unbound
control) thông tin không gắn với
nguồn dữ liệu.
Điều khiển tính toán được: giá trị
của nó được tính toán từ các giá trị khác
Trang 4II các dạng của form.
- Dạng columnar: dữ liệu sẽ hiển thị theo
từng cột, tại một thời điểm trên form chỉ
thể hiện thông tin tương ứng của một mẫutin
- Dạng Tabular: dữ liệu thể hiện trên nhiềucột tại một thời điểm trên biểu mẫu thể
hiện thông tin của nhiều mẫu tin khác
nhau
Trang 5Dạng justified: dạng này dữ liệu thể hiện trên nhiều cột nhưng chỉ thể một mẫu tin tại một thời điểm.
Dạng DataSheet View: dữ liệu thể hiện theo dạng bảng, không cho phép hiển thị các điều khiển trong Header và footer
Trang 6II Các chế độ hiển thị của form.
- Chế độ Design View: dùng để chỉnh sửa cấu trúc form (View/Form design hay click vào nút View trên thanh công cụ)
- Chế độ Form View: dùng đẻ thêm, sửa,
xem, xóa dữ liệu Khi ta cập nhật dữ liệu
sẽ tác động đến Table hay Query làm
Trang 7Chế độ Design view
Trang 8Chế độ form view
Trang 9Data sheet view
Trang 10III Thiết kế Form.
3.1 Thiết kế Form mới.
Bước 1: Ở thẻ Form, nhấn New, chọn
Design View
Hoặc D_Click vào Create form in Design view như hình
Trang 113
Trang 12Có 3 thành phần quan trọng để làm việc:
(1) Cửa sổ Form – nơi sẽ thiết kế và xây
dựng các thông tin cần thiết theo yêu cầubài toán
Toàn bộ các thông tin trên form đều đượcchứa trong các đối tượng điều khiển
(Control), các đối tượng này được lấy từthanh công cụ Toolbox
Trang 13(2) Thanh công cụ Toolbox – nơi chứa
những đối tượng, những công cụ có thể đưa lên form với mục đích thiết kế giao diện và điều khiển dữ liệu theo bài toán
Trang 14(3) Cửa cổ Properties – nơi có thể thiết
lập các thuộc tính (properties) cho form cũng như các đối tượng trên form;
Trang 15Bước 2: Thiết lập nguồn dữ liệu cho form
ở thuộc tính Record Source
Bước này để xác định nguồn dữ liệu để form làm việc
Chọn thuộc tính form bằng cách
R_Click vào Form sau đó chọn
Properties/ chọn tên đối tượng (điều
khiển)
Trang 17Chọn tên đối
tượng
Trang 18Thiết lập thuộc tính Record Source cho
form bằng cách chọn tên bảng ở hộp
Record Source Có thể tìm thuộc tính này
ở thẻ Data hoặc thẻ All
Chọn bảng hoặc
query đã tạo sẵn
Tạo mới query làm nguồn cho bảng
Trang 19Chọn bảng hoặc query đã có sẵn (bảng và query đã được tạo trước đó)
Chọn bảng
hoặc query ở đây
Trang 20Tạo query mới làm nguồn cho bảng
Trang 22Bước 3: Mở cửa sổ Field List.
Cửa sổ Field List có chứa danh sách các
trường trên CSDL có trong nguồn dữ liệu của Form Nó hỗ trợ việc đưa những trường dữ liệu này lên form
Nếu chưa thấy cửa sổ này xuất hiện, hãy
thực hiện hiển thị nó bằng cách mở thực đơn
View | Field List hoặc nhấn nút Field List
trên thanh công cụ chuẩn
Trang 23Cửa sổ field list
Hiển thị thông tin của bảng hoặc truy vấn vừa được tạo
Trang 24Bước 4: Đưa những trường cần nhập dữ liệu
từ cửa sổ Field List lên Form đang thiết kế
Dùng chuột kéo từng trường muốn thiết kế
lên form từ cửa sổ Field List thả lên vị trí hợp
lý trên form
Mỗi khi kéo một trường từ Field List lên form, Access sẽ tự động tạo một đối tượng gắn kết tới trường dữ liệu tương ứng
Trang 25Ví dụ: tạo form quản lý thông tin cán bộ
Trang 26Drag các trường muốn hiển thị
Trang 27Kết quả
Trang 28Thực thi
Trang 29Một số thuộc tính khác của form:
+ Default View: Dạng hiển thị ngầm định của form có ba dạng chính:
Single FormContinuous Form
Datasheet
Trang 30+ Picture: Hình ảnh trên toàn form.
Đường dẫn
tới hình
Trang 31 Thuộc tính liên quan đến dữ liệu của
form:
+ Records Source: Tên truy vấn, bảng
nguồn dữ liệu hoặc văn bản SQL của
+ Allow Edits: Cho phép chỉnh sửa dữ
liệu trên form
+ Allow Additions: Cho phép bổ sung
bản ghi trên form
Trang 32+ Menu Bar: menu hiện khi mở form.
+ Shortcut Menu: Menu hiện khi nhấn
chuột phải
Trang 344.2 Sửa đổi cấu trúc Form.
4.2.1 Sửa thuộc tính
Mở form để sửa ở chế độ thiết kế (Design view) bằng cách: R_Click lên form chọn
Design; hoặc nhấn nút Design trên thanh
công cụ Màn hình thiết kế form xuất hiện:
Sửa nhãn (Label): là đối tượng tạo ra
dòng chữ chú thích được nhập trực tiếp từ bàn phím
Trang 354.2.2 Thay đổi kích thước đối tượng
(Resize):
Kích thước của đối tượng thường được
mô tả ở thuộc tính: Height - chiều cao và
With - chiều rộng Tuy nhiên bạn hoàn
toàn có thể thay đổi kích thước đối tượng một cách trực quan bằng chuột
4.2.3 Di chuyển đối tượng:
Di chuyển đối tượng bằng cách trực quan
sử dụng chuột với thao tác kéo-thả
Trang 364.2.4 Thay đổi Font chữ:
Những đối tượng có hiển thị chữ (Text) hoàn toàn có thể thay đổi được phông
chữ Giá trị này được miêu tả ở thuộc tính
Font Name hoặc hộp Font trên thanh
công cụ Formatting
4.2.5 Thay đổi màu nền:
Mỗi đối tượng thường có thể thiết lập
được màu nền, chúng thể hiện ở thuộc
tính BackColor hộp Fill\Back Color trên thanh Formatting.
Trang 374.2.6 Thay đổi màu chữ:
Mỗi đối tượng thường hiển thị chữ có thể thiết lập được màu chữ, chúng thể hiện ở
thuộc tính ForeColor
Trang 384.3 Các điều khiển trong ToolBox.
4.3.1 Các loại điều khiển
Tên nút Chức năng
Label Hiển thị chuỗi văn bản
Textbox Xem, hiệu chỉnh dữ liệu.
Option Group Là một điều khiển phức hợp
List Box Liệt kê danh sách dữ liệu để người
dùng lựa chọn Combo Box Kết hợp giữa một listBox và một
Textbox
Trang 39Subform/subreport Chèn form hay report con vào
form hay report chính Bound Object
Frame
Hiển thị hình ảnh hay biểu đồ hay đối tượng kiểu OLE lưu trong Table
Page Break Ngắt trang
Command Button Nút lệnh dùng để thi hành
Macro
Trang 404.4 Các thuộc tính của điều khiển.
THUỘC TÍNH Ý NGHĨA
Name Tên của điều khiển
Control Source Tên trường hay biểu thức buộc
vào điều khiển Caption Nội dung hiển thị của nhãn
Format Định dạng hiển thị dữ liệu
Decimal place Số chữ số thập phân
Inputmask Định khuôn nhập dữ liệu
Validation rule Biểu thức kiểm chính số nhập
liệu
Trang 41Validation Text Hiển thị thông báo khi vi phạm rule
Visible Hiển thị hay khong hiển thị điều khiển Font name Font chữ của điều khiển
Font Size Cỡ chữ của điều khiển
Text Align Căn lề dữ liệu trong điều khiển
Width Độ rộng của điều khiển
Height Chiều cao của điều khiển.
Trang 424.5 Tạo các điều khiển.
4.5.1 Điều khiển TextBox
• Textbox là điều khiển quan trọng nhất trên
form Đây là loại điều khiển có thể thuộc cả 3 loại: Bị buộc, không bị buộc, và tính toán
được
• Nếu điều khiển không là bị buộc: nó dùng
để nhập dữ liệu vào một biến nhớ dùng
trong so sánh, tính toán hoặc để làm trung gian khi nhập dữ liệu vào bảng Để tạo
điều khiển dạng này, kéo từ toolbox vào
(không liên quan đến CSDL)
Trang 43TextBox không bị buộc
Trang 44Nếu điều khiển là bị buộc thì form đó phải
có nguồn dữ liệu Hiện Fieldlist để hiển thị danh sách các trường Kéo từ Fieldlist vào form, ta có textbox bị buộc với các trường được lựa chọn hoặc chọn trực tiếp từ
control source của textbox
Trang 45Nếu là điều khiển tính toán thì trước hết
tạo như một điều khiển không bị buộc, sau
đó đưa các biểu thức vào
+ Chính ô điều khiển
+ Thuộc tính Control Source của điều
khiển, ở đây còn có thể gọi Expression
Builder.
Gõ biểu thức tính toán vào đây
Trang 46Ví dụ về textbox
Điều khiển không bị buộc
Trang 47Điều khiển bị buộc.
Trang 484.5.2 Tạo Label.
- Click chọn nút Label trên thanh Toolbox
- Vẽ tại vị trí muốn tạo
- Chọn Font chữ, cỡ chữ, màu chữ cho Label
Trang 504.5.3.Điều khiển ảnh.
- Image: Cho phép chọn một số tệp ảnh:
bmp, wmf, … Ít tốn không gian nhớ, tải
ảnh lên form nhanh Để trang trí hoặc làm trung gian để tải ảnh vào CSDL
- Bound object frame: Gắn với trường có
kiểu dữ liệu OLE, có thể thay đổi khi hiện form ở chế độ form view Chỉ cần kéo
trường OLE từ field list vào form là có
ngay điều khiển OLE bị buộc
Trang 52Unbound object frame: Điều khiển không
bị buộc Có thể thay đổi khi hiển thị form ở chế độ form view (Enabled = yes, Locked
= no) Có thể dùng nhiều loại tệp ảnh hơn, chẳng hạn như jpg
Khi dùng điều khiển ảnh cần chú ý các
thuộc tính sau:
+ Size mode+ Special Effect+ Border style, Back style
Trang 534.5.4 Hộp kiểm tra, nút chọn, nút bật, tắt
Có thể có 2 trường hợp:
- Nếu điều khiển bị buộc: nó luôn đượcgắn với trường kiểu yes/no Tùy yêu cầuthực tế mà chọn kiểu nút cho phù hợp
- - Nếu điều khiển không bị buộc: Quantâm đến thuộc tính value-1/0 để lập trình
xử lý sự kiện
Trang 544.5.5 Nhóm lựa chọn là tập hợp gồm nhiều điều khiển thuộc một trong 3 dạng: Option Button, Check Box, Toggle Button.
- Nếu là điều khiển bị buộc: Nó dùng để kiểm soát sao cho dữ liệu nhập vào một
trường chỉ có thể nhận một trong số ít giá trị Để tạo nhóm lựa chọn có thể dùng
một trong hai cách sau:
- - Nếu là điều khiển không bị buộc: không cần chọn trường trên field list Khi tạo điều khiển xong, căn cứ vào giá trị của các nút lựa chọn mà lập trình xử lý sự kiện
Trang 554.5.6 Hộp liệt kê (List Box) và Combo
Trang 56- Row Source Type: Chọn Table/Query hoặc Value List.
- Row Source: Tên bảng hoặc truy vấn nếu Row Source Type là table/query Nếu Row Source Type là Value list thì để danh sách giá trị phân cách bằng dấu ;
- Cũng có thể là một lệnh Selecte của
SQL nếu muốn hiển thị dữ liệu trong hộp này hay nhập vào trường giá trị của
những cột bất kỳ
Trang 57Ví dụ: tạo Combo box chứa tên ĐV
sau đó chọn như hình
Trang 59Ví dụ: tạo combo box chứa các tên cantho, tphcm,hanoi không có trong CSDL
Vẽ combo vào form, tại row source gõ vào như sau: cantho;tphcm;hanoi Tại row
source type chọn Value List
Trang 604.5.7 Nút lệnh (Command Button)
+ Chọn nút lệnh, đưa vào form
+ Lập trình xử lý sự kiện trên nút lệnh: sự kiện quan trọng nhất là Click (Wizards,
Macro hoặc Code)
Trang 62Go to First record
Go to last record
Go to next record
Go to previous record
Trang 63Record Operations
Add new record Delete record Duplicate record Print record Save record Undo record
Trang 68Kết quả
Trang 694.5.8 Điều khiển Tab
Dùng khi cần nhập dữ liệu cho nhiều bảng độc lập khác nhau trên cùng một form
hoặc khi form nhập dữ liệu quá dài
Các thao với điều khiển Tab:
+ Đưa điều khiển tab
Trang 704.6 Tao Sub Form.
Sub-form là việc form này lồng trong form kia
Form chứa gọi là form mẹ (Main form);
Form được lồng vào gọi là form con
(Sub-form)
Việc xử lý dữ liệu trên từng form có thể xử
lý độc lập hoặc có quan hệ với nhau
Trang 714.6.1 Sử dụng Sub-form trong form
nhập dữ liệu:
Bài toán: Thiết kế form nhập thông tin hoá đơn bán hàng như sau:
Trang 72 Với yêu cầu này, phải tạo một form con cho phép hiển thị và nhập các thông tin về hàng bán (1);
Phải tạo một form mẹ để nhập thông tin
về hoá đơn bán hàng (2);
Phải kết nối form mẹ với form con thông qua trường hoadonID
Trang 734.6.1.1 Cách làm như sau:
Bước 1: Tạo form con.
Tạo mới mới form ở chế độ Design View;
Vì form con sẽ hiển thị dữ liệu dạng bảng
nên phải thiết lập thuộc tính Default View
cho form con là Datasheet;
Thiết lập nguồn dữ liệu làm việc cho form
con ở thuộc tính Record Source bằng
cách nhấn nút … (hình dưới)
Trang 74Nhấp lên đây
để tạo
nguồn dữ liệu cho form
Trang 75Một màn hình thiết kế query xuất hiện Hãy thiết lập query này như sau:
Trang 76Sử dụng cửa sổ Field List để đưa các
trường cần thiết lên vùng Detail của form
bao gồm: hangID, donvi, dongia, soluong,
thanhtien;
Ghi lại form với một tên gọi (ví dụ:
frmHangban) và đóng lại, chuẩn bị tạo
form mẹ
Trang 77Form sau khi đưa các trường cần thiết vào
Trang 78Bước 2: Tạo form mẹ
Thiết lập nguồn dữ liệu làm việc cho form
mẹ ở thuộc tính Record Source bằng
cách nhấn nút … (hình dưới).
Nhấp lên đây để tạo nguồn dữ liệu cho form
Trang 79Một màn hình thiết kế query xuất hiện Hãy thiết lập query này như sau:
Trang 80Sử dụng cửa sổ Field List để đưa các
trường cần thiết lên vùng Detail của form
diachi, email;
trên thanh công cụ ToolBox để đưa form con lên form mẹ Sau khi đưa một đối
tượng Subform\Subreport lên form, mộthộp thoại xuất hiện;
Trang 81Chọn vào đây
Chọn tên form conNhấp vào đây để kết thúc
Trang 82Ghi lại form với một tên gọi (ví dụ:
frmLapHoadon) và đóng lại, kết thúc yêu cầu
cơ bản bài toán, thu được kết quả như sau:
Trang 83ĐiỀN GIÁ TRỊ VÀO PROPERTIES
Hiển thị bảng
properties
Tìm đến
Subform/SubReport
Điền tên trường nối kết
trong Subform vào ô:
Link Master Fields
Điền tên trường sẽ liên
kết đến vào ô: Link
Child Fields
Chú ý: nếu nhiều hơn 1 trường thì các trường ngăn cách bởi dấu “;”
Trang 84Tên
subform
Trường dữ liệu trên Subform
Trường DL
trên Mainforrm
Ma
Tên
subform
Trýờng dữ liệu trên Subform
Trýờng DL
trên Mainforrm
Ma
Trang 854.6.2 sử dụng subform trong lọc dữ liệu.
minh hoạ một bài toán đặt lọc sau khi đã được xây dựng và đang hoạt động:
Trang 86Qui trình xây dựng một bài toán đặt lọc có
thể thực hiện như sau:
Bước 1: Xây dựng form con - form sẽ
chứa những kết quả lọc được;
Bước 2: Xây dựng form mẹ - form chứa
những thiết lập điều kiện để lọc;
Bước 3: Thực hiện lọc ra các bản ghi thoả
mãn các điều kiện trên form mẹ và
hiển thị kết quả lên form con
Trang 87Cách giải quyết
Bước 1: Xây dựng Form con
Thiết lập thuộc tính Record Source cho form là một Total Query như sau:
Trang 88Thiết lập thuộc tính Defaul View cho form
con là Datasheets;
Mở cửa sổ FieldList và thiết kế form như sau:
Trang 89Đóng thiết kế form con lại và ghi ten là
frm_formcon.
Bước 2: Xây dựng form mẹ
Toolbox lên form mẹ (giả sử tên (Name)
của Combo này là Combo0) Chọn thuộc
tính Row source là bảng chứa danh sách các khách hàng
Trang 90Sử dụng đối tượng Sub-form/Sub-report trên thanh công cụ Toolbox để đưa form con vừa tạo lên form mẹ Ngầm định tên của sub-form này là frm_formcon Chú ý đến tên gọi này vì phần tiếp sau sẽ sử dụng nó để lập trình.
Trang 91Cuối cùng, giao diện thiết kế form mẹ như sau:
Trang 92Bước 3: Thiết lập lệnh lọc dữ liệu trên form mẹ
Muốn thế, việc lập trình lọc dữ liệu ở đây phải được thực hiện trong thủ tục đáp ứng sự kiện
Combo0_Click Giải thuật sẽ là:
"SELECT hoadonID, khachID, ngayban,
Sum([soluong]*[dongia]) “ + ” AS tongtien FROM
" + " hoadon INNER JOIN (hang INNER JOIN
hangban ON " + " hang.hangID =
hangban.hangID) ON hoadon.hoadonID =" + " hangban.hoadonID WHERE
Trim(khachID)='"+Trim(Combo0)" + " GROUP
BY hoadonID, khachID, ngayban "
Trang 93 Toàn bộ mã lệnh cho bài toán trên như sau:
Set rs = db.OpenRecordset("SELECT hoadonID, khachID,
" + " ngayban, Sum([soluong]*[dongia]) AS tongtien
FROM" + " hoadon INNER JOIN (hang INNER JOIN
hangban ON " + " hang.hangID = hangban.hangID) ON hoadon.hoadonID =" + " hangban.hoadonID WHERE Trim(khachID)='"+Trim(Combo0)" + " GROUP BY
hoadonID, khachID, ngayban ")
Set frm_formcon.Form.Recordset = rs
frm_formcon.Requery
End Sub
Trang 94ĐiỀN GIÁ TRỊ VÀO PROPERTIES
Trang 95Tên
subform
Trýờng dữ liệu trên Subform
Điều khiển
trên Mainforrm
Trang 96Một số hàm xữ lý CSDL
Dùng trong các trường hợp lọc dữ liệu, hoặc tìm kiếm dữ liệu
Trang 98trước và không đếm các mẫu tin có giá trị Null
Ví dụ: đếm số mẫu tin trong bảng đăng ký
=Dcount(“*”, “dangky”)
=Dcount(“*”, “dangky”, “[mssv]=‘sv001’”)
Trang 100Dmin, Dmax, Dsum
Tìm giá trị nhỏ nhất, lớn nhất, tính tổng
của một trường theo điều kiện cho trước
Chú ý:trong trường hợp điều kiện cho trước là một giá trị được lấy từ các điều khiển ta làm như sau:
mh]= ‘ " & [Combo0].[Value] & “ ‘ ")