Làm cách nào để tạo form có dạng main-sub?

Tìm hiểu về các Form, tạo các biểu mẫu khác nhau, kết hợp sử dụng Sub Form để tạo ra sự liên kết dữ liệu phức tạp

Giới thiệu về Form [Biểu mẫu] trong Access

Form là thành phần giao diện [hộp thoại, cửa sổ] để cập nhật, chỉnh sửa, xem thông tin dữ liệu ... Form thường được cung cấp các nguồn dữ liệu là các bảng [Table], các Query để hoạt động.Bạn đang xem: Cách tạo main sub form trong access 2010

Để tạo Form, nhấn Create trên Ribbon. Có thể chọn: Form - để tạo Form với nguồn cấp từ bảng đang chọn Form Design - để tạo Form ở chế độ Design View. Dữ liệu tự động dàng buộc với Form nếu có chọn Table hay Query Form Wizard - hỗ trợ từng bước để tạo Form Blank Form - tạo Form trống, chưa có nguồn cấp dữ liệu nào Multiple Items - dạng Form hiện thị được nhiều Record một lúc


Tạo Single Form

Single Form hiện thị một record tại một thời điểm. Từ Navigation Panel bấm chọn Table/Query cần làm nguồn cấp dữ liệu cho Form. Sau đó chọn menu Create, chọn Form. Form mới tạo ra, hiện thị ở dạng Layout View.

Bạn đang xem: Cách tạo main sub form trong access 2010

Có thể chọn chế độ Design View 1 2, Ở chế độ này nhấn phải chuột vào khu vực Form chọn Form Properties xuất hiện Property Sheet 3 để chỉnh một số thiết lập cơ bản như:



Form chia làm ba phần, gồm

Form header - phần đầu Form, thường trình bày các tiêu đề Detail - phần chính chứa nội dung Form footer - phần cuối form

Tại thẻ Format 4

Caption đặt tiêu đề cho Form Width thay đổi chiều rộng Record Selectors bỏ ký hiệu chọn Record

Tại thẻ Data 5

Record Source cho biết nguồn dữ liệu [Table/Query] Allow Addition Chon phép thêm record mới hay không Allow Deletions Chon phép xóa record hay không Allow Edits Chon phép sửa record hay không

Tại thẻ Other 6

Pop Up Nếu chọn Yes thì là hiện thị ở dạng hộp thoại nổi lên Modal Nếu YES thì cho phép chuyển hộp thoại/cửa sổ khác khi Form đang mở

Khi bấm chọn các điều khiển [Control - các phần tử trong Form] thì cũng có Property Sheet để làm việc với điều khiển đó. Từ đó biết được thông tin về loại control, định dạng hiện thị [màu sắc, chữ], dữ liệu liên kết ...



Các Control phát sinh tự động thường bố trị trong một Layout, để loại bỏ nó thì chọn các Control, trên Ribbon chọn Arrange > Remove Layout

Đưa nút lệnh Button vào Form

Chọn Button trong các Controls, đưa chuột vẽ nó vào Form. Cửa số Wizard xuất hiện, chọn hành động muốn thực hiện khi bấm vào nút bấm. Ví dụ, hành động là xóa Record : khi Wizard gợi ý chọn Categories là Record Operations, Action chọn là Delete Record, Tiếp theo nhập tiêu đề nút bấm ở vị trí Text.

Ví dụ mở Form



Tạo Form dạng Datasheet

Form dạng Datasheet, hiện thị các ô lưới để nhập dữ liệu tương tự như bảng tính Excel. Nguồn cấp dữ liệu có thể từ các Query hay các Table. Ví dụ tạo một Query đặt tên là CacLop để làm nguồn dữ liệu như sau:

Query này đơn giản liệt kê lại các trường dữ liệu của bảng LOP, tuy nhiên tạo ra Query sau này để có thể chỉnh sửa lọc dữ liệu. Nó có thể làm Form con trong một Form cha với dữ liệu lọc liên quan.

Các Query đó, rồi bấm tạo Form, chọn mục DataSheet, lưu lại và đặt tên Form là CacLop_Sub

Có thể chuyển sang chế độ Design View, tại đây có thể chỉnh tiêu đề cột 1, đặt các thuộc tính cho Control. Kết quả mở Form có dạng 2



Thực hành sử dụng Sub Form

Sub Form là một Form con nằm trong Form cha, nó có liên hệ dữ liệu với Record đang biên tập ở Form cha. Ví dụ, Form cha soạn thảo Record về ngành học, thì đồng thời nó hiện thị một Form con là danh sách các lớp học thuộc ngành học đó.

Tạo một Blank Form đặt tên là FormNganhLop, sau đó đặt các thuộc tính:

Caption: Các ngành và lớp Record Selector: No Record Source: Chọn bảng NGANH Bật hiện thị Form Header, đặt vào đó một Label, nhập vào dòng chữ CÁC NGÀNH VÀ LỚP, sau đó định dạng sao cho dễ đọc.

Bấm vào nút bấm Add Existing Fields trên Ribbon [Design], kéo các trường hiện thị ở Field List bên phải vào Form gồm các trường NGANHID, TENNGANH, MA, Sonam.

Xem thêm: Wacc Là Gì? Cách Tính Chi Phí Sử Dụng Vốn C12 Chi Phi Su Dung Von

Trong đó NGANHID thiết lập Visible là NO

Thêm vào Form các nút bấm Button, thiết lập là các Command Button với Category/Action thiết lập theo Wizard gồm các nút bấm gồm:

Record Navigation > Go to Next Record Record Navigation > Go to Previews Record Record Operations > Delete Record Record Operations > Save Record Record Operations > Add New Record

Tiến hành các bước để đưa Form có sẵn là CacLop_Sub, sẽ chỉnh sửa để ở mỗi Record chính hiện thị danh sách các lớp theo ngành.

Kéo CacLop_Sub vào Form chính, chọn nó 1. Sau đó thiết lập liên kết với Form cha bằng trường liên hệ tại 2, gồm Link Master FieldsLink Child Fields, đó là hai trường liên hệ - NGANHID trong Form chả và NGANHID trong Form con.


Liên kết Control trong Form

Một Control trong Form có thể lấy giá trị của nó viết trong các truy vấn bằng mẫu !!

Ví dụ từng bước thiết kế ra Form phức tạp để hiện thị danh sách học sinh của lớp được chọn. Có một ComboBox để chọn Khóa, khi một khóa được chọn thì danh sách các lớp thuộc khóa đó được liệt kê trong một List Box, khi có chọn lớp trong List Box thì hiện thị danh sách lớp trong một Sub-Form ...

Tạo một Blank Form, đặt tên là FormHocSinhDS, kéo vào đó một ComboBox đặt tên là Khoa, thiết lập dữ liệu cho nó như sau:

Row Source Type : Table/Query Row Source: Bấm vào ... để xây dựng Query dữ liệu cho nó.

SELECT NIENKHOA.KHOAID, NIENKHOA.TenKhoa FROM NIENKHOA; Bound Column: 1 Default Value: điền giá trị mặc định khi mở Form [ví dụ 4] Column Count: 2 Colunm Widths: 0cm;2.54cm
Tiếp tục đặt vào một List Box, đặt tên Lop, List Box này là danh sách các lớp thuộc Khóa chọn, có các thiết lập như sau:

Row Source Type : Table/Query Row Source: Bấm vào ... để xây dựng Query dữ liệu cho nó.

SELECT LOP.LOPID, LOP.NIENKHOAID, TenCacLop.TENDAYDUFROM TenCacLop INNER JOIN LOP ON TenCacLop.LOPID = LOP.LOPIDWHERE [[[LOP.NIENKHOAID]=!!]]; Query trên đã tham chiếu dữ liệu ở đoạn =!! Bound Column: 1 Column Count: 3 Colunm Widths: 0cm;0cm;2.54cm Lúc này nếu chạy lần đầu thì nó sẽ hiện thị đúng danh sách lớp tương ứng với Combo Box Khoa, tuy nhiên khi Form đang mở thì thay đổi Khoa nó chưa cập nhật theo. Để khắc phục:

Bắt sự kiện khi Combo Box thay đổi dữ liệu, tại thuộc tính On Change, bấm vào ... để sinh hàm VBA khi Combo Box đổi giá trị. Trong thủ tục bắt sự kiện này, chỉ cần viết dòng code là yêu cầu Lop nạp lại dữ liệu Me!.Requery, nội dung đầy đủ như sau:

Private Sub Khoa_Change[] Me!.RequeryEnd Sub Khi Khóa được chọn thì Lớp theo khóa hiện thị


Sub Form danh sách học sinh theo lớp

Tạo một Sub Form danh sách học sinh dạng DataSheet, với nguồn dữ liệu bảng học sinh, đặt tên là HocSinhLop

Ở phần Footer có thêm vào một TextBox đặt tên là sohocsinh, với thuộc tính Control Source là =Count[] để cho biết tổng học sinh trong danh sách.

Chuyển sang chế đố Datasheet View, chỉ hiện thị các cột như hình [các cột khác ẩn đi], trong đó cột Tên được thiết lập sắp xếp tăng dần.


Quay trở lại FormHocSinhDS, kéo HocSinhLop vào - đặt tên HOCSINH, thiết lập thuộc tính để liên kết với LOP

Link Master Fields : Lop Link Child Fields : LOPID

Kết quả chạy sẽ như sau:


Tiếp theo thực hiện tác vụ, nếu bấm kép vào Họ của một học sinh nào đó, thì sẽ hiện thị hộp thoạt soạn thảo chi tiết cho học sinh đó.

Chọn nguồn cấp là bảng HocSinh, bấm tạo Form đặt tên là HocSinhChiTiet như sau:


Quay trở lại chế độ Design View của HocSinhLop, tại Ho bắt sự kiện On Dbl Click, với nội dung VBA như sau:

Private Sub Ho_DblClick[Cancel As Integer] DoCmd.OpenForm "HocSinhChitet", , , "HOCSINHID = " & Me!.ValueEnd Sub "Mở Form HocSinhChitet, lọc HOCSINHID = Me!"Me! là giá trị hiện tại trên FormHocSinhDS

BÀI 01:[2Tiết]PTTK CSDL& MS-CCESSBÀI 02:[4Tiết] TẠO CSDL,TABLE, &RELATIONSHIPBÀI 03:[2Tiết] KHÁI QUÁT QUERYBÀI 05: [6Tiết]QUERY CAO CẤPBÀI 06:[2 Tiết] FORM THIẾT KẾ VỚI WIZARDBÀI 07:[6Tiết] FORM THIẾT KẾ DESIGN VIEWBÀI 08:[6Tiết] MAIN FORM – SUBFORMBÀI 09&10: [6Tiết]REPORTBÀI 11: [4Tiết] MACRO&MODULÔn Tập [2Tiết] KIỂM TRA [2Tiết] MS-ACCESS 2000BÀI 04:[6Tiết]SELECT QUERYBài giảngBÀI 08MAIN FORM – SUBFORMI. KHÁI QT II. TẠO MAIN – SUB FORM BẰNG WIZARD III. TẠO MAIN - SUB FORM KHÔNG DÙNG WIZARDIV. TẠO FORM CÓ HAI CẤP SUBFORMI. KHÁI QT1. Main Form – Sub Form  Trong việc thiết kế form, có thể Form trong Form tức là một Form chính [Main Form] hiển thò các thông tin đồng thời chứa Form khác gọi là form phụ [Sub Form] Mổi Form sử dụng Table khác nhau , hiển thò đồng thời và có thể thao tác đồng thời trên cả hai Form . Những record dùng trong Main Form và Sub Form thường có mối quan hệ với nhau : Quan hệ Một – Một : một Record của Table Main Form sẽ ứng với một Record trong Subform.Quan hệ Một - Nhiều : một Record của table main form sẽ ứng với nhiều Record trong Sub Form. 2. Các loại Sub Form  Khi tạo Sub Form có thể thiết kế theo dạng Datasheet View hay Form View. Dạng Datasheet View thường được sử dụng nhất. Nếu dùng công cụ Main Form/ Sub Form Wizard thì Sub Form mặc đònh thường là Datasheet View.3. Khi nào dùng Main Form / Sub Form: Sử dụng Main Form / Sub Form khi muốn dùng Table / Query làm nguồn dữ liệu cho Main Form và một Table / Query khác để trình bày mối quan hệ giữa các Record của các Table / Query này. Thực tế Main Form / Sub Form được dùng thường xuyên khi trình bày dữ liệu trên Form. 4.Khi dùng Main Form/ Sub Form cần chú ý các vấn đề sau:  Có các Table / Query có quan hệ theo kiểu một – nhiều : Main Form sẽ sử dụng Table / Query bên một và Sub Form sử dụng Table / Query bên nhiều  Kiểm tra các Table / Query sử dụng có các Field quan hệ hay không. Accsee sẽ dùng các Field quan hệ đối chiếu [ Matching Field hay Linking Field] giữa hai Table / Query để xác đònh mẩu tin được hiển thò trong Main Form và Sub Form. Nếu sử dụng Filed đố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.II.TẠO MAIN FORM/SUBFORM BẰNG WIZARD:Khởi động Form Wizard Chọn các Table / Query và Field tham gia : [Which fields do you want on your form?] Cách chọn hiển thò form : [How do you want to view your form ?] Làm xong  Chọn next. Làm xong  Chọn next. Choùn hỡnh thửực hieồn thũ cho Sub Form: [What layout would you like for your subform ]Laứm xong Choùn next. choùn kieồu cho bieồu maóu: [What Style would you like ?] Laứm xong Choùn next. ẹaởt teõn cho Main Form vaứ Sub Form Laứm xong Click Finish Keỏt quaỷ : II.TẠO MAIN FORM/SUBFORM KHƠNG DÙNG WIZARD:1 Nguyên tắc :  Thiết kế Main Form/ Sub Form không dùng Wizard phải tạo Main Form riêng và Sub Form riêng, sau đó phải chèn Sub Form vào Main Form. Khi tạo Main Form, nhớ dành chổ trước cho Sub Form. Trong đa số trường hợp ,Access sẽ tự động liên kết Sub Form với Main Form. Nếu Access không tự động liên kết thì User cần phải thực hiện việc này.S Sub Form có thể đặt cơ sở trên Table hay QUERY [chỉ khảo sát Sub Form đặt cơ sở trên Table]. 2. Chuẩn bò : Cần chuẩn bò trước Main Form 3. Thiết kế :  Thiết kế Sub Form  Qui đònh thuộc tính cho ViewAllow và Default View : Datasheet view : Chỉ hiển thò dạng bảng dữ liệu Form : Chỉ hiển thò theo dạng Form Quy đònh thuộc tính View Allow là Form và quy đònh thuộc tính Default View là Single Form hay Continuous Form. Both : Hiển thò cả hai Form  qui đònh thuộc tính View Allow là Both và qui đònh thuộc tính Default View là Single Form hay Continuous Form 4. Đóng và ghi lưu Sub Form : Đóng và ghi lưu Sub Form như một Form bình thường 5. Chèn Sub Form vào Main Form : Mở Mainform trong chế độ Design ViewNhấn phím F11  chuyển qua cửa sổ Database  Drag SubForm vả thả vào Main Form  một ô điều khiển tự động được tạo và chứa Sub Form.Thực hiện các hiệu chỉnh : Vò trí , Kích thướcHiển thò Main Form để xem kết quả Ghi chú : Nếu mở riêng lẻ Sub Form và hiệu chỉnh rồi ghi lưu, Main Form sẽ được cập nhập theo tình trạng mới của Sub Form 6. Liên kết Mainform với Subform :  Trong nhiều trường hợp, khi nhúng Sub Form vào trong Main Form thì Access sẽ cố gắng thiết lập sự liên kết giữa chúng theo các điều kiện sau : Main Form và Sub Form đều dùng dữ kiện nguồn là Table và quan hệ giữa hai Table này được thiết lập. Main Form dùng dữ kiện nguồn từ Table có là khoá chính [Primary key] và Sub Form dùng dữ kiện nguồn từ Table cũng chứa Field cùng tên nói trên làm khoá cơ bản [có cùng kiểu dữ kiện hay tương thích ]. Access dùng hai field có tên giống nhau của hai Table làm liên kết .Trường hợp sự kiện liên kết không thiết lập hay muốn qui đònh Field khác làm mối liên kết thì phải quy đònh lại bằng cách quy đònh lại các thuộc tính Link Master Fields và Link Chil Fields của Sub form: Click chọn Sub Form Quy đònh thuộc tính Link Chil Fields để chỉ đònh Field liên kết cho Sub Form. Nếu nhập nhiều Field thì các nhau bởi dấu chấm phẩy. Quy đònh thuộc tính Link Master Fields để chỉ đònh field liên kết cho mainform. Có thể Click nút Build [dấu ba chấm] của thuộc tính một trong hai thuộc tính trên để mở cửa sổ Sub Form Field Linker để quy điònh lại Field liên kết giữa Sub Form và Main Form.IV.TẠO FORM CĨ HAI CẤP SUBFORM:1. Khái niệm :  Khi thiết kế Main Form / Sub Form, đã sử dụng hai Table có quan hệ một nhiều [theo ví dụ Quan hệ hai Table DonVi và NhanVien]  Có thể Tạo một Form với Dữ Liệu cơ sở từ nhiều Table và theo quan hệ Một Nhiều– Nhiều [One – Many-Many] [thực chất là hai một quan hệ một –nhiều ]Ví dụ tạo Main/ Sub Form 2 cấp cập nhật thông tin chi tiết đặt hàng của khách hàng.[KhachHang, DonDatHang, ChiTietDDH] 2. Các bước thiết kế cách 1: Bước 1: Tạo và ghi lưu Main Form và Sub Form cấp một - Tạo Main Form và Sub Form cấp một. Đặt tên là KhachHang - Ví dụ : KhachHang chứa dữ liệu của table KhachHang và Sub Form chứa dữ liệu của Table DonDatHang Bước 2: Tạo Sub Form cấp hai - Tạo Sub Form cấp hai riêng lẻ như tạo một Form thông thường - Ví dụ tạo Form chứa dữ liệu từ Table ChiTietDDH Bước 3: Nhúng Sub Form cấp hai vào trong Main / Subform - Mở Form KhachHang trong chế độ Design  Sub Form phát sinh được mở theo - Nhấn phím F11 để trở về cửa sổ Database - Chọn và kéo form ChiTietDDH thả vào Mainform Bước 4 : Thiết lập Unbound Control là trung gian liên kết giữa hai Sub Form - Dùng Toolbox tạo một Unbound Control [Text Box] - Bỏ nhãn [Label của control này]. - Đổi thuộc tính Name của Control [đang là Text Box#] thành Field quan hệ của Sub Form1 với Sub Form 2. theo ví dụ là MaDDH - Nhập công thức vào Control theo cú pháp sau : [Tên của Sub Form1].Form![Tên field liên kết của Subform1] ví dụ : [ChiTietDH].Form![MaDDH] - Đặt thuộc tính Visible của Control là No Bước 5 : Thiết lập liên kết giữa hai Sub Form - Chọn Sub From 2  mở cửa sổ Properties. - Đặc thuộc tính Link Master Field của tên Control - Đặc thuộc tính Link Child Field của tên Field liên kết với Sub Form 1 3. Các bước thiết kế cách 2: Bước 1: Tạo và ghi lưu Sub Form cấp 1 và Sub Form cấp hai : - Tạo Sub Form cấp 1 và Sub Form cấp 2. Đặt tên là DonDatHang , ChiTietDDH - Ví dụ : Sub Form cấp 1 DonDatHang chứa dữ liệu của Table DonDatHang và Sub Form 2 chứa dữ liệu của Table ChiTietDDH Bước 2: Nhúng Sub Form cấp 2 vào SubForm cấp 1 - Mở Sub Form cấp 1 DonDatHang trong chế độ Design - Nhấn phím F11 để trở về cửa sổ Database - Chọn và kéo Form ChiTietDDH Thả vào Sbform cấp 1 DonDatHang Bước 3: Tạo Main Form - Tạo Main Form riêng lẻ như tạo một Form thông thường - Ví dụ tạo Form chứa dữ liệu từ Table KhachHang. Bước 4: Nhúng Sub Form cấp 1 vào trong Main Form - Mở Form KhachHang trong chế độ Design - Nhấn phím F11 để trở về cửa sổ Database - Chọn và kéo form DonDatHang thả vào Mainform. Bước 5 : Thiết lập Unbound Control là trung gian liên kết giữa hai Sub Form - Dùng Toolbox tạo một Unbound Control [Text Box] - Bỏ nhãn [Label của control này]. - Đổi thuộc tính Name của Control [đang là Text Box#] thành Field quan hệ của Sub Form1 với Sub Form 2. theo ví dụ là MaDDH - Nhập công thức vào Control theo cú pháp sau : [Tên của Sub Form1].Form![Tên field liên kết của Subform1] Theo ví dụ là : [ChiTietDH].Form![MaDDH] - Đặt thuộc tính Visible của Control là No Bước 5 : Thiết lập liên kết giữa hai Sub Form - Chọn Sub From 2  mở cửa sổ Properties - Đặc thuộc tính Link Master Field của tên Control - Đặc thuộc tính Link Child Field của tên Field liên kết với Sub Form 1 - Theo ví dụ : Link Master Field là MaNV và Link Child Field là MANV KEÁT QUAÛ:

Video liên quan

Chủ Đề