Bài 4
Xây dựng FORM
Giới thiệu:
Truy vấn query mới chỉ giúp truy xuất và xử lý tính tốn trên
dữ liệu và hiển thị kết quả dƣới dạng bảng đơn điệu. Với công cụ form, dữ
liệu sẽ đƣợc hiển thị dƣới dạng các Form có thể xem, nhập, hiệu chỉnh dữ liệu,
hoặc có thể dùng form để tạo ra các hộp thoại nhằm thiết lập các tùy chọn cho
công việc quản lý của mình. Đây là cơng cụ tạo ra giao diện của một bài trình
quản lý bằng Access.
Mục tiêu:
- Hiểu đƣợc chức năng và đặc trƣng của Form.
- Biết các dạng Form thơng dụng.
- Hiểu đƣợc chức năng và thuộc tính của các đối tƣợng trên Form.
- Biết đƣợc các cách thiết kế Form: Form Wizard, DesignView,...
- Thiết kế đƣợc các form nhập liệu, form tra cứu dữ liệu cơ bản làm tiền đề
cho việc tạo ra các sản phẩm phần mềm hoàn thiện.
- Nghiêm túc, sáng tạo trong việc tạo ra các Form.
Nội dung:
4.1 Form và ứng dụng
4.1.1 Khái niệm về Form
Form là một loại đối tƣợng trong cơ sở dữ liệu Access đƣợc thiết kế để:
- Hiển thị dữ liệu bảng dƣới dạng thuận tiện để xem, nhập và sửa dữ liệu.
- Thực hiện các thao tác thông qua các nút lệnh
4.1.2 Ứng dụng của Form
Form cung cấp một khả năng thuận lợi để hiển thị dữ liệu. Chúng ta có thể
xem mọi thơng tin của một bản ghi thay vì ở chế độ Datasheet nghèo nàn trƣớc
đây bằng chế độ Form View, một phƣơng cách tiên tiến hơn.
Sử dụng Form tăng khả năng nhập dữ liệu, tiết kiệm thời gian và ngăn ngừa
các lỗi do đánh sai. Chẳng hạn thay vì gõ vào các giá trị của tất cả các trƣờng
chúng ta có thể tạo những danh sách (gọi là combo box) để chọn trên Form (đây
là phƣơng cách áp dụng rất hiệu quả để tránh đánh sai dữ liệu).
Form cung cấp một hình thức trình bày hết sức tiện nghi để xem, nhập và
hiệu chỉ các bản ghi trong CSDL. Access cung cấp các công cụ thiết kế Form hỗ
87
trợ rất đắc lực cho chúng ta trong việc thiết kê những Form dễ sử dụng mà lại có
thể tận dụng đƣợc các khả năng:
Hình thức thể hiện dữ liệu đẹp, trình bày lơi cuốn với các kiểu font và hiệu
ứng đồ họa đặc biệt khác ...
Quen thuộc với ngƣời sử dụng vì nó giống các Form trên giấy thơng
thƣờng.
Có thể tính tốn đƣợc.
Có thể chứa cả biểu đồ.
Có thể hiển thị dữ liệu từ nhiều bảng (hoặc truy vấn)
Tự động hóa một số thao tác phải làm thƣờng xuyên.
4.1.3 Kết cấu của Form
Các thơng tin trên Form có thể lấy dữ liệu từ một bảng hay truy vấn nào đó,
nhƣng cũng có thể độc lập đối với cả bảng lẫn truy vấn, chẳng hạn nhƣ các đối
tƣợng đồ họa. Dáng vẻ trình bày của Form đƣợc thực hiện trong q trình thiết
kế.
Tất cả các thơng tin thể hiện trên Form đƣợc chứa trong những đối tƣợng
gọi là điều khiển (control). Điều khiển có thể dùng để thể hiện dữ liệu hoặc thực
hiện các hàng động hoặc trang trí cho Form.
Một số điều khiển đƣợc buộc vào với các trƣờng của bảng hay truy vấn, gọi
là bảng cơ sở hay truy vấn cơ sở. Do đó chúng ta có thể dùng Form để nhập dữ
liệu vào các trƣờng hay lấy dữ liệu từ các trƣờng đó ra để xem. Ví dụ dùng Text
box để nhập hay hiển thị chuỗi và số, dùng Object frame để thể hiện hình ảnh.
Một số điều khiển khác trình bày thơng tin đƣợc lƣu trữ trong thiết kế bảng.
Ví dụ dùng Label (nhãn) để thể hiện thơng tin có tính chất mơ tả; đƣờng và các
hình khối để tổ chức dữ liệu và làm Form có hình thức hấp dẫn hơn.
4.2 Phân loại Form
Các loại Form
- Form dữ liệu:
+ Thể hiện dữ liệu lấy từ một hoặc nhiều table/query
+ Thƣờng dung để cập nhật dữ liệu vào các bảng có liên quan
- Form hộp thoại:
+ Không chứa dữ liệu chỉ chứa các ô điều khiển
+ Là phƣơng tiện giao tiếp giữa ngƣời sử dụng và hệ thống
88
- Các dạng Form dữ liệu
+ Form dạng cột( Columnar)
Hình 4.1. Form dạng cột
+ Form dạng bảng( Tabular)
Hình 4.2. Form dạng bảng
+ Form dạng hàng( Justified)
Hình 4.3. Form dạng hàng
89
+ Form dạng bảng dữ liệu(Datasheet)
Hình 4.4. Form dạng bảng dữ liệu
+ Form chính/phụ(Main/Sub form)
Hình 4.5. Form chính/phụ
4.3 Các phƣơng pháp tạo Form
4.3.1 Tạo Form với Split form
Access cung cấp chức năng Split form cho phép chúng ta tạo Form dựa trên
các bảng hoặc truy vấn đã đƣợc xây dựng trƣớc đó.
Cách tạo
+ Trong cửa sổ Database, ta chọn bảng hoặc truy vấn làm nguồn dữ liệu
cho Form.
+ Trong Menu Create/ Chọn Split form
Hình 4.6. Cửa sổ Split form
90
Ví dụ
Cho bảng Danhsach( Tenphong, hoten, ngayden, ngaydi, thanhtien)
Hãy thiết kế Form dựa trên chức năng Split form sử dụng bảng Danhsach
làm nguồn dữ liệu.
Hình 4.7. Form dạng Split form
4.3.2 Tạo Form sử dụng Wizard
* Cách tạo
Trong cửa sổ Database chọn Menu Create/ chọn More Form, chọn Form
Wizard
Hình 4.8. Mơ tả thao tác chọn các trường đưa vào Form
Trong mục Tables/ Queries: Chọn dữ liệu nguồn từ bảng hay từ truy vấn.
Trong mục Avaiable Field: Chọn các trƣờng đƣa vào Form, nhấn nút >>
Chọn nút Next.
Chọn Columnar : Form hiển thị theo dạng cột
91
Tabular: Form hiển thị theo dạng hàng
Datasheet: Form hiển thị theo dạng bảng
Justified: Form hiển bình thƣờng (đều).
Chọn Next
Hình 4.9. Hình ảnh chọn kiểu hiển thị các trường
Chọn loại Form
Chọn Next
Đặt tiêu đề cho Form
Hình 4.10. Mơ tả thao tác chọn tiêu đề cho Form
Chọn Open the form to view or enter information: Nếu muốn mở Form sau
khi chọn Finish
92
Chọn Modify the form’s design: Nếu muốn form ở dạng thiết kế. Chọn
Finish
Hình 4.11. Mơ tả thiết kế Form ở dạng thiết kế
Lƣu lại form.
* Sử dụng form đã tạo đƣợc vào việc nhập dữ liệu:
Chọn form, nhấn nút Open. Nếu form đang ở chế độ thiết kế có thể
nhấn nút View trên thanh cơng cụ. Lúc này có thể sử dụng form để cập nhật dữ
liệu:
Hình 4.72. Mơ tả thao tác mở Form sau khi thiết kế
Tại mỗi thời điểm, form nhập dữ liệu chỉ hiển thị giá trị của một bản ghi.
Bạn có thể nhập, sửa trực tiếp các trƣờng của bản ghi hiện tại trên form này.
Thanh định hƣớng (Navigator bar) sẽ giúp xử lý một số thao tác trên form,
cách sử dụng nhƣ sau:
- Nút
để chuyển đến bản ghi kề trƣớc;
- Nút
để chuyển về bản ghi đầu tiên;
- Nút
để chuyển đến bản ghi cuối cùng;
- Nút
để thêm một bản ghi mới
93
4.3.3 Tạo Form từ cửa sổ Design
Tạo Form sử dụng công cụ Split form và Form wizard ngƣời sử dụng có
thể nhanh chóng thiết kế các Form nhờ vào các đặc tính hỗ trợ của Access.
Nhƣng đối với hai cách trên chỉ cung cấp một số hạn chế các phƣơng án xây
dựng Form mà khơng thỗ mãn u cầu của ngƣời sử dụng khi muốn thiết kế
Form teho ý của riêng mình. Do đó ngƣời sử dụng phải tự thiết kế một Form
không cần sự hỗ trợ của Access.
Nội dung mục này trình bày mơi trƣờng thiết kế form cũng nhƣ cách tạo
một số kiểu form từ đơn giản đến phức tạp sử dụng Form Design View.
Chúng ta sẽ tìm hiểu cách thiết kế một form nhập dữ liệu đơn giản thông
qua yêu cầu: tạo form dùng làm mẫu nhập dữ liệu cho bảng CANBO.
Bƣớc 1: Tại cửa sổ Database, Chọn menu Create, chọn Form Design. Môi
trƣờng thiết kế form xuất hiện:
Hình 4.83. Mơ tả thiết kế Form bằng Design View
Có 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 u cầu bài tốn. Cấu trúc form gồm 3 phần:
Form Header - phần tiêu đề đầu form; Form Footer - phần tiêu đề cuối;
Detail - phần thân form..
Tồn bộ các thơng tin trên form đều đƣợc chứ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 sẽ trình
bày phần tiếp sau.
(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 tốn. Ví dụ: muốn tạo ơ nhập Họ tên trên form có thể dùng đối tƣợng
94
Textbox, muốn đƣa một chú thích ( nhãn hiển thị) có thể dùng Label, muốn tạo
một nút lệnh có thể dùng Command Button,…
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 để nhập và hiển thị dữ liệu rất tốt. Trong trƣờng hợp này ta dùng để đƣa
những trƣờng cần nhập dữ liệu từ bảng CANBO 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 Design / Ribbon Tool/Add Existing Fields.
Hình 4.94. Mơ tả hiển thị các trường trên CSDL
Bƣớ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ế bằng cách: 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 (với bài này phải kéo toàn
bộ các trƣờng lên form).Lúc này cửa sổ thiết kế form có dạng:
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, đối tƣợng này có thể là
Textbox, Combobox hay đối tƣợng khác tuỳ thuộc vào kiểu dữ liệu của trƣờng
tƣơng ứng; và đối tƣợng Label đi kèm nhằm tạo nhãn chú thích cho trƣờng dữ
liệu.
Hình 4.105. Mơ tả thiết kế Form
Đến đây đã tạo xong form nhập dữ liệu đơn giản cho một bảng.
95
4.3.4 Sửa đổi thứ tự di chuyển
Để sửa đổi thứ tự di chuyển trên Form, Click chuột phải trên Form chọn
Tab Order
Hình 4.16. Thay đổ thứ tự di chuyển
Sau đó cầm chuột kéo điều chỉnh theo ý muốn của ngƣời thiết kế
4.4 Các đối tƣợng và các thuộc tính
4.4.1 Các đối tƣợng
Tất cả thông tin trên form đƣợc chứa trong những đối tƣợng gọi là đối
tƣợng(Control). Đối tƣợngcó thể dùng để thể hiện dữ liệu, thực hiện các hành
động hoặc thiết kế form đẹp mắt. 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.Trong ACCESS hệ thống định nghĩa một
số loại đối tƣợng nhƣ sau:
Đối tƣợng nhãn (Label)
.Tạo điều khiển chứa chuỗi kí tự làm nhãn chú
giải
Đối tƣợng hộp văn bản (Text box)
.Tạo điều khiển để hiển thị, nhập
hay hiệu chỉnh dữ liệu của một Field hoặc một biểu thức
Đối tƣợng nhóm lựa chọn (Option group)
bật tắt.
Đối tƣợngloại hộp Combo (Combo box)
xuống
96
.Tạo nhóm nút chọn hay nút
Tạo hộp danh sách trải
Đối tƣợngloại hộp danh sách (List Box)
. Tạo hộp danh sách
Đối tƣợng command button: Tạo nút lệnh
Đối tƣợng Image: Tạo điều khiển để hiển thị hình ảnh
Đối tƣợng Unbound Object Frame - Tạo khung chức đối tƣợng không ràng buộc.
Đối tƣợng Bound Object Frame - Tạo khung chứa đối tƣợng ràng buộc.
Đối tƣợng Page Break - Tạo điều khiển ngắt trang
Đối tƣợng Tab Control - Tạo điều khiển Phiếu (Tab)
Đối tƣợng Rectangle - Tạo khung viền chữ nhật
Khi tạo lập điều khiển, chúng ta thuờng xác định hình thức dữ liệu trình
bày trong chúng. Có những đối tƣợng lấy dữ liệu từ các trƣờng trong bảng hay
truy vấn, có đối tƣợng chỉ dùng vào mục đích trang trí, làm tiêu đề, có những
đối tƣợng lấy dữ liệu từ một biểu thức nào đó. Vì vậy ngƣời ta phân ra thành ba
nhóm đối tƣợng chính:
Đối tƣợng buộc ( Bound control)
Đối tƣợng khơng buộc ( Unbound control)
Đối tƣợng tính tốn ( Caculated control)
* Đối tƣợng bị buộc (bound), không buộc (unbound) và tính tốn đƣợc
(calculated).
Khi tạo một đối tƣợngtrong form thì phải xác định nó lấy dữ liệu từ
nguồn nào để thể hiện.
Ví dụ:
Tạo một đối tƣợng loại hộp văn bản (Text box) để hiển thị tên các mặt
hàng, chúng ta phải chỉ định cho đối tƣợng lấy dữ liệu trong trƣờng
TEN_HANG của bảng MAT_HANG. Hộp văn bản này gọi là bị buộc.
Đối tƣợngcũng có thể thể hiện những thơng tin khơng có trong CSDL
(Khơng bị buộc).
Ví dụ: Tạo tiêu đề cho form ...
Vậy đối tƣợng bị buộc (Bound Control) là đối tƣợng mà nguồn dữ liệu của
nó lấy từ một trƣờng trong bảng hoặc truy vấn . Trong form dùng đối
tƣợngbuộc vào các trƣờng để hiển thị nội dung hoặc cập nhật các trƣờng của
CSDL, các giá trị cập nhật có thể là: Văn bản, Date,Number, Yes/No, Picture,
chart trong đó dạng văn bản là phổ biến nhất.
97
Đối tƣợng không bị buộc (Unbound Control) là đối tƣợngkhông lấy dữ
liệu từ một nguồn nào cả là đối tƣợng khơng bị buộc. Dùng đối tƣợng khơng
buộc để trình bày thơng tin khơng có trong các bảng hay rút đƣợc từ truy vấn.
Đối tƣợng tính tốn (Calculated Control) là đối tƣợng mà nguồn dữ liệu
của nó khơng phải là một trƣờng mà là một biểu thức gọi là đối tƣợng tính
tốn (Calculated Control). Chúng ta qui định giá trị xuất hiện trong đối tƣợng
bằng cách lập biểu thức cho nó. Biểu thức này là nguồn dữ liệu của đối
tƣợng.Trong biểu thức có thể dùng các tốn tử (+, -,=...) với tên điều khiển.
Ví dụ: Tạo một đối tƣợngTHANHTIEN=SOLUONG*DONGIA
* Tạo đối tƣợng loại hộp văn bản ( text box)
Text box có thể là một đối tƣợng bị buộc, không buộc hoặc tính tốn.
- Tạo hộp văn bản bị buộc (Bound Text box).
Chúng ta buộc đối tƣợngText box vào một trƣờng bằng cách chỉ định điều
khiển đó lấy dữ liệu trên trƣờng nào. Chọn trƣờng để buộc vào đối tƣợngbằng
cách Click biểu tƣợng Field List để mở danh sách các trƣờng của bảng hay truy
vấn làm nền tảng cho form . Theo mặc định nhƣ vậy thì hệ thống sẽ tạo một đối
tƣợng loại Text box.
Một cách khác dùng hộp dụng cụ Toolbox để tạo đối tƣợngvà sau đó gõ
tên trƣờng muốn buộc vào hộp văn bản.
- Mở hộp danh sách trƣờng
Mở form trong chế độ Design (Tạo form trƣớc).
Tại cửa sổ Database, Chọn menu Create, chọn Form Design. Môi trƣờng
thiết kế form xuất hiện:
Hình 4.17. Mơ tả chọn trang Forms thiết kế
98
Chọn thực đơn Design / Ribbon Tool/Add Existing Fields.
- Tạo một Text Box bị buộc
Từ danh sách trƣờng chọn một hoặc nhiều trƣờng kéo và đƣa vào form .
- Tạo đối tƣợngdùng hộp công cụ
Click vào biểu tƣợng công cụ tuơng ứng với đối tƣợng muốn tạo.
Tạo đối tƣợng bị buộc bằng cách chọn một trƣờng trong danh sách trƣờng
(Field List) và kéo vào form .
Hoặc tạo đối tƣợng không buộc hay dùng để tính tốn bằng cách click vào
một vị trí trên form .
- Tạo đối tƣợng dùng để tính tốn
Nếu muốn trình bày kết quả của một phép toán trong form , khai báo
nguồn dữ liệu của đối tƣợng là một biểu thức. Sau này mỗi lần mở form ,
ACCESS tính tốn lại kết quả của vùng dữ liệu đƣợc cập nhật mới nhất từ các
bảng.
- Tạo đối tƣợng nhãn (Label Control)
Muốn trình bày một chuỗi ký tự trên form nhƣ để làm tiêu đề... chúng ta
dùng loại đối tƣợnggọi là đối tƣợng nhãn (label control). nhãn không thể hiện
dữ liệu của một trƣờng hay biểu thức nào , chúng luôn luôn là không bị buộc.
Click vào biểu tƣợng Label trong Toolbox Click vị trí muốn đặt nhãn trên
form - Thay đổi thuộc tính của đối tƣợng
Sau khi tạo form , biến đổi một số thuộc tính của đối tƣợng có thể hồn
thiện thêm về thiết kế và hình thức trình bày của số liệu.
Nhắp kép vào đối tƣợng .
Trong hộp lựa chọn trên đầu bảng thuộc tính, chọn một lớp thích hợp để
làm việc.
All Properties: Trình bày tất cả các thuộc tính của đối tƣợng
Data Properties: Ấn định các đặc tính thể hiện dữ liệu trong đối tƣợngnhƣ
giá trị mặc nhiên, định dạng số.
Even Properties: Qui định một tập lệnh (Macro) hay thủ tục (Procedure)..
Layout Properties: Định nghĩa các hình thức của đối tƣợngnhƣ cao, rộng.
Other Properties: Một số thuộc tính khác nhƣ tên đối tƣợng , thơng tin
mơ tả ở dịng trạng thái.
Click chọn một trong các thuộc tính của bảng để thực hiện.
99
4.4.2 Các thuộc tính trong Form
a. Các thuộc tính mặc định
Cửa sổ thuộc tính có các thành phần cơ bản sau:
Hình 4.18. Cửa sổ thuộc tính
Một số thuộc tính thường dùng:
- Record Source: Thiết lập nguồn dữ liệu cho form.
- Default view: Thiết lập dạng hiển thị dữ liệu của form.
- Record Selecter: Hiển thị mẫu lựa chọn bản ghi.
- Navigation Botton: Lựa chọn hiển thị (yes) hay không hiển thị (no) thanh
định vị bản ghi.
- Dividing line: Lựa chọn hiển thị (yes) hay không hiển thị (no) các đƣờng
kẻ phân cách trong form.
- Caption: Là thuộc tính tạo ra dịng chữ chú thích trên form. Dịng chữ này
phải đƣợc nhập trực tiếp từ bàn phím làm sao thật ngắn gọn, xúc tích để ngƣời
dùng có thể hiểu đƣợc bản chất cũng nhƣ ý nghĩa của việc bạn đang giải thích,
thƣờng để mơ tả tiêu đề cho các trƣờng dữ liệu.
-Height – Width: Thay đổi kích thƣớc chiều cao và chiều rộng của đối
tƣợng.
- Top – Left: Thay đổi vị trí của đối tƣợng trên form so với điểm (0,0) của
form.
- Font: Thay đổi kiểu font hiển thị của văn bản trên form.
- ForeColor: Thay đổi màu chữ.
- BackColor: Thay đổi màu nền.
100
Ví dụ:
Tạo form dùng làm mẫu nhập dữ liệu cho bảng CANBO trong cơ sở dữ liệu
“Quản lý nhân sự”.
Bƣớc 1. Tạo form mới ở chế độ Design View
Bƣớc 2: Thiết lập nguồn dữ liệu cho form: chọn tên bảng CANBO ở hộp
Record Source.
Bƣớc 3: Thiết lập trƣờng dữ liệu
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 để nhập
và hiển thị dữ liệu rất tốt. Trong trƣờng hợp này ta dùng để đƣa những trƣờng
cần nhập dữ liệu từ bảng CANBO 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 Design / Ribbon Tool/Add Existing Fields.
Bƣớ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ế bằng cách: 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 (với bài này phải kéo toàn bộ các
trƣờng lê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, đối tƣợng này có thể là Textbox,
Combobox hay đối tƣợng khác tuỳ thuộc vào kiểu dữ liệu của trƣờng tƣơng ứng;
và đối tƣợng Label đi kèm nhằm tạo nhãn chú thích cho trƣờng dữ liệu.
b.Các thuộc tính bổ sung
* Thiết lập một số thuộc tính bổ sung
- Các thuộc tính hỗ trợ nhập liệu
Thuộc tính Default value: Gán giá trị mặc định vào nội dung trình bày
trong đối tƣợng .
Thuộc tính ValidationRule và ValidationRule Text: Kiểm tra tính hợp lệ
khi cho một đối tƣợng và thơng báo lỗi nếu dữ liệu khơng hợp lệ
- Các thuộc tính gióng lề
Thuộc tính General: Gióng hàng văn bản theo lề trái, dữ liệu số và ngày
tháng theo lề phải.
Thuộc tính Left: Gióng hàng văn bản theo lề trái.
Thuộc tính Center: Xác lập hàng văn bản ở chính giữa. Thuộc tính Center:
Gióng hàng văn bản theo lề phải.
101
- Các thuộc tính màu sắc
Thuộc tính Backcolor: Thiết lập màu nền cho đối tƣợnghay cho form
Thuộc tính Forecolor: Thiết lập màu cho hàng chữ trong đối tƣợng .
Thuộc tính Bodercolor: Thiết lập màu cho khung bao quanh trong đối
tƣợng
- Các thuộc tính khung bao
Thuộc tính BoderStyle:Thiết lập loại khung cho đối tƣợng
Thuộc tính BoderWidth: Thiết lập độ dày hay đậm của khung bao.
Thuộc tính BoderColor: Thiết lập màu của khung bao.
Click biểu tƣợng List box hoặc Combo box trong hộp công cụ.
Tạo đối tƣợngbuộc bằng cách click biểu tƣợng Field list trên thanh công
cụ để mở danh sách trƣờng làm nền cho form . Chọn một trƣờng trong danh
sách kéo vào form, hoặc tạo đối tƣợngkhông buộc bằng cách click form nơi
muốn đặt điều khiển.
* Lập các thuộc tính của đối tƣợng để định nghĩa các hàng dùng làm chọn
lựa trong danh sách.
Muốn danh sách thể
hiện
Các hàng từ một bảng
Lập thuộc tính Row Lập Row Source thành
Source Type thành
Table/Query (Default) Tên của bảng hay truy
hay truy vấn
Các hàng lấy từ lệnh
vấn đó
Table/Query (Default) Một câu lệnh SQL
Select của SQL
Một danh sách với các
Value List
giá trị do ngƣời dùng tự đặt
Tên các trƣờng trong một
phân cách nhau bởi dấu
chấm phẩy
Field List
bảng hoặc truy vấn
Các giá trị định nghĩa bởi một
hàm trong Access Basic
Danh sách các giá trị đó
Tên của bảng hoặc truy
vấn đó
Tên hàm xây dựng
102
Để trống
Hình 4. 19. Mơ tả các thuộc tính của Form
- Định nghĩa các hàng trong danh sách
Định nghĩa nguồn dữ liệu để hình thành các hàng dùng làm trong danh
sách lựa chọn trong List box và Combo box bằng cách lập thuộc tính thích
hợp cho RowSource Type và RowSource của đối tƣợng , hai thuộc tính này
phối hợp với nhau để tạo nên các hàng trong danh sách.
Thuộc tính RowSource Type cho biết danh sách sẽ hình thành từ nguồn
dữ liệu loại nào, thuộc tính RowSource là thuộc tính xác định nguồn dữ liệu của
danh sách.
- Danh sách lấy dữ liệu từ bảng hay truy vấn
Có thể tạo List box hay Combo box lấy dữ liệu từ một hoặc nhiều
trƣờng trong bảng ( hoặc truy vấn) để lập thành danh sách chọn lựa cho đối
tƣợng . Thực hiện điều này bằng cách đặt thuộc tính RowSource Type thành
Table/Query và RowSource thành tên bảng hay tên truy vấn có chứa dữ liệu để
lập thành danh sách đó.
- Tạo danh sách nhiều cột
Có thể tạo danh sách gồm hai hay nhiều cột để có thêm thơng tin lựa
chọn. Xác định số cột bằng cách lập thuộc tính Columcount và ColumnWidth
cho đối tƣợng. Thuộc tính columcount quy định số cột và nếu trong RowSource
là tên một bảng hay truy vấn thì các trƣờng đầu tiên tƣơng ứng số cột của bảng
hay truy vấn đó (tính từ trái sang phải) sẽ đƣợc đƣa vào danh sách. Thuộc tính
columnwidth quy định bề rộng mỗi cột tính theo inch hay cm.
103
- Sử dụng danh sách giá trị
Trƣờng hợp đối tƣợng chỉ có một số nhỏ chọn lựa và các giá trị này
khơng thay đổi, có thể dùng phƣơng pháp đơn giản là danh sách giá trị. Danh
sách này chúng ta tự lập bằng cách đƣa các giá trị dùng làm chọn lựa vào
thuộc tính RowSource của đối tƣợng . Sử dụng dấu chấm phẩy để phân cách các
mục chọn lựa của danh sách.
4.5 Tạo các Form con (SUB FORM)
4.5.1 Giới thiệu Sub from
Form con hay còn gọi là Form phụ là phƣơng pháp để đƣa thông tin từ
nhiều bảng vào một Form. Form con có nghĩa là một Form đƣợc lồng trong
Form khác. Trong Access Form chính gọi là Main form, Form nằm trong Main
form gọi là Form con (Sub form). Khi dùng Form con chúng ta dễ nhận thấy mối
quan hệ giữa các bản ghi của hai hay nhiều bảng.
Form con đặc biệt hữu hiệu khi dùng để hiển thị dữ liệu từ nhiều bảng hay
truy vấn có quan hệ một-nhiều với nhau. Form chính đại diễn cho bên một, Form
phụ đại diện cho bên nhiều.
Khi nào dùng Main Form / SubForm:
Sử dụng Main Form - SubForm khi muốn dùng một Bảng / Query làm
nguồn dữ liệu cho MainForm và một Bảng / Query khác để trình bày mối quan
hệ giữa các Record của các Bảng / Query này. Thực tế, Main Form – SubForm
đƣợc dùng thƣờng xuyên khi trình bày dữ liệu trên Form.
Khi dùng Main Form - SubForm cần chú ý các vấn đề sau:
- Có các Bảng/Query có quan hệ theo kiểu một - nhiều : Main Form sẽ sử
dụng Bảng/Query bên một và SubForm sử dụng Bảng/Query bên nhiều.
Kiểm tra xem các Bảng/Query sử dụng có các Field quan hệ hay khơng.
Access sẽ dùng Field đối chiếu (Matching Field hay Linking Field) các
Bảng/Query để xác định những Record đƣợc hiển thị trong Main Form và
SubForm.
- Nếu sử dụng Field đối chiếu không phải là Primary key hay Foreign key
thì phải lập chỉ mục cho Field này.
4.5.2 Phân loại SubForm
Khi tạo Form con chúng ta có thể thiết kế nó thành dạng bảng, hoặc dạng
Form, hoặc cả hai dạng trên.
Form dạng bảng: Là loại dễ tạo nhất và có thể sử dụng nhƣ bất kỳ bảng
nào khác nhƣ sắp xếp....
104
Form con dạng Form: Cho chúng ta thực sự linh hoạt và mềm dẻo khi thiết
kế hơn.
4.5.3 Thiết kế SubForm
a. Thiết kế Form con
Thông thƣờng chúng ta dùng bảng hay truy vấn làm nguồn dữ liệu cho
Form chính, một bảng hay truy vấn khác làm nguồn dữ liệu cho Form phụ. Nếu
dữ liệu trong Form chính và Form phụ có liên quan với nhau, chúng ta cần đánh
giá một số vấn đề sau:
Các bảng hoặc truy vấn có quan hệ một-nhiều với nhau không? Nếu dùng
Form phụ để thể hiện quan hệ một-nhiều, chúng ta nên dùng bảng bên một đối
với bảng chính, bảng bên nhiều đối với bảng phụ.
Các bảng hoặc truy vấn làm nguồn dữ liệu cho Form chính/phụ có các
trƣờng liên kết khơng? Access dùng trƣờng kết nối để giới hạn số lƣợng bản ghi
thể hiện trong Form phụ.
Cách tạo Form chính/phụ:
Thiết kế hai Form riêng biệt, sau đó kéo Form phụ vào Form chính. Thiết
kế Form chính
Tạo Form chính, dành chỗ trên Form này để chứa Form phụ.
Lƣu và đóng Form chính.
Thiết kế Form phụ:
Có thể thiết kế Form phụ để chỉ thể hiện dữ liệu dƣới dạng bảng, Form này
có cả hai khả năng trên.
Tạo Form mới, lập hai thuộc tính ViewAllowed và Default View của Form
tuỳ theo yêu cầu sử dụng nhƣ sau:
Form phụ chỉ trình bày dưới dạng bảng: Đặt các trƣờng trên Form theo thứ
tự chúng ta muốn chúng xuất hiện trong bảng. Lập cả hai thuộc tính
ViewAllowed và
Default View thành Datasheet.
Form phụ chỉ trình bày dữ liệu dưới dạng Form: Sắp đặt các điều khiển
nhƣ trên. Lập thuộc tính ViewAllowed thành Form và Default View thành Single
form hay Continuous form.
Đưa Form phụ vào Form chính
Mở Form chính ở chế độ Design
105
Chuyển sang cửa sổ Database, nhấn F11
Kéo Form phụ tử cửa sổ Database và đặt vào một vị trí trên Form chính.
Di chuyển Form phụ đến vị trí khác, thay đổi nội dung nhãn hoặc kích
thƣớc nếu cần. Chuyển sang chế độ Form View để xem kết quả.
Hình 4.20. Ví dụ Form con
b. Liên kết Form chính và Form con
Trong nhiều trƣờng hợp, khi nhúng SubForm vào MainForm thì Access sẽ
thiết lập sự liên kết giữa chúng theo các điều kiện sau:
- Main Form và SubForm đều dùng dữ liệu nguồn là Bảng và quan hệ giữa
hai Bảng này đã đƣợc thiết lập.
- Main Form dùng dữ liệu nguồn từ Bảng có là khóa chính (Primary key)
và SubForm dùng dữ liệu nguồn từ Bảng cũng chứa Field cùng tên với Field
khóa chính của bảng cơ sở của Main Form trên làm khóa cơ bản (có cùng kiểu
dữ liệu hay tƣơng thích).
- Access dùng 2 Field có tên giống nhau của 2 Bảng làm liên kết. Trƣờng
hợp sự liên kết không thiết lập đƣợc hay muốn quy định Field khác làm mối liên
kết thì phải quy định lại tại thuộc tính LinkMasterFields và LinkChildFields của
SubForm.
- Click chọn SubForm và mở cửa sổ thuộc tính
- Thuộc tính LinkChildFields: chỉ định Field liên kết của SubForm. Nếu
nhiều Field thì cách nhau bởi dấu chấm phẩy.
- Thuộc tính LinkMasterFields: chỉ định Field liên kết của Main Form .
4.5.4 Sử dụng Sub-form trong form nhập dữ liệu
Để sử dụng kỹ thuật sub form trong nhập dữ liệu, ta thực hiện nhƣ sau:
+ Bƣớc 1: Tạo Sub form
106
+ Bƣớc 2: Tạo Main form
+ Bƣớc 3: Thiết lập mối liên hệ giữa Main form và Sub form ở thuộc tính
Link Child Field và Link Master Field. Hai thuộc tính này chứa tên trƣờng của
khố liên hệ giữa bảng dữ liệu trong Sub form và bảng dữ liệu trong Main form.
Chú ý: Thuộc tính Default: của Sub form là DataSheet, cịn của Main form
là Single form.
Ví dụ: Thiết kế form nhập thơng tin vào hố đơn bán hàng nhƣ sau:
Hình 4.21. Ví dụ Thiết kế form nhập thơng tin
Với yêu cầu này, chúng ta cần thực hiện:
-Tạo subform cho phép hiển thị và nhập các thông tin về hàng bán (2)
-Tạo một mainform để nhập thơng tin về hố đơn bán hàng (1)
-Mối liên kết giữa mainform với subform thông qua trƣờng hoadonID. Các
bƣớc thực hiện:
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:
Hình 4.22. Thiết lập nguồn dữ liệu cho form con
107
- Tiếp theo đóng màn hình thiết kế query.
- Sử 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.
Bƣớc 2: Tạo form mẹ
- Tạo mới mới form ở chế độ Design View
- Thiết lập nguồn dữ liệu làm việc cho form mẹ ở thuộc tính Record Source:
Hình 4.23. Thiết lập nguồn dữ liệu cho Form mẹ
- Sử 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: hoadonID, khacID, ngayban, diachi, email;
- Đƣa lên Main form đối tƣợng Subform\Subreport, sau đó thực hiện chọn
tên Sub form đã tạo (frmHangban).
4.5.5 Sử dụng Sub-form trong form lọc dữ liệu
Để sử dụng kỹ thuật sub form trong lọc dữ liệu, ta thực hiện nhƣ sau:
Bƣớc 1: Tạo Sub form dùng để hiển thị dữ liệu.
Bƣớc 2: Tạo Main form dùng để lựa chọn giá trị thực hiện lọc.
Bƣớc 3: Thiết lập mối liên hệ giữa Main form và Sub form ở thuộc tính
Link Child Field và Link Master Field. Hai thuộc tính này chứa tên trƣờng của
khố liên hệ giữa bảng dữ liệu trong Sub form và bảng dữ liệu trong Main form.
Chú ý: Thuộc tính Default: của Sub form là DataSheet, còn của Main form là
Single form.
108
Ví dụ: Thiết kế form lọc danh sách cán bộ theo phịng ban:
Hình 4.24. Thiết kế form lọc danh sách cán bộ theo phòng ban
Với yêu cầu này, cần thực hiện:
- Tạo một form con hiển thị các thông tin về danh sách cán bộ.
- Tạo một form mẹ cho phép chọn tên phòng ban.
- Thiết lập tham số cho form con sao cho mỗi khi chọn một phòng ban trên
form mẹ, danh sách cán bộ ở phịng ban đó sẽ tự động hiển thị ra form con.
Bƣớc 1: Tạo form con
- Tạo mới mới form ở chế độ Design View
- 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 ở tuộc tính Record
Source:
Hình 4.25. Thiết lập nguồn dữ liệu làm việc cho form con
- Tại trƣờng phongbanid, ghi điều kiện lọc là: [cbopb], đóng query.
- Sử 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: hoten, gioitinh, ngaysinh, tenchucvu;
- Ghi lại form với một tên gọi (ví dụ: frmDscb_subform) và đóng lại.
109
Bƣớc 2: Tạo form mẹ
- Tạo mới mới Main form ở chế độ Design View.
- Tạo hộp Combo box chứa danh sách các phịng ban có thể chọn trên form
mẹ. Thực hiện tạo bằng công cụ wizard, nguồn dữ liệu chọn từ danh sách phịng
ban.
Thiết lập thuộc tính Name cho Combo box trùng tên với tham số đã thiết
lập ở form con là cbopb.
- Sử dụng đối tƣợng Subform\Subreport trên thanh công cụ ToolBox để
đƣa form con lên form mẹ.
4.5.6 Tạo Form có hai cấp SUBFORM
a. Khái niệm
Thơng thƣờng, Main Form / SubForm biểu thị mối quan hệ giữa hai dữ liệu
nguồn (quan hệ Một - Nhiều). SubForm loại này là SubForm cấp 1.
Một số trƣờng hợp cần thiết kế Form biểu thị mối Quan hệ 2 cấp giữa 3 dữ
liệu cơ sở.
Dữ liệu của Main Form quan hệ một - nhiều với dữ liệu của SubForm cấp1
Dữ liệu của SubForm cấp 1 có quan hệ với Dữ liệu của SubForm cấp 2.
Ví dụ: Thiết kế Form biểu thị các mối quan hệ nhƣ sau
Main Form hiển thị Cơng trình (Bảng CONGTRINH) và SubForm cấp 1
hiển thị phiếu xuất vật tƣ cho cơng trình chỉ định ở Main Form (Bảng
XUAT_VT). Field quan hệ là MACT (mã cơng trình).
SubForm cấp 2 hiển thị các chi tiết của phiếu xuất vật tƣ (Bảng
CHITIET_XUAT) liên quan đến phiếu xuất có Mã số phiếu xuất chỉ định tại
SubForm cấp1. Field quan hệ là SOPHIEU.
b.Các bƣớc thiết kế
Bƣớc 1: Tạo và ghi lƣu Main Form và SubForm cấp 1
- Tạo Main Form và SubForm cấp 1 nhƣ quy trình đã trình bày trên.
- Ví dụ: Tạo Main Form tên MAIN - CONGTRINH chứa dữ liệu của Bảng
CONGTRINH và SubForm cấp 1 tên SUB1 – XUAT_VT chứa dữ liệu của Bảng
XUAT_VT .
Bƣớc 2: Tạo SubForm cấp 2
- Tạo SubForm cấp 2 riêng lẻ nhƣ tạo một Form thông thƣờng
110
- Ví dụ: Tạo Form tên SUB2 – CHITIET_XUAT chứa dữ liệu từ Bảng
CHITIET_XUAT.
Bƣớc 3: Nhúng SubForm cấp 2 vào Main/SubForm
- Mở Form MAIN - CONGTRINH trong cửa sổ thiết kế (SubForm cấp 1 là
SUB1 – XUAT_VT cũng đƣợc mở theo và hiệu chỉnh cho có chỗ trống để chứa
SubForm cấp 2).
- Nhấn phím F11 để trở về cửa sổ Database.
- Chọn và kéo Form hóa đơn thả vào Main Form tại vị trí dự kiến.
Bƣớc 4: Thiết lập một Control làm trung gian liên kết giữa 2 SubForm
- Dùng ToolBox tạo một UnBound Control (TextBox)
- Bỏ nhãn của Control này (Label do Access đƣa vào khi tạo TextBox).
- Đổi thuộc tính Name của Control (đang là TextBox#) thành Field quan hệ
của SubForm 1 với SubForm 2.
Theo ví dụ là SOPHIEU
- Nhập công thức vào Control trung gian theo cú pháp sau:
[Tên SubForm 1].Form![Tên Field liên kết của SubForm 1] Theo ví dụ là :
[SUB1 – XUAT_VT].Form![SOPHIEU]
- Đặt thuộc tính VISIBLE của Control là NO
Hình 4. 26. Tạo Subform
Bƣớc 5 : Thiết lập liên kết giữa 2 SubForm
- Chọn SubForm 2 - mở cửa sổ Properties.
- Đặt thuộc tính LinkMasterField là tên của Control trung gian Theo ví dụ
là SOPHIEU
- Đặt thuộc tính LinkChildField là tên Field liên kết với SubForm cấp 1
111