- 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.
103 trang |
Chia sẻ: lylyngoc | Lượt xem: 1766 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng cơ sở dữ liệu - Chương IV: Form, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BÀ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.
Form 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
của form.
Form footer: xuất hiện ở cuối form.
Header
Detail
Footer
Mọ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
II. 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ẫu
tin.
- Dạng Tabular: dữ liệu thể hiện trên nhiều
cộ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.
Dạ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.
II. 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
nguồn(form/View).
- Chế độ DataSheet View: giống như Form
View nhưng không hiển thị được Form
Header, Form Footer và hình ảnh đối với
kiểu dữ liệu OLE
Chế độ Design view
Chế độ form view
Data sheet view
III. 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
12
3
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 yêu cầu
bài toán.
Toà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
(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.
(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;
Bướ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)
Chọn tên đối
tượng
Thiế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
Chọ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
Tạo query mới làm nguồn cho bảng
Bướ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.
Cửa sổ field list
Hiển thị thông tin của bảng hoặc truy vấn
vừa được tạo
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ế.
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.
Ví dụ: tạo form quản lý thông tin cán bộ
Nguồn dữ liệu lấy từ bảng HSLG như sau:
Drag các trường
muốn hiển thị
Kết quả
Thực thi
Mộ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 Form
Continuous Form
Datasheet
+ Picture: Hình ảnh trên toàn form.
Đường dẫn
tới hình
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
nguồn dữ liệu.
+ Allow Filters: Cho phép lọc dữ liệu hiện
trên form.
+ Allow Deletions: Cho phép xóa các bản
ghi trên form.
+ 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
Các thuộc tính khác:
+ Popup: Form được mở trên các form
khác.
+ Modal: Không thể kích hoạt bất cứ vị trí
nào ngoài phạm vi form.
+ Menu Bar: menu hiện khi mở form.
+ Shortcut Menu: Menu hiện khi nhấn
chuột phải.
4.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.
4.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ả.
4.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.
4.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 .
4.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 Button
Toggle Button
Check box
Xử lý dữ liệu kiểu Yes/No hoặc để tạo
thành một tùy chọn Option Group.
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
Subform/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
UnBound Object
Frame
Hiển thị hình ảnh hay biểu đồ
hay đối tượng kiểu OLE
Line Đường thẳng
Rectangle Hình chữ nhật
Page Break Ngắt trang
Command Button Nút lệnh dùng để thi hành
Macro
4.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
Validation 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.
4.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).
TextBox không bị buộc
Nế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.
Nế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
Ví dụ về textbox
Điều khiển không bị buộc.
Điều khiển bị buộc.
4.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
4.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.
Unbound 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
4.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 được
gắn với trường kiểu yes/no. Tùy yêu cầu
thực tế mà chọn kiểu nút cho phù hợp.
- - Nếu điều khiển không bị buộc: Quan
tâm đến thuộc tính value-1/0 để lập trình
xử lý sự kiện.
4.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.
4.5.6. Hộp liệt kê (List Box) và Combo
(Combo box)
- Combo box: thường được dùng nhiều
trên màn hình nhập dữ liệu, tìm kiếm.
- - List box: thường được dùng trong màn
hình hiển thị, tra cứu.
- Mở thuộc tính của List box/Combo box,
xác định các thuộc tính sau:
- 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ỳ.
Ví dụ: tạo Combo box chứa tên ĐV
Chọn combo Box từ ToolBox vẽ vào Form.
R_Click vào Combo Box chọn properties
sau đó chọn như hình
Ví 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
4.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).
VÍ DỤ: Thêm các nút lệnh NEXT,
PREVIOUS, FIRST, END, NEW RECORD
Chọn Control Wizards
Chọn Commond Button, làm như sau:
Chọn
Control
Wizards
Chọn
Commond
Button
Record Nevigation
Find Next
Find Record
Go to First record
Go to last record
Go to next record
Go to previous record
Record Operations
Add new record
Delete record
Duplicate record
Print record
Save record
Undo record
Kết quả
4.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
+ Thêm trang
+ Bớt trang
+ Đổi thứ tự trang
+ Xác định thuộc tính cho tab và cho từng
trang
4.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
4.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:
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.
4.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)
Nhấp lên đây
để tạo
nguồn dữ
liệu cho form
Một màn hình thiết kế query xuất hiện.
Hãy thiết lập query này như sau:
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, chuẩn bị tạo
form mẹ.
Form sau khi đưa các trường cần thiết vào
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 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
Một màn hình thiết kế query xuất hiện.
Hãy thiết lập query này như sau:
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;
Sử dụng đối tượng Subform\Subreport
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ột
hộp thoại xuất hiện;
Chọn vào đây
Chọn tên form con
Nhấp vào đây để kết thúc
Ghi 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:
Đ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 “;”
Tê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
4.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:
Qui 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.
Cách giải quyết
Bước 1: Xây dựng Form con
Tạo mới form ở chế độ Design view;
Thiết lập thuộc tính Record Source cho
form là một Total Query như sau:
Thiế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:
Đóng thiết kế form con lại và ghi ten là
frm_formcon.
Bước 2: Xây dựng form mẹ
Tạo mới form ở chế độ Design view;
Đưa hộp Combobox từ thành công cụ
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.
Sử 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.
Cuối cùng, giao diện thiết kế form mẹ như
sau:
Bướ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 "
Toàn bộ mã lệnh cho bài toán trên như sau:
Dim db As DAO.Database
Private Sub Form_Load()
Set db = CurrentDb
End Sub
Private Sub Combo0_Click()
Dim rs As DAO.Recordset
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
ĐiỀN GIÁ TRỊ VÀO PROPERTIES
Hiển thị bảng properties.
Tìm đến Subform/SubReport.
Điền tên điều khiển chứa điều kiện lọc vào
ô: Link Master Fields
Điền tên trường sẽ liên kết đến vào ô: Link
Child Fields
Tên
subform
Trýờng dữ
liệu trên
Subform
Điều khiển
trên
Mainforrm
Mộ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
Davg
Tính giá trị trung bình của một trường theo
điều kiện cho trước.
Ví dụ: tính điểm trung bình thi lần 1 của
sinh viên SV001.
=Davg(“[ketqua1]”, “dangky”,
“[Mssv]=‘SV001’”)
Tính điểm trung bình lần 1 của tất cả SV
=Davg(“[ketqua1]”, “dangky”)
Dcount
Đếm số mẫu tin trong 1 bảng theo ĐK cho
trướ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”).
Đếm số môn học mà SV sv001 đăng ký.
=Dcount(“*”, “dangky”, “[mssv]=‘sv001’”).
Dlookup
Tìm giá trị của một trường theo điều kiện
cho trước.
Ví dụ: tìm kiếm kết quả lần 1 của môn học
MH001.
=Dlookup(“[ketqua1]”, “dangky”,
“[msmh]=‘MH001’”).
Dmin, 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:
=DLookUp("[ketqua1]",“dangky","[ms
mh]= ‘ " & [Combo0].[Value] & “ ‘ ")
Một số ví dụ
Tạo form gồm 1 Combo Box chứa MADV.
Khi chọn một MaDV sẽ xuất hiện tên ĐƠN
VỊ, LUONGTB, LUONG CN, LUONGTN,
SONV, TONGLUONG như sau.
Tại combo madv đưa madv vào rowsource
Tại text box tên đv gõ vào như sau:
=DloopUp(“[TEN]”, “cauc1”, “[Ma]=‘” &
combo0.value & “’”).
Textbox luongtb, luong cn, luong tn,
tongluong?